From 7a17fe4dcee235b5973326c6daedebccc2de41d2 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Wed, 26 Aug 2026 09:28:38 +0100 Subject: nginx auto-updates --- roles/nginx/files/update_nginx | 18 ++++++++++++++++++ roles/nginx/tasks/main.yml | 27 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 roles/nginx/files/update_nginx create mode 100644 roles/nginx/tasks/main.yml (limited to 'roles/nginx') 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 -- cgit v1.2.3