Jul*_*oux 5 domain-name-system bind dns-zone
出于各种原因,我们托管自己的DNS 服务器(BIND),包括我们经常部署和终止机器以及有时需要非常快速地通过 DNS 进行负载平衡的事实。
但是,现在我们有60 台服务器,我们很难跟踪所有记录,并且在编辑区域文件时容易出错。还不错(我们使用其他一些 DNS 提供商作为备份),但我正在寻找一种比手动编辑文件更好的方法。
此外,由于我们可以轻而易举地与臭名昭著的厨师一起部署新实例,因此手动执行此操作需要花费最多的时间!如果我们可以自动执行此操作,将会很有趣。有人知道这件事吗?编辑和维护此区域文件的好做法是什么?
您可以使用 Chef 搜索,使用发现的节点主机名/fqdn 和 ip 地址,将区域文件动态构建为 Chef 模板。
hosts = search(:node, "*:*")
template '/path/to/zonefile' do
source 'zonefile.erb'
variables(:hosts => hosts)
owner 'root'
group 'root'
mode 0644
end
Run Code Online (Sandbox Code Playgroud)
模板将hosts使用搜索中每个结果的主机名、fqdn 和 ip 地址来迭代传递的变量。人为的例子:
<% @hosts.each do |h| -%>
<%= h['fqdn'] %>. IN A <%= h['ipaddress'] %>
<% end -%>
Run Code Online (Sandbox Code Playgroud)