initial commital

This commit is contained in:
2026-09-02 14:47:08 -06:00
commit 3c80aef53b
23 changed files with 1648 additions and 0 deletions

112
uninstall.yml Normal file
View 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 }}"