diff --git a/roles/geo_dns/files/geoipupdate-pdns-reload.conf b/roles/geo_dns/files/geoipupdate-pdns-reload.conf
new file mode 100644
index 0000000000000000000000000000000000000000..24873224e7615afaaa22f946f2088a34d1fd5fae
--- /dev/null
+++ b/roles/geo_dns/files/geoipupdate-pdns-reload.conf
@@ -0,0 +1,2 @@
+[Service]
+ExecStartPost=+-/usr/bin/pdns_control reload
diff --git a/roles/geo_dns/tasks/main.yml b/roles/geo_dns/tasks/main.yml
index c98b116c53d6bbe76196125f11d010fffd93d989..682c997f96c8724209a2faeb4e21a9b874f122df 100644
--- a/roles/geo_dns/tasks/main.yml
+++ b/roles/geo_dns/tasks/main.yml
@@ -8,6 +8,12 @@
     - {src: geo.yml.j2, dest: geo.yml}
   notify: restart powerdns
 
+- name: create drop-in directory for geoipupdate
+  file: path=/etc/systemd/system/geoipupdate.service.d state=directory owner=root group=root mode=0755
+
+- name: install drop-in snippet for geoipupdate
+  copy: src=geoipupdate-pdns-reload.conf dest=/etc/systemd/system/geoipupdate.service.d/pdns-reload.conf owner=root group=root mode=0644
+
 - name: open powerdns ipv4 port for monitoring.archlinux.org
   ansible.posix.firewalld: zone=wireguard state=enabled permanent=true immediate=yes
     rich_rule="rule family=ipv4 source address={{ hostvars['monitoring.archlinux.org']['wireguard_address'] }} port protocol=tcp port=8081 accept"