Puppetを使用した(動的)DNSゾーンファイルの管理

Puppetを使用した(動的)DNSゾーンファイルの管理

私はDebian 7.0(Wheezy)サーバーを実行しており、クライアントがDHCP要求を行い、DHCPサーバーが各クライアントに割り当てられたIPでDNSゾーンファイルを更新する動的DNS設定を持っています。 Puppetを使ってこの設定を管理したいです。しかし、一つの問題があります。マニフェストをプッシュするたびに、Puppetは私のDNSレコードを破壊したくありません。それにもかかわらず、ゾーンファイルは一般的に継続的に更新されるため、当初Puppetで管理することはあまり意味がありません。しかし、私が望むのは、bind9DNSサービスが最初にインストールされたときにPuppetに「スケルトン」ゾーンファイルを正しい場所にプッシュさせることです()。私がこれをやろうとしているのは、すべてのサーバー構成を1つの場所にカプセル化して、いくつかのマニフェストでサーバーの全体構成を複製できるからです。

file最初は、ゾーンファイルのリソースをDNSサーバーパッケージに登録して設定しようとrefreshonlyしましたtrue。唯一の問題は、fileそのタイプが利用できないことでしたrefreshonly parameter。明らかに、このアプローチは目の前の路地でした。

これを行うための「正しい」方法はありますか?たぶんオギアスと?


修正する

頑張った

augtool ls /files/etc/bind

このリターン何もない!何らかの理由でAugeasは私のゾーンファイルを解析できないようです。まあ、Ogiasは答えではないようです!

ベストアンサー1

解決しました!内部に人形の種類file、名前付きリソースの属性がreplace正確に私に必要なものです。上記のリンクを引用してください。

変える

sourceローカルシステムに既に存在するが、コンテンツが属性または指定されたコンテンツと一致しないファイルまたはシンボリックリンクを置き換えるかどうかcontentfalseファイルリソースが将来の変更を上書きせずにファイルを初期化できるようにするには、これを設定します。これはコンテンツにのみ影響します。 Puppetは依然として所有権と権限を管理しています。デフォルト値はですtrue。有効な値はtrue(とも呼ばれるyes)、false(とも呼ばれるno)です。

追加しました。

replace => false

私のゾーンファイルリソースに追加しましたが、これは成功しました。


編集する

私は実際に後者がサポートされているかどうかわからなかったので、false代わりに使用しました。 (たとえドキュメントではサポートしていると言いましたが)他の同様のブールフラグを割り当てようとすると構文エラーが発生しました。そのため、ご使用の際は安全にご注意ください。noyesfalse

おすすめ記事