Назад | Перейти на главную страницу

Puppet: создать файл DNS из конфигурации узла (или: как выполнить итерацию переменных узла глобально)

Я также использую марионетку для своих узлов. Я также использую DNS-сервер (BIND).

Можно ли было бы использовать $aliases переменная у меня для каждого узла в шаблоне для модуля DNS?

Мои узлы выглядят так:

$ cat nodes/kayak.local.pp
node 'kayak.local' {
  include base
  $node_aliases = ['svn','puppet']
  $node_primaryip = '10.0.64.200'

  network::interface { 'eth0':
    ip      => $node_primaryip,
    gw      => '10.0.64.1',
    mac     => '00:50:00:00:00:3f',
    netmask => '255.255.255.0',
  }

}

Я ищу возможность создать такой шаблон:

$cat local.erb

<% scope.lookupvar('ALLNODES::aliases').each do |alias| -%>
<%= alias %> IN A <%= node_primaryip %>
<% end -%> 

кто может мне помочь?

Для этого вы можете использовать экспортированные ресурсы.

  • создать определенный тип, который управляет строкой в ​​вашем файле DNS
  • на каждом хосте создайте ресурс, использующий этот определенный тип. Используйте @@ перед типом, чтобы он экспортировался.
  • Соберите эти ресурсы на своем DNS-сервере с оператором космического корабля.

Примечание: используйте Hiera для всех этих данных в вашем манифесте.