Configure cron to run in the local timezone of each machine
authorTom Hughes <tom@compton.nu>
Wed, 7 Aug 2019 20:16:42 +0000 (21:16 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 7 Aug 2019 20:23:00 +0000 (21:23 +0100)
cookbooks/tools/recipes/default.rb
cookbooks/tools/templates/default/cron.service.erb [new file with mode: 0644]

index d228d2a..5154ecd 100644 (file)
@@ -35,6 +35,7 @@ package %w[
   iotop
   lvm2
   rsyslog
+  cron
 ]
 
 service "rsyslog" do
@@ -51,3 +52,25 @@ end
 file "/etc/init.d/screen-cleanup" do
   action :delete
 end
+
+# Create drop in directory for cron service
+directory "/etc/systemd/system/cron.service.d" do
+  owner "root"
+  group "root"
+  mode 0o755
+end
+
+# Configure cron to run in the local timezone of the machine
+template "/etc/systemd/system/cron.service.d/chef.conf" do
+  source "cron.service.erb"
+  owner "root"
+  group "root"
+  mode 0o644
+  notifies :restart, "service[cron]"
+  only_if { node[:timezone] }
+end
+
+# Make sure cron is running
+service "cron" do
+  action [:enable, :start]
+end
diff --git a/cookbooks/tools/templates/default/cron.service.erb b/cookbooks/tools/templates/default/cron.service.erb
new file mode 100644 (file)
index 0000000..c659ab2
--- /dev/null
@@ -0,0 +1,2 @@
+[Service]
+Environment=TZ=<%= node[:timezone] -%>