mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 12:18:17 +00:00 
			
		
		
		
	Added nginx-domains-cleanup draft
This commit is contained in:
		
							
								
								
									
										25
									
								
								roles/nginx-domains-cleanup/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								roles/nginx-domains-cleanup/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# nginx-domains-cleanup
 | 
			
		||||
 | 
			
		||||
## 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.
 | 
			
		||||
							
								
								
									
										24
									
								
								roles/nginx-domains-cleanup/meta/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								roles/nginx-domains-cleanup/meta/main.yml
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										39
									
								
								roles/nginx-domains-cleanup/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								roles/nginx-domains-cleanup/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
---
 | 
			
		||||
- name: "Remove Nginx configuration for deprecated domains"
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    path: "/etc/nginx/conf.d/http/servers/{{ item }}"
 | 
			
		||||
    state: absent
 | 
			
		||||
  loop: "{{ deprecated_domains }}"
 | 
			
		||||
  loop_control:
 | 
			
		||||
    label: "{{ item }}"
 | 
			
		||||
  notify: restart nginx
 | 
			
		||||
  when:
 | 
			
		||||
    - mode_cleanup | bool
 | 
			
		||||
    - run_once_nginx_domains_cleanup is not defined
 | 
			
		||||
 | 
			
		||||
- name: "Revoke Certbot certificate for {{ item }}"
 | 
			
		||||
  ansible.builtin.command:
 | 
			
		||||
    cmd: "certbot revoke -n --cert-name {{ item }}"
 | 
			
		||||
  become: true
 | 
			
		||||
  loop: "{{ deprecated_domains }}"
 | 
			
		||||
  loop_control:
 | 
			
		||||
    label: "{{ item }}"
 | 
			
		||||
  when:
 | 
			
		||||
    - mode_cleanup | bool
 | 
			
		||||
    - run_once_nginx_domains_cleanup is not defined
 | 
			
		||||
 | 
			
		||||
- name: "Delete Certbot certificate for {{ item }}"
 | 
			
		||||
  ansible.builtin.command:
 | 
			
		||||
    cmd: "certbot delete -n --cert-name {{ item }}"
 | 
			
		||||
  become: true
 | 
			
		||||
  loop: "{{ deprecated_domains }}"
 | 
			
		||||
  loop_control:
 | 
			
		||||
    label: "{{ item }}"
 | 
			
		||||
  when:
 | 
			
		||||
    - mode_cleanup | bool
 | 
			
		||||
    - run_once_nginx_domains_cleanup is not defined
 | 
			
		||||
 | 
			
		||||
- 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
 | 
			
		||||
		Reference in New Issue
	
	Block a user