我也使用 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 来存储清单中的所有数据。