summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--playbook.yml2
-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
5 files changed, 52 insertions, 25 deletions
diff --git a/playbook.yml b/playbook.yml
index 4d6dbf5..3657033 100644
--- a/playbook.yml
+++ b/playbook.yml
@@ -15,6 +15,7 @@
hosts: "{{ services.http.host }}"
become: true
roles:
+ - nginx
- http
vars_files:
- common.yml
@@ -37,6 +38,7 @@
hosts: "{{ services.git.host }}"
become: true
roles:
+ - nginx
- git
vars_files:
- common.yml
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