summaryrefslogtreecommitdiff
path: root/roles
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
parent1837f2c9b1a00ce2d50ebb5f8c63032993a5d000 (diff)
nginx auto-updates
Diffstat (limited to 'roles')
-rw-r--r--roles/git/tasks/main.yml13
-rw-r--r--roles/http/tasks/main.yml17
-rw-r--r--roles/nginx/files/update_nginx18
-rw-r--r--roles/nginx/tasks/main.yml27
4 files changed, 50 insertions, 25 deletions
diff --git a/roles/git/tasks/main.yml b/roles/git/tasks/main.yml
index 033400e..fffca7c 100644
--- a/roles/git/tasks/main.yml
+++ b/roles/git/tasks/main.yml
@@ -1,10 +1,9 @@
-- name: Install cgit, fcgiwrap, git, nginx, and shadow
+- name: Install cgit, fcgiwrap, git, and shadow
community.general.apk:
name:
- cgit
- fcgiwrap
- git
- - nginx
- shadow
- name: Add git group
@@ -68,12 +67,6 @@
enabled: true
state: started
-- name: Remove default nginx site config
- register: default_nginx_site
- ansible.builtin.file:
- path: /etc/nginx/http.d/default.conf
- state: absent
-
- name: Install htpasswd file
ansible.builtin.copy:
src: htpasswd
@@ -99,14 +92,14 @@
state: directory
- name: Restart nginx daemon and configure to start on boot
- when: default_nginx_site is changed or cgit_nginx_site is changed
+ when: cgit_nginx_site is changed
ansible.builtin.service:
name: nginx
enabled: true
state: restarted
- name: Start nginx daemon and configure to start on boot
- when: not ( default_nginx_site is changed or cgit_nginx_site is changed )
+ when: not ( cgit_nginx_site is changed )
ansible.builtin.service:
name: nginx
enabled: true
diff --git a/roles/http/tasks/main.yml b/roles/http/tasks/main.yml
index ad98f6e..f8a0078 100644
--- a/roles/http/tasks/main.yml
+++ b/roles/http/tasks/main.yml
@@ -1,19 +1,12 @@
-- name: Install composer, make, nginx, PHP, PHP-FPM, and PHP-PDO (SQLITE)
+- name: Install composer, make, PHP, PHP-FPM, and PHP-PDO (SQLITE)
community.general.apk:
name:
- composer
- make
- - nginx
- php85-fpm
- php85-pdo
- php85-pdo_sqlite
-- name: Start nginx service and configure to restart on boot
- ansible.builtin.service:
- name: nginx
- enabled: true
- state: started
-
- name: Start PHP-FPM service and configure to restart on boot
ansible.builtin.service:
name: php-fpm85
@@ -41,12 +34,6 @@
name: php-fpm85
state: restarted
-- name: Remove default nginx site config
- register: default_nginx_site_config
- ansible.builtin.file:
- path: /etc/nginx/http.d/default.conf
- state: absent
-
- name: Install joeac.net nginx site config
register: joeacnet_nginx_site_config
ansible.builtin.template:
@@ -54,7 +41,7 @@
dest: /etc/nginx/http.d/joeac.net.conf
- name: Restart nginx service if config changed
- when: default_nginx_site_config is changed or joeacnet_nginx_site_config is changed
+ when: joeacnet_nginx_site_config is changed
ansible.builtin.service:
name: nginx
state: restarted
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