]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/blogs/recipes/default.rb
Use a systemd timer to update the blog aggregator
[chef.git] / cookbooks / blogs / recipes / default.rb
index 358b3702a9779b84f6f1c1bd78c79b528cb50280..681118f959f5dbcf1a56b8f1932cdc9f4f29e8b0 100644 (file)
 include_recipe "accounts"
 include_recipe "apache"
 include_recipe "git"
+include_recipe "ruby"
 
-package %w[
-  ruby
-  ruby-dev
+package %W[
   make
   gcc
   g++
   libsqlite3-dev
+  sqlite3
 ]
 
-gem_package "bundler" do
-  version "~> 1.17.2"
-end
-
 directory "/srv/blogs.openstreetmap.org" do
   owner "blogs"
   group "blogs"
-  mode 0o755
+  mode "755"
 end
 
 git "/srv/blogs.openstreetmap.org" do
   action :sync
-  repository "git://github.com/gravitystorm/blogs.osm.org.git"
+  repository "https://github.com/gravitystorm/blogs.osm.org.git"
   depth 1
   user "blogs"
   group "blogs"
-  notifies :run, "execute[/srv/blogs.openstreetmap.org/Gemfile]", :immediately
+  notifies :run, "bundle_install[/srv/blogs.openstreetmap.org]", :immediately
 end
 
-execute "/srv/blogs.openstreetmap.org/Gemfile" do
+bundle_install "/srv/blogs.openstreetmap.org" do
   action :nothing
-  command "bundle install --deployment"
-  cwd "/srv/blogs.openstreetmap.org"
-  user "blogs"
-  group "blogs"
-  notifies :run, "execute[/srv/blogs.openstreetmap.org]", :immediately
+  options "--deployment"
+  user "root"
+  group "root"
+  notifies :run, "bundle_exec[/srv/blogs.openstreetmap.org]", :immediately
 end
 
-execute "/srv/blogs.openstreetmap.org" do
+bundle_exec "/srv/blogs.openstreetmap.org" do
   action :nothing
-  command "bundle exec pluto build -t osm -o build"
-  cwd "/srv/blogs.openstreetmap.org"
+  command "pluto build -t osm -o build"
   user "blogs"
   group "blogs"
 end
@@ -77,9 +71,37 @@ apache_site "blogs.openstreetmap.org" do
   variables :aliases => ["blogs.osm.org"]
 end
 
-template "/etc/cron.d/blogs" do
-  source "cron.erb"
+template "/usr/local/bin/blogs-update" do
+  source "blogs-update.erb"
+  owner "root"
+  group "root"
+  mode "0755"
+end
+
+systemd_service "blogs-update" do
+  description "Update blog aggregator"
+  exec_start "/usr/local/bin/blogs-update"
+  user "blogs"
+  private_tmp true
+  private_devices true
+  protect_system "strict"
+  protect_home true
+  read_write_paths "/srv/blogs.openstreetmap.org"
+end
+
+systemd_timer "blogs-update" do
+  description "Update blog aggregator"
+  on_boot_sec "15m"
+  on_unit_inactive_sec "30m"
+end
+
+service "blogs-update.timer" do
+  action [:enable, :start]
+end
+
+template "/etc/cron.daily/blogs-backup" do
+  source "backup.cron.erb"
   owner "root"
   group "root"
-  mode "0644"
+  mode "0755"
 end