diff --git a/playbooks/roles/ansible-cron/tasks/main.yaml b/playbooks/roles/ansible-cron/tasks/main.yaml
index f3724c815d..9e1735c49b 100644
--- a/playbooks/roles/ansible-cron/tasks/main.yaml
+++ b/playbooks/roles/ansible-cron/tasks/main.yaml
@@ -13,7 +13,9 @@
   cron:
     name: run_all.sh
     state: present
-    job: 'flock -n /var/run/ansible/run_all.lock bash /opt/system-config/run_all.sh -c >> /var/log/ansible/run_all_cron.log 2>&1'
+    # Note /var/run is ephemeral; so after a reboot we need to
+    # ensure the lockfile dir is there before we run...
+    job: 'mkdir -p /var/run/ansible; flock -n /var/run/ansible/run_all.lock bash /opt/system-config/run_all.sh -c >> /var/log/ansible/run_all_cron.log 2>&1'
     minute: "{{ update_cron_interval.minute }}"
     hour: "{{ update_cron_interval.hour }}"
     day: "{{ update_cron_interval.day }}"