Solved certreap bugs, implemented caching for pictures, optimized CSP policies (stricter), optimized recaptcha implementation for keycloak, solved mariadb wait bug, solved nextcloud plugin bugs, optimized ignore handling of tasks

This commit is contained in:
2025-05-08 09:51:38 +02:00
parent f71c9e4b31
commit d5f194b2c0
19 changed files with 162 additions and 64 deletions

View File

@@ -0,0 +1,25 @@
# cleanup-domains
## Description
This Ansible role removes Nginx configuration files and revokes and deletes Certbot certificates for domains marked as deprecated.
## Overview
Optimized for idempotent cleanup operations, this role:
- Deletes Nginx server configuration files in `/etc/nginx/conf.d/http/servers/` for each domain listed in `deprecated_domains`.
- Revokes and deletes corresponding Certbot certificates.
- Ensures cleanup tasks execute only once per playbook run.
- Notifies Nginx to restart after removing configurations.
## Purpose
Streamline the decommissioning of outdated or deprecated domains by automating the removal of Nginx server blocks and their SSL certificates.
## Features
- **Nginx Cleanup:** Safely removes server configuration files.
- **Certbot Integration:** Revokes and deletes certificates without manual intervention.
- **Idempotent Execution:** Utilizes a `run_once` flag to prevent repeated runs.
- **Service Notification:** Triggers an Nginx restart handler upon cleanup.

View File

@@ -0,0 +1,24 @@
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Remove Nginx configuration files and revoke/delete Certbot certificates for deprecated domains"
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- nginx
- cleanup
- certbot
- domains
repository: "https://s.veen.world/cymais"
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies:
- nginx

View File

@@ -0,0 +1,52 @@
---
- name: Include task to remove deprecated nginx configs
include_tasks: remove_deprecated_nginx_configs.yml
loop: "{{ deprecated_domains }}"
loop_control:
label: "{{ item }}"
vars:
domain: "{{ item }}"
when:
- mode_cleanup | bool
- run_once_nginx_domains_cleanup is not defined
## The revoking just works for the base domain
#- name: "Revoke Certbot certificate for {{ item }}"
# ansible.builtin.command:
# cmd: "certbot revoke -n --cert-name {{ item }} --non-interactive"
# become: true
# loop: "{{ deprecated_domains }}"
# loop_control:
# label: "{{ item }}"
# when:
# - mode_cleanup | bool
# - run_once_nginx_domains_cleanup is not defined
# register: certbot_revoke_result
# failed_when: >
# certbot_revoke_result.rc != 0 and
# 'No certificate found with name' not in certbot_revoke_result.stderr
# changed_when: >
# certbot_revoke_result.rc == 0
#
## The deleting just works for the base domain
#- name: "Delete Certbot certificate for {{ item }}"
# ansible.builtin.command:
# cmd: "certbot delete -n --cert-name {{ item }} --non-interactive"
# become: true
# loop: "{{ deprecated_domains }}"
# loop_control:
# label: "{{ item }}"
# when:
# - mode_cleanup | bool
# - run_once_nginx_domains_cleanup is not defined
# register: certbot_delete_result
# failed_when: >
# certbot_delete_result.rc != 0 and
# 'No certificate found with name' not in certbot_delete_result.stderr
# changed_when: >
# certbot_delete_result.rc == 0
- name: run the nginx_domains_cleanup role once
set_fact:
run_once_nginx_domains_cleanup: true
when: run_once_nginx_domains_cleanup is not defined

View File

@@ -0,0 +1,20 @@
---
- name: Find matching nginx configs for {{ domain }}
ansible.builtin.find:
paths: /etc/nginx/conf.d/http/servers
patterns: "*.{{ domain }}.conf"
register: find_result
- name: Remove wildcard nginx configs for {{ domain }}
ansible.builtin.file:
path: "{{ item.path }}"
state: absent
loop: "{{ find_result.files | default([]) }}"
when: item is defined
notify: restart nginx
- name: Remove exact nginx config for {{ domain }}
ansible.builtin.file:
path: "/etc/nginx/conf.d/http/servers/{{ domain }}.conf"
state: absent
notify: restart nginx