cache_dir = Chef::Config[:file_cache_path]
-dnscontrol_version = "3.19.0"
+dnscontrol_version = "3.21.0"
-remote_file "#{cache_dir}/dnscontrol_amd64.deb" do
- source "https://github.com/StackExchange/dnscontrol/releases/download/v#{dnscontrol_version}/dnscontrol_#{dnscontrol_version}_amd64.deb"
+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 "644"
backup false
end
-package "dnscontrol" do
+dpkg_package "dnscontrol" do
action :nothing
- source "#{cache_dir}/dnscontrol_amd64.deb"
- subscribes :install, "remote_file[#{cache_dir}/dnscontrol_amd64.deb]"
-end
-
-file "/usr/local/bin/dnscontrol" do
- action :delete
+ source "#{cache_dir}/dnscontrol-#{dnscontrol_version}.deb"
+ subscribes :install, "remote_file[#{cache_dir}/dnscontrol-#{dnscontrol_version}.deb]"
end
directory "/srv/dns.openstreetmap.org" 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