From d62c070ccca2110b91bd813ae28df24987fa39a1 Mon Sep 17 00:00:00 2001
From: June <june@jsts.xyz>
Date: Tue, 18 Feb 2025 05:17:38 +0100
Subject: [PATCH 1/6] maintenance(playbook): fix playbook by using updated
 nginx role res.

---
 playbooks/maintenance.yaml | 28 ++++------------------------
 1 file changed, 4 insertions(+), 24 deletions(-)

diff --git a/playbooks/maintenance.yaml b/playbooks/maintenance.yaml
index 31c817b..8b6d037 100644
--- a/playbooks/maintenance.yaml
+++ b/playbooks/maintenance.yaml
@@ -1,30 +1,10 @@
-- name: Ensure NGINX repo and install on nginx_hosts
-  hosts: nginx_hosts
+- name: Ensure nginx install on nginx_hosts and nextcloud_hosts
+  hosts: nginx_hosts:nextcloud_hosts
   tasks:
-    - name: make sure NGINX repos are setup
+    - name: Ensure NGINX is installed
       ansible.builtin.include_role:
         name: nginx
-        tasks_from: main/repo_setup
-
-    - name: make sure NGINX is installed
-      ansible.builtin.include_role:
-        name: nginx
-        tasks_from: main/nginx_install
-
-- name: Ensure NGINX repo and install on nextcloud_hosts
-  hosts: nextcloud_hosts:!nginx_hosts
-  tasks:
-    - name: make sure NGINX repos are setup
-      ansible.builtin.include_role:
-        name: nginx
-        tasks_from: main/repo_setup
-
-    - name: make sure NGINX is installed
-      ansible.builtin.include_role:
-        name: nginx
-        tasks_from: main/nginx_install
-      vars:
-        nginx__version_spec: "{{ nextcloud__nginx_version_spec | default('') }}"
+        tasks_from: main/02_nginx_install.yaml
 
 - name: Make Sure System Package Are Up-To-Date for all non-hypervisors
   hosts: all:!hypervisors

From ce812fb00671a24176394b32c296f1809ca17784 Mon Sep 17 00:00:00 2001
From: June <june@jsts.xyz>
Date: Tue, 18 Feb 2025 05:33:30 +0100
Subject: [PATCH 2/6] docker(role): update README

Document Debian 12 support, enhance wording, bring structure in line
with the READMEs of more modern roles and remove unnecessary sections.
---
 roles/docker/README.md | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/roles/docker/README.md b/roles/docker/README.md
index 2e8a47f..b7f38e1 100644
--- a/roles/docker/README.md
+++ b/roles/docker/README.md
@@ -1,26 +1,22 @@
 # Role `docker`
 
-Makes sure Docker Engine and other related packages are installed from the Docker repos on the specified hosts.
-For details see: [`tasks/main/02_docker_install.yaml`](./tasks/main/02_docker_install.yaml).
+Ensures the Docker Engine and other related packages are installed from the Docker repos.
+For detailed list of packages see: [`tasks/main/02_docker_install.yaml`](./tasks/main/02_docker_install.yaml).
 
 ## Supported Distributions
 
 The following distributions are supported:
 
 - Debian 11
+- Debian 12
 
 ## Required Arguments
 
 None.
 
-## Updates
+## Optional Arguments
 
-This role doesn't handle updates.
-However it uses the system package manager for installing Docker Engine and the other related packages, so when you're making sure the system packages are up-to-date, you're handling updates for the packages installed by this role as well.
-
-## `hosts`
-
-The `hosts` for this role need to be the machines for which you want to make sure Docker Engine and other related packages are installed from the Docker repos.
+None.
 
 ## Links & Resources
 

From 89f3e55eacfa9620332ec8fbf3c79036928a7fd5 Mon Sep 17 00:00:00 2001
From: June <june@jsts.xyz>
Date: Tue, 18 Feb 2025 05:35:45 +0100
Subject: [PATCH 3/6] docker(role): use better naming

---
 roles/docker/tasks/main.yaml                   | 6 +++---
 roles/docker/tasks/main/01_repo_setup.yaml     | 4 ++--
 roles/docker/tasks/main/02_docker_install.yaml | 2 +-
 roles/docker/tasks/main/03_docker_config.yaml  | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/roles/docker/tasks/main.yaml b/roles/docker/tasks/main.yaml
index aa01005..8c8044d 100644
--- a/roles/docker/tasks/main.yaml
+++ b/roles/docker/tasks/main.yaml
@@ -1,11 +1,11 @@
-- name: make sure the Docker repo is setup
+- name: Ensure Docker repo is setup
   ansible.builtin.import_tasks:
     file: main/01_repo_setup.yaml
 
-- name: make sure Docker Engine and other related packages are installed
+- name: Ensure Docker Engine and other related packages are installed
   ansible.builtin.import_tasks:
     file: main/02_docker_install.yaml
 
-- name: configure the Docker daemon
+- name: Ensure Docker daemon configuration
   ansible.builtin.import_tasks:
     file: main/03_docker_config.yaml
diff --git a/roles/docker/tasks/main/01_repo_setup.yaml b/roles/docker/tasks/main/01_repo_setup.yaml
index 24d3dcf..aa77521 100644
--- a/roles/docker/tasks/main/01_repo_setup.yaml
+++ b/roles/docker/tasks/main/01_repo_setup.yaml
@@ -1,4 +1,4 @@
-- name: make sure Dockers GPG key is added
+- name: Ensure Dockers GPG key is added
   ansible.builtin.get_url:
     url: https://download.docker.com/linux/debian/gpg
     dest: /etc/apt/trusted.gpg.d/docker.asc
@@ -7,7 +7,7 @@
     group: root
   become: true
 
-- name: make sure Dockers APT repository is added
+- name: Ensure Docker APT repository is added
   ansible.builtin.apt_repository:
     repo: "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/docker.asc] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable"
     filename: docker
diff --git a/roles/docker/tasks/main/02_docker_install.yaml b/roles/docker/tasks/main/02_docker_install.yaml
index 5617195..f2ae880 100644
--- a/roles/docker/tasks/main/02_docker_install.yaml
+++ b/roles/docker/tasks/main/02_docker_install.yaml
@@ -1,4 +1,4 @@
-- name: make sure Docker Engine and other related packages are installed
+- name: Ensure Docker Engine and other related packages are installed
   ansible.builtin.apt:
     name:
       - docker-ce
diff --git a/roles/docker/tasks/main/03_docker_config.yaml b/roles/docker/tasks/main/03_docker_config.yaml
index 0f26500..639e8fa 100644
--- a/roles/docker/tasks/main/03_docker_config.yaml
+++ b/roles/docker/tasks/main/03_docker_config.yaml
@@ -1,7 +1,7 @@
-# Configure the Docker daemon with the following settings:
+# Ensure the Docker daemon is configured with the following settings:
 # - log to systemd journal
 #   https://docs.docker.com/engine/logging/drivers/journald/
-- name: configure Docker daemon
+- name: Ensure Docker daemon configuration
   ansible.builtin.copy:
     src: daemon.json
     dest: /etc/docker/daemon.json

From 7420ed60105dbcf5b5c76c90279c4c8b3889bd98 Mon Sep 17 00:00:00 2001
From: June <june@jsts.xyz>
Date: Tue, 18 Feb 2025 05:43:39 +0100
Subject: [PATCH 4/6] nginx(role): split up repo setup and install task lists
 to estab. conv.

Split up repo setup and package installation after all to establish this
as a convention (its already done this way in the docker role and was
done this way in the nginx role before) to highlight that an external
repo is used.
---
 playbooks/maintenance.yaml                            | 11 ++++++++---
 roles/nginx/tasks/main.yaml                           |  8 ++++++--
 .../{02_nginx_install.yaml => 02_repo_setup.yaml}     |  7 -------
 roles/nginx/tasks/main/03_nginx_install.yaml          |  6 ++++++
 .../{03_config_deploy.yaml => 04_config_deploy.yaml}  |  0
 5 files changed, 20 insertions(+), 12 deletions(-)
 rename roles/nginx/tasks/main/{02_nginx_install.yaml => 02_repo_setup.yaml} (90%)
 create mode 100644 roles/nginx/tasks/main/03_nginx_install.yaml
 rename roles/nginx/tasks/main/{03_config_deploy.yaml => 04_config_deploy.yaml} (100%)

diff --git a/playbooks/maintenance.yaml b/playbooks/maintenance.yaml
index 8b6d037..40ca666 100644
--- a/playbooks/maintenance.yaml
+++ b/playbooks/maintenance.yaml
@@ -1,10 +1,15 @@
-- name: Ensure nginx install on nginx_hosts and nextcloud_hosts
+- name: Ensure NGINX repo setup and nginx install on nginx_hosts and nextcloud_hosts
   hosts: nginx_hosts:nextcloud_hosts
   tasks:
-    - name: Ensure NGINX is installed
+    - name: Ensure NGINX repo is setup
       ansible.builtin.include_role:
         name: nginx
-        tasks_from: main/02_nginx_install.yaml
+        tasks_from: main/02_repo_setup.yaml
+
+    - name: Ensure nginx is installed
+      ansible.builtin.include_role:
+        name: nginx
+        tasks_from: main/03_nginx_install.yaml
 
 - name: Make Sure System Package Are Up-To-Date for all non-hypervisors
   hosts: all:!hypervisors
diff --git a/roles/nginx/tasks/main.yaml b/roles/nginx/tasks/main.yaml
index 4a86530..0cade0b 100644
--- a/roles/nginx/tasks/main.yaml
+++ b/roles/nginx/tasks/main.yaml
@@ -2,10 +2,14 @@
   ansible.builtin.import_tasks:
     file: main/01_validate_config_names.yaml
 
+- name: Ensure NGINX repo is set up
+  ansible.builtin.import_tasks:
+    file: main/02_repo_setup.yaml
+
 - name: Ensure nginx is installed
   ansible.builtin.import_tasks:
-    file: main/02_nginx_install.yaml
+    file: main/03_nginx_install.yaml
 
 - name: Ensure configuration deployment
   ansible.builtin.import_tasks:
-    file: main/03_config_deploy.yaml
+    file: main/04_config_deploy.yaml
diff --git a/roles/nginx/tasks/main/02_nginx_install.yaml b/roles/nginx/tasks/main/02_repo_setup.yaml
similarity index 90%
rename from roles/nginx/tasks/main/02_nginx_install.yaml
rename to roles/nginx/tasks/main/02_repo_setup.yaml
index 9ceb323..eaaec30 100644
--- a/roles/nginx/tasks/main/02_nginx_install.yaml
+++ b/roles/nginx/tasks/main/02_repo_setup.yaml
@@ -37,10 +37,3 @@
     group: root
     mode: "0644"
   become: true
-
-- name: Ensure nginx is installed
-  ansible.builtin.apt:
-    name: nginx
-    state: present
-    update_cache: true
-  become: true
diff --git a/roles/nginx/tasks/main/03_nginx_install.yaml b/roles/nginx/tasks/main/03_nginx_install.yaml
new file mode 100644
index 0000000..86df2e1
--- /dev/null
+++ b/roles/nginx/tasks/main/03_nginx_install.yaml
@@ -0,0 +1,6 @@
+- name: Ensure nginx is installed
+  ansible.builtin.apt:
+    name: nginx
+    state: present
+    update_cache: true
+  become: true
diff --git a/roles/nginx/tasks/main/03_config_deploy.yaml b/roles/nginx/tasks/main/04_config_deploy.yaml
similarity index 100%
rename from roles/nginx/tasks/main/03_config_deploy.yaml
rename to roles/nginx/tasks/main/04_config_deploy.yaml

From 1ea63a19d38ff1285aceeeccf3c012a4e57ad3c2 Mon Sep 17 00:00:00 2001
From: June <june@jsts.xyz>
Date: Tue, 18 Feb 2025 05:48:01 +0100
Subject: [PATCH 5/6] maintenance(playbook): ensure docker repo and install
 before update

As with ensuring the nginx repo setup and install on relevant hosts, do
the same for docker.
---
 playbooks/maintenance.yaml | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/playbooks/maintenance.yaml b/playbooks/maintenance.yaml
index 40ca666..5cf70c5 100644
--- a/playbooks/maintenance.yaml
+++ b/playbooks/maintenance.yaml
@@ -11,6 +11,19 @@
         name: nginx
         tasks_from: main/03_nginx_install.yaml
 
+- name: Ensure Docker repo setup and package install on relevant hosts
+  hosts: docker_compose_hosts:nextcloud_hosts
+  tasks:
+    - name: Ensure Docker repo is setup
+      ansible.builtin.include_role:
+        name: docker
+        tasks_from: main/01_repo_setup.yaml
+
+    - name: Ensure Docker Engine and other related packages are installed
+      ansible.builtin.include_role:
+        name: docker
+        tasks_from: main/02_docker_install.yaml
+
 - name: Make Sure System Package Are Up-To-Date for all non-hypervisors
   hosts: all:!hypervisors
   roles:

From 9dba002f10cbf5d6a0c3bcc5ae196ed1b9bff4ee Mon Sep 17 00:00:00 2001
From: June <june@jsts.xyz>
Date: Tue, 18 Feb 2025 05:48:52 +0100
Subject: [PATCH 6/6] maintenance(playbook): simplify nginx repo setup and
 install task name

---
 playbooks/maintenance.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/playbooks/maintenance.yaml b/playbooks/maintenance.yaml
index 5cf70c5..c912a53 100644
--- a/playbooks/maintenance.yaml
+++ b/playbooks/maintenance.yaml
@@ -1,4 +1,4 @@
-- name: Ensure NGINX repo setup and nginx install on nginx_hosts and nextcloud_hosts
+- name: Ensure NGINX repo setup and nginx install on relevant hosts
   hosts: nginx_hosts:nextcloud_hosts
   tasks:
     - name: Ensure NGINX repo is setup