summaryrefslogtreecommitdiff
path: root/roles/nginx
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-08-26 09:28:38 +0100
committerJoe Carstairs <me@joeac.net>2026-08-26 09:28:38 +0100
commit7a17fe4dcee235b5973326c6daedebccc2de41d2 (patch)
tree781a901efbfdda4a5e170547669715cf92854888 /roles/nginx
parent1837f2c9b1a00ce2d50ebb5f8c63032993a5d000 (diff)
nginx auto-updates
Diffstat (limited to 'roles/nginx')
-rw-r--r--roles/nginx/files/update_nginx18
-rw-r--r--roles/nginx/tasks/main.yml27
2 files changed, 45 insertions, 0 deletions
diff --git a/roles/nginx/files/update_nginx b/roles/nginx/files/update_nginx
new file mode 100644
index 0000000..cf6ee6f
--- /dev/null
+++ b/roles/nginx/files/update_nginx
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+apk upgrade
+
+nginx_pid="$(pgrep nginx:\ master\ process)"
+if [ -z "$nginx_pid" ]
+then
+ rc-service nginx restart
+ exit 0
+fi
+
+nginx_proc_start_time="$(stat -Lc %Y /proc/${nginx_pid})"
+nginx_file_mtime="$(stat -Lc %Y $(which nginx))"
+
+if [ "$nginx_file_mtime" -gt "$nginx_proc_start_time" ]
+then
+ rc-service nginx restart
+fi
diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml
new file mode 100644
index 0000000..591e195
--- /dev/null
+++ b/roles/nginx/tasks/main.yml
@@ -0,0 +1,27 @@
+- name: Install nginx
+ community.general.apk:
+ name: nginx
+
+- name: Remove default nginx site config
+ register: default_nginx_site
+ ansible.builtin.file:
+ path: /etc/nginx/http.d/default.conf
+ state: absent
+
+- name: Start nginx service and configure to restart on boot
+ ansible.builtin.service:
+ name: nginx
+ enabled: true
+ state: started
+
+- name: Install script to update nginx
+ ansible.builtin.template:
+ src: update_nginx
+ dest: /usr/bin/update_nginx
+ mode: "755"
+
+- name: Install daily crontab to update nginx
+ ansible.builtin.cron:
+ special_time: daily
+ name: Update nginx
+ job: /usr/bin/update_nginx