Управление (динамические) файлы зон DNS с помощью кукольного (разрешенного)

Я запускаю сервер Debian 7.0 (Wheezy), и у меня есть динамическая настройка DNS, в которой мои клиенты делают запросы DHCP, а DHCP-сервер обновляет файлы зон DNS любым IP-адресом для каждого клиента. Я хочу управлять этой настройкой с помощью Puppet. Однако есть только одна проблема: я не хочу, чтобы Puppet сжимал мои записи DNS каждый раз, когда я нажимаю свои манифесты. В любом случае, для файлов зон, которые будут управляться Puppet, не имеет большого значения, поскольку они, как правило, будут постоянно обновляться. Однако я хотел бы сделать, чтобы Pokpet нажал «скелетные» файлы зон в правильном месте, когда сначала была установлена ​​служба DNS ( bind9 ). Причина, по которой я хочу это, заключается в том, что я хочу инкапсулировать всю конфигурацию сервера в одном месте, так что только с несколькими манифестами я могу клонировать всю конфигурацию сервера.

Сначала я хотел, чтобы file ресурсы для файлов зон подписывались на пакет DNS-сервера и устанавливали refreshonly в true . Единственная проблема заключается в том, что в file нет refreshonly parameter . Очевидно, такой подход является тупиком.

Есть ли «правильный» способ сделать это? Возможно, с Augeas?


Обновить

Я пытался

 augtool ls /files/etc/bind 

и это ничего не принесло ! Похоже, Augeas по каким-то причинам не может разобрать мои файлы зон. Кажется, Augeas – это не ответ, затем …

    Решено! В ссылке типа Puppet атрибут file ресурса, называемый replace оказался именно тем, что мне нужно. Я цитирую приведенную выше ссылку:

    замещать

    Следует ли заменить файл или символическую ссылку, которая уже существует в локальной системе, но содержимое которой не соответствует атрибуту source или content . Установка этого значения в false позволяет файловым ресурсам инициализировать файлы без перезаписывания будущих изменений. Обратите внимание, что это влияет только на контент; Кукольный до сих пор управляет правами собственности и разрешениями. Значение по умолчанию равно true . Допустимые значения true (также называются yes ), false (также называются no ).

    Я просто добавил

     replace => false 

    к моим файлам ресурсов зоны, и это сделало трюк.


    редактировать

    Я фактически использовал false вместо no как я не уверен, поддерживается ли последнее (хотя, как утверждается, это документ); другой подобный логический флаг дал мне синтаксическую ошибку, когда я попытался присвоить ей yes . Поэтому используйте false чтобы быть в безопасности.