chef/cookbooks/bind9/templates/default/db.erb
<% zone_map={ "ip4addr" => "A",
"ip6addr" => "AAAA",
"alias" => "CNAME",
"pointer" => "PTR"
} -%>
; Managed by Crowbar
; Do not edit.
$ORIGIN <%= @zone[:domain] %>.
$TTL <%= @zone[:ttl] %>
<%= @zone[:domain] -%>. IN SOA (
<%= @zone[:nameservers].first %>
<%= @zone[:admin] %>
<%= @zone[:serial] %>
<%= @zone[:slave_refresh] %>
<%= @zone[:slave_retry] %>
<%= @zone[:slave_expire] %>
<%= @zone[:negative_cache] %>
)
; Nameservers
<% @zone[:nameservers].each do |ns| -%>
@ NS <%= ns %>
<% end -%>
; Mail exchangers
<% @zone[:mail_exchangers].each do |host,prio| -%>
@ MX <%= prio -%> <%= host %>
<% end if @zone[:mail_exchangers]-%>
; Manual records
<% @zone[:records].each do |host, records| -%>
<% records[:values].each do |value| -%>
<%= host %> IN <%= records[:type] %> <%= value %>
<% end -%>
<% end if @zone[:records] -%>
; Per-host records
<% @zone[:hosts].keys.sort.each do |host|
record=@zone[:hosts][host]
record.keys.sort.each do |k|
next unless zone_map[k]
if k == "alias" -%>
<%= record[k] -%> IN <%= zone_map[k] -%> <%= host %>
<% else -%>
<%= host -%> IN <%= zone_map[k] -%> <%= record[k] %>
<% end -%>
<% end -%>
<% end -%>