Puppet:从节点配置构建 DNS 文件(或者:如何全局迭代节点变量)

Puppet:从节点配置构建 DNS 文件(或者:如何全局迭代节点变量)

我也使用 puppet 作为我的节点。我还运行 (BIND) dns 服务器。

我是否可以将$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 -%> 

谁能帮我?

答案1

您可以为此使用导出的资源。

  • 创建一个定义类型来管理 DNS 文件中的一行
  • 在每个主机上,创建使用该定义类型的资源。在类型前使用 @@ 使其导出。
  • 使用宇宙飞船操作员在您的 DNS 服务器上收集这些资源。

旁注:使用 Hiera 来存储清单中的所有数据。

相关内容