initial commital
This commit is contained in:
112
uninstall.yml
Normal file
112
uninstall.yml
Normal file
@@ -0,0 +1,112 @@
|
||||
---
|
||||
# =============================================================================
|
||||
# Minecraft Podman Deployment - Uninstall Playbook
|
||||
# =============================================================================
|
||||
# Usage:
|
||||
# ansible-playbook uninstall.yml --limit external-apps
|
||||
#
|
||||
# WARNING: This will remove ALL Minecraft data, containers, and configuration
|
||||
# from the target server. Run only if you're sure you want to clean up.
|
||||
# =============================================================================
|
||||
|
||||
- name: Uninstall Minecraft Server from Podman
|
||||
hosts: minecraft
|
||||
become: true
|
||||
gather_facts: true
|
||||
|
||||
tasks:
|
||||
- name: Confirm uninstall
|
||||
ansible.builtin.pause:
|
||||
prompt: "WARNING: This will remove all Minecraft data from {{ inventory_hostname }}. Type 'yes' to continue"
|
||||
register: confirm
|
||||
when: not ansible_check_mode
|
||||
|
||||
- name: Abort if not confirmed
|
||||
ansible.builtin.fail:
|
||||
msg: "Uninstall aborted"
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
- confirm.user_input | lower != "yes"
|
||||
|
||||
- name: Stop Minecraft service
|
||||
ansible.builtin.systemd:
|
||||
name: "minecraft.service"
|
||||
state: stopped
|
||||
enabled: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Stop backup timer
|
||||
ansible.builtin.systemd:
|
||||
name: "minecraft-backup.timer"
|
||||
state: stopped
|
||||
enabled: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Stop health timer
|
||||
ansible.builtin.systemd:
|
||||
name: "minecraft-health.timer"
|
||||
state: stopped
|
||||
enabled: false
|
||||
ignore_errors: true
|
||||
|
||||
- name: Remove systemd unit files
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: absent
|
||||
loop:
|
||||
- "/etc/systemd/system/minecraft.service"
|
||||
- "/etc/systemd/system/minecraft-backup.timer"
|
||||
- "/etc/systemd/system/minecraft-backup.service"
|
||||
- "/etc/systemd/system/minecraft-health.timer"
|
||||
- "/etc/systemd/system/minecraft-health.service"
|
||||
ignore_errors: true
|
||||
|
||||
- name: Reload systemd daemon
|
||||
ansible.builtin.systemd:
|
||||
daemon_reload: true
|
||||
|
||||
- name: Stop and remove container
|
||||
containers.podman.podman_container:
|
||||
name: "minecraft"
|
||||
state: absent
|
||||
ignore_errors: true
|
||||
register: container_remove
|
||||
when: not ansible_check_mode
|
||||
|
||||
- name: Remove container (fallback with command)
|
||||
ansible.builtin.command: podman rm -f minecraft
|
||||
ignore_errors: true
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
- container_remove is failed
|
||||
|
||||
- name: Remove base directory
|
||||
ansible.builtin.file:
|
||||
path: "/opt/minecraft"
|
||||
state: absent
|
||||
ignore_errors: true
|
||||
when: not ansible_check_mode
|
||||
|
||||
- name: Remove Minecraft system user
|
||||
ansible.builtin.user:
|
||||
name: "minecraft"
|
||||
state: absent
|
||||
remove: true
|
||||
ignore_errors: true
|
||||
when: not ansible_check_mode
|
||||
|
||||
- name: Close firewall ports
|
||||
ansible.posix.firewalld:
|
||||
port: "{{ item }}"
|
||||
permanent: true
|
||||
immediate: true
|
||||
state: disabled
|
||||
loop:
|
||||
- "25565/tcp"
|
||||
- "25575/tcp"
|
||||
ignore_errors: true
|
||||
tags: [firewall]
|
||||
|
||||
- name: Uninstall complete message
|
||||
ansible.builtin.debug:
|
||||
msg: "Minecraft server removed from {{ inventory_hostname }}"
|
||||
Reference in New Issue
Block a user