Você pode usar a pesquisa do Chef para criar dinamicamente arquivos de zona como modelos com o Chef usando o nome do host / fqdn descoberto e o endereço IP dos nós.
hosts = search(:node, "*:*")
template '/path/to/zonefile' do
source 'zonefile.erb'
variables(:hosts => hosts)
owner 'root'
group 'root'
mode 0644
end
E o modelo iterava a variável hosts
passada, usando o nome do host, fqdn e ipaddress de cada resultado na pesquisa. Exemplo inventado:
<% @hosts.each do |h| -%>
<%= h['fqdn'] %>. IN A <%= h['ipaddress'] %>
<% end -%>