diff --git a/ansible/playbooks/cleanup_semaphore.yml b/ansible/playbooks/cleanup_semaphore.yml new file mode 100644 index 0000000..070c07f --- /dev/null +++ b/ansible/playbooks/cleanup_semaphore.yml @@ -0,0 +1,54 @@ +--- +- name: Cleanup old Semaphore deployment on figment + hosts: semaphore_server + become: true + vars: + # Set to true to also remove data directories and config + semaphore_force_clean: false + + tasks: + - name: Stop and remove old Semaphore container + containers.podman.podman_container: + name: "{{ semaphore_container_name }}" + state: absent + ignore_errors: true + + - name: Stop and disable legacy generated systemd service + ansible.builtin.systemd: + name: "container-{{ semaphore_container_name }}.service" + state: stopped + enabled: false + ignore_errors: true + + - name: Remove legacy systemd unit file + ansible.builtin.file: + path: "/etc/systemd/system/container-{{ semaphore_container_name }}.service" + state: absent + + - name: Remove quadlet files (if any were previously deployed) + ansible.builtin.file: + path: "/etc/containers/systemd/{{ item }}.container" + state: absent + loop: + - "{{ semaphore_container_name }}" + - "{{ semaphore_postgres_container_name }}" + + - name: Reload systemd daemon + ansible.builtin.systemd: + daemon_reload: true + + - name: Remove data directories (only when semaphore_force_clean=true) + when: semaphore_force_clean | bool + ansible.builtin.file: + path: "{{ item }}" + state: absent + loop: + - "{{ semaphore_data_dir }}" + - "{{ semaphore_config_dir }}" + + - name: Remove PostgreSQL data volume marker (only when semaphore_force_clean=true) + when: semaphore_force_clean | bool and semaphore_use_postgres | default(false) + ansible.builtin.file: + path: "/var/lib/containers/storage/volumes/{{ semaphore_postgres_volume }}/_data" + state: absent + ignore_errors: true