From 29f9613cfbbf8fea0503a6f609f4a98f20b8c664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 26 Jan 2015 10:05:29 +0100 Subject: [PATCH] ns-record + hostmaster --- registry.json | 4 +++- scripts/dns | 8 ++++++-- templates/dn42-zone.erb | 18 +++++++++++------- templates/rdns-zone.erb | 22 +++++++++++++++++++--- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/registry.json b/registry.json index 1d11a04..c156106 100644 --- a/registry.json +++ b/registry.json @@ -2,11 +2,13 @@ "zone": { "soa": "eve.dn42.", "ns": "eve.dn42.", - "serial": 93, + "serial": 102, "refresh": "1H", "retry": "4H", "expire": "3W", "minimum": "1D", + "hostmaster": "hostmaster.higgsboson.tk", + "domain": "eve.higgsboson.tk", "v4_subnet": "172.23.75.0/24", "v6_subnet": "fdc0:4992:6a6d::/48" }, diff --git a/scripts/dns b/scripts/dns index 40db98c..e97579f 100755 --- a/scripts/dns +++ b/scripts/dns @@ -33,14 +33,18 @@ class RdnsZone def write_zone_file(root_path) zone_template = Template.new(root_path.join("templates/rdns-zone.erb")) rdns_path = root_path.join("zones", name) - atomic_write(rdns_path, zone_template.render(zone: self)) + atomic_write(rdns_path, zone_template.render(zone: self, data: data)) end end registry = Registry.new +registry.data["zone"]["serial"] += 1 +registry.save + root_path = Pathname.new(File.expand_path("../..", __FILE__)) zone_template = Template.new(root_path.join("templates/dn42-zone.erb")) -result = zone_template.render(data: registry.data) +zone = registry.data["zone"] || {} +result = zone_template.render(data: registry.data, zone: zone) atomic_write(root_path.join("zones/dn42.zone"), result) if subnet = try(registry.data, "zone", "v4_subnet") diff --git a/templates/dn42-zone.erb b/templates/dn42-zone.erb index c5137f2..cb2118f 100644 --- a/templates/dn42-zone.erb +++ b/templates/dn42-zone.erb @@ -1,10 +1,14 @@ -@ IN SOA <%= data["zone"]["soa"] %> hostmaster ( - <%= data["zone"]["serial"] %> ; serial - <%= data["zone"]["refresh"] %> ; refresh - <%= data["zone"]["retry"] %> ; retry - <%= data["zone"]["expire"] %> ; expire - <%= data["zone"]["minimum"] %>) ; minimum - NS <%= data["zone"]["ns"] %> +@ IN SOA <%= zone["soa"] %> <%= zone["hostmaster"] %> ( + <%= zone["serial"] %> ; serial + <%= zone["refresh"] %> ; refresh + <%= zone["retry"] %> ; retry + <%= zone["expire"] %> ; expire + <%= zone["minimum"] %>) ; minimum +<% data["network"].each do |name, value| -%> +<% if value["ns"] -%> +IN NS <%= name %> +<% end -%> +<% end -%> <% data["network"].each do |name, value| %> <% if value["cname"] -%> diff --git a/templates/rdns-zone.erb b/templates/rdns-zone.erb index e33b54c..87ca72a 100644 --- a/templates/rdns-zone.erb +++ b/templates/rdns-zone.erb @@ -1,11 +1,27 @@ -@ IN SOA <%= zone["soa"] %> hostmaster ( +@ IN SOA <%= zone["soa"] %> <%= zone["hostmaster"] %> ( <%= zone["serial"] %> ; serial <%= zone["refresh"] %> ; refresh <%= zone["retry"] %> ; retry <%= zone["expire"] %> ; expire <%= zone["minimum"] %>) ; minimum - NS <%= zone["ns"] %> + +<% data["network"].each do |name, value| -%> +<% if value["ns"] -%> + IN NS <%= name %> +<% end -%> +<% end -%> + +<% data["network"].each do |name, value| -%> +<% if value["ns"] -%> +<% if value["ipv4"] -%> +<%= name %> A <%= ip(value["ipv4"]) %> +<% end -%> +<% if value["ipv6"] -%> +<%= name %> AAAA <%= ip(value["ipv6"]) %> +<% end -%> +<% end -%> +<% end -%> <% zone.pointers do |name, host_part| %> -<%= host_part %> PTR <%= name %>.dn42.higgsboson.tk +<%= host_part %> PTR <%= name %>.<%= zone["domain"] %> <% end -%>