]> git.openstreetmap.org Git - chef.git/commitdiff
Convert mediawiki to use systemd timers
authorTom Hughes <tom@compton.nu>
Tue, 29 Nov 2022 20:28:32 +0000 (20:28 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 29 Nov 2022 20:28:32 +0000 (20:28 +0000)
cookbooks/mediawiki/metadata.rb
cookbooks/mediawiki/recipes/default.rb
cookbooks/mediawiki/resources/site.rb

index 6bc4c0ee6aa8cba7fe0b64502e1e5881c0e73d8c..e3a159c8062ed3562a04784d5c610d495a1dd3c6 100644 (file)
@@ -14,3 +14,4 @@ depends           "git"
 depends           "memcached"
 depends           "mysql"
 depends           "php"
+depends           "systemd"
index 77aa6f69678df3dcc9198e6cd5fa8c5bf5bb2348..1857ff0bda361688b6c97b04ac84b71c870af7f9 100644 (file)
@@ -79,3 +79,95 @@ end
 apache_module "proxy"
 apache_module "proxy_fcgi"
 apache_module "rewrite"
+
+systemd_service "mediawiki-sitemap@" do
+  description "Generate sitemap.xml for %i"
+  exec_start "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 /srv/%i/w/maintenance/generateSitemap.php --server=https://%i --urlpath=https://%i/ --fspath=/srv/%i --quiet --skip-redirects"
+  user node[:mediawiki][:user]
+  sandbox true
+  memory_deny_write_execute false
+  restrict_address_families "AF_UNIX"
+  read_write_paths "/srv/%i"
+end
+
+systemd_timer "mediawiki-sitemap@" do
+  description "Generate sitemap.xml for %i"
+  on_calendar "00:30"
+end
+
+systemd_service "mediawiki-jobs@" do
+  description "Run mediawiki jobs for %i"
+  exec_start "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 /srv/%i/w/maintenance/runJobs.php --server=https://%i --maxtime=175 --memory-limit=2048M --procs=8 --nothrottle --quiet"
+  user node[:mediawiki][:user]
+  sandbox true
+  memory_deny_write_execute false
+  restrict_address_families "AF_UNIX"
+  read_write_paths "/srv/%i"
+end
+
+systemd_timer "mediawiki-jobs@" do
+  description "Run mediawiki jobs for %i"
+  on_boot_sec "3m"
+  on_unit_inactive_sec "3m"
+end
+
+systemd_service "mediawiki-email-jobs@" do
+  description "Run mediawiki email jobs for %i"
+  exec_start "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 /srv/%i/w/maintenance/runJobs.php --server=https://%i --maxtime=55 --type=enotifNotify --memory-limit=2048M --procs=4 --nothrottle --quiet"
+  user node[:mediawiki][:user]
+  sandbox :enable_network => true
+  memory_deny_write_execute false
+  restrict_address_families "AF_UNIX"
+end
+
+systemd_timer "mediawiki-email-jobs@" do
+  description "Run mediawiki email jobs for %i"
+  on_boot_sec "1m"
+  on_unit_inactive_sec "1m"
+end
+
+systemd_service "mediawiki-refresh-links@" do
+  description "Refresh mediawiki links for %i"
+  exec_start "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 /srv/%i/w/maintenance/refreshLinks.php --server=https://%i --memory-limit=2048M --quiet"
+  user node[:mediawiki][:user]
+  sandbox true
+  memory_deny_write_execute false
+  restrict_address_families "AF_UNIX"
+end
+
+systemd_timer "mediawiki-refresh-links@" do
+  description "Refresh mediawiki links for %i"
+  on_calendar "Sat 00:05"
+end
+
+systemd_service "mediawiki-cleanup-gs" do
+  description "Clean up imagemagick gs_* files"
+  exec_start "/usr/bin/find /tmp -maxdepth 1 -type f -user www-data -mmin +90 -name 'gs_*' -delete"
+  user node[:mediawiki][:user]
+  sandbox true
+end
+
+systemd_timer "mediawiki-cleanup-gs" do
+  description "Clean up imagemagick gs_* files"
+  on_calendar "02:10"
+end
+
+service "mediawiki-cleanup-gs.timer" do
+  action [:enable, :start]
+end
+
+systemd_service "mediawiki-cleanup-magick" do
+  description "Clean up imagemagick magick-* files"
+  exec_start "/usr/bin/find /tmp -maxdepth 1 -type f -user www-data -mmin +90 -name 'magick-*' -delete"
+  user node[:mediawiki][:user]
+  sandbox true
+end
+
+systemd_timer "mediawiki-cleanup-magick" do
+  description "Clean up imagemagick magick-* files"
+  on_calendar "02:20"
+end
+
+service "mediawiki-cleanup-magick.timer" do
+  action [:enable, :start]
+end
index a3a84a376e83a9e5fc3e914d46cc8e89f282c76e..e26b7250eb66d328ba47471ce3da1a71deddd6ef 100644 (file)
@@ -183,50 +183,20 @@ action :create do
     notifies :run, "execute[#{mediawiki_directory}/maintenance/update.php]"
   end
 
-  cron_d "mediawiki-#{cron_name}-sitemap" do
-    comment "Generate sitemap.xml daily"
-    minute "30"
-    hour "0"
-    user node[:mediawiki][:user]
-    command "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 #{site_directory}/w/maintenance/generateSitemap.php --server=https://#{new_resource.site} --urlpath=https://#{new_resource.site}/ --fspath=#{site_directory} --quiet --skip-redirects"
-  end
-
-  cron_d "mediawiki-#{cron_name}-jobs" do
-    comment "Run mediawiki jobs"
-    minute "*/3"
-    user node[:mediawiki][:user]
-    command "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 #{site_directory}/w/maintenance/runJobs.php --server=https://#{new_resource.site} --maxtime=175 --memory-limit=2048M --procs=8 --nothrottle --quiet"
-  end
-
-  cron_d "mediawiki-#{cron_name}-email-jobs" do
-    comment "Run mediawiki email jobs"
-    user node[:mediawiki][:user]
-    command "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 #{site_directory}/w/maintenance/runJobs.php --server=https://#{new_resource.site} --maxtime=55 --type=enotifNotify --memory-limit=2048M --procs=4 --nothrottle --quiet"
+  service "mediawiki-sitemap@#{new_resource.site}.timer" do
+    action [:enable, :start]
   end
 
-  cron_d "mediawiki-#{cron_name}-refresh-links" do
-    comment "Run mediawiki refresh links table weekly"
-    minute "5"
-    hour "0"
-    weekday "6"
-    user node[:mediawiki][:user]
-    command "/usr/bin/nice /usr/bin/php -d memory_limit=2048M -d error_reporting=22517 #{site_directory}/w/maintenance/refreshLinks.php --server=https://#{new_resource.site} --memory-limit=2048M --quiet"
+  service "mediawiki-jobs@#{new_resource.site}.timer" do
+    action [:enable, :start]
   end
 
-  cron_d "mediawiki-#{cron_name}-cleanup-gs" do
-    comment "Clean up imagemagick garbage"
-    minute "10"
-    hour "2"
-    user node[:mediawiki][:user]
-    command "/usr/bin/find /tmp/ -maxdepth 1 -type f -user www-data -mmin +90 -name 'gs_*' -delete"
+  service "mediawiki-email-jobs@#{new_resource.site}.timer" do
+    action [:enable, :start]
   end
 
-  cron_d "mediawiki-#{cron_name}-cleanup-magick" do
-    comment "Clean up imagemagick garbage"
-    minute "20"
-    hour "2"
-    user node[:mediawiki][:user]
-    command "/usr/bin/find /tmp/ -maxdepth 1 -type f -user www-data -mmin +90 -name 'magick-*' -delete"
+  service "mediawiki-refresh-links@#{new_resource.site}.timer" do
+    action [:enable, :start]
   end
 
   template "/etc/cron.daily/mediawiki-#{cron_name}-backup" do