]> git.openstreetmap.org Git - chef.git/commitdiff
Configure NS records for geodns servers automatically
authorTom Hughes <tom@compton.nu>
Mon, 4 Jul 2022 17:32:01 +0000 (18:32 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 4 Jul 2022 17:33:03 +0000 (18:33 +0100)
cookbooks/dns/recipes/default.rb
cookbooks/dns/templates/default/geo.js.erb [new file with mode: 0644]
cookbooks/geodns/recipes/default.rb
cookbooks/geodns/templates/default/geo.erb

index fc1643c2293918eb1a1b04ee00af5a7f0e8c655e..98005c41ea00c621a8d7a41c9b169ee77870db6f 100644 (file)
@@ -128,6 +128,15 @@ template "/var/lib/dns/creds.json" do
   variables :passwords => passwords
 end
 
+template "/var/lib/dns/include/geo.js" do
+  source "geo.js.erb"
+  owner "git"
+  group "git"
+  mode "440"
+  variables :geoservers => geoservers
+  only_if { ::Dir.exist?("/var/lib/dns/include") }
+end
+
 cookbook_file "#{node[:dns][:repository]}/hooks/post-receive" do
   source "post-receive"
   owner "git"
diff --git a/cookbooks/dns/templates/default/geo.js.erb b/cookbooks/dns/templates/default/geo.js.erb
new file mode 100644 (file)
index 0000000..3134f31
--- /dev/null
@@ -0,0 +1,5 @@
+var GEO_NS_RECORDS = [
+<% @geoservers.each do |server| -%>
+  NS("geo", QUALIFY("<%= server.split(".").first %>")),
+<% end -%>
+];
index 36813bcb4157b5189b528bfd44ff8026a6ec9ccb..73531de012dda60105ac36f1387f5a4572c9ace8 100644 (file)
@@ -19,6 +19,8 @@
 
 include_recipe "geoipupdate"
 
+servers = search(:node, "roles:geodns").collect(&:name).sort
+
 package %w[
   gdnsd
 ]
@@ -55,6 +57,7 @@ template "/etc/gdnsd/zones/geo.openstreetmap.org" do
   owner "root"
   group "root"
   mode "644"
+  variables :servers => servers
   notifies :restart, "service[gdnsd]"
 end
 
index ae47b3448d8358e1b1ca476cd380d201959a0bc0..719f11a9d8e56cb33609ea2229fecf7642248a1f 100644 (file)
@@ -1,6 +1,6 @@
 $TTL 86400
 
-@              SOA     saphira.openstreetmap.org. hostmaster.openstreetmap.org. (
+@              SOA     <%= @servers.first %>. hostmaster.openstreetmap.org. (
                3       ; serial
                86400   ; refresh
                7200    ; retry
@@ -8,11 +8,8 @@ $TTL 86400
                3600    ; ncache
 )
 
-@              86400   NS      balerion.openstreetmap.org.
-@              86400   NS      chrysophylax.openstreetmap.org.
-@              86400   NS      katie.openstreetmap.org.
-@              86400   NS      saphira.openstreetmap.org.
-@              86400   NS      stormfly-04.openstreetmap.org.
-@              86400   NS      ridgeback.openstreetmap.org.
+<% @servers.each do |server| -%>
+@              86400   NS      <%= server %>.
+<% end -%>
 
 nominatim      300     DYNC    geoip!nominatim