X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/ab47927c016597f8602b81dcdc168ad5c335389d..687f72cd1a2129d796bf82c0a71251c76f2ccfda:/cookbooks/dns/recipes/default.rb diff --git a/cookbooks/dns/recipes/default.rb b/cookbooks/dns/recipes/default.rb index eaeaf5623..7b8c5b6e7 100644 --- a/cookbooks/dns/recipes/default.rb +++ b/cookbooks/dns/recipes/default.rb @@ -39,12 +39,28 @@ package %w[ lockfile-progs ] -remote_file "/usr/local/bin/dnscontrol" do - action :create - source "https://github.com/StackExchange/dnscontrol/releases/download/v3.5.0/dnscontrol-Linux" +cache_dir = Chef::Config[:file_cache_path] + +dnscontrol_version = "3.21.0" + +dnscontrol_arch = if arm? + "arm64" + else + "amd64" + end + +remote_file "#{cache_dir}/dnscontrol-#{dnscontrol_version}.deb" do + source "https://github.com/StackExchange/dnscontrol/releases/download/v#{dnscontrol_version}/dnscontrol-#{dnscontrol_version}.#{dnscontrol_arch}.deb" owner "root" group "root" - mode "755" + mode "644" + backup false +end + +dpkg_package "dnscontrol" do + action :nothing + source "#{cache_dir}/dnscontrol-#{dnscontrol_version}.deb" + subscribes :install, "remote_file[#{cache_dir}/dnscontrol-#{dnscontrol_version}.deb]" end directory "/srv/dns.openstreetmap.org" do @@ -128,6 +144,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" @@ -144,9 +169,23 @@ template "/usr/local/bin/dns-check" do variables :passwords => passwords, :geoservers => geoservers end -cron_d "dns" do - minute "*/3" +systemd_service "dns-check" do + description "Rebuild DNS zones with GeoDNS changes" + exec_start "/usr/local/bin/dns-check" user "git" - command "/usr/local/bin/dns-check" - mailto "admins@openstreetmap.org" + private_tmp true + private_devices true + protect_system "strict" + protect_home true + read_write_paths "/var/lib/dns" +end + +systemd_timer "dns-check" do + description "Rebuild DNS zones with GeoDNS changes" + on_boot_sec "3m" + on_unit_active_sec "3m" +end + +service "dns-check.timer" do + action [:enable, :start] end