incus-contrib/ansible/playbooks/showcase/decommission/webapp-db.yml

44 lines
1.2 KiB
YAML

---
# showcase/decommission/webapp-db.yml — Graceful MariaDB shutdown
#
# Best-effort: failures do not block instance deletion.
- name: Stop MariaDB gracefully
ansible.builtin.uri:
url: "{{ incus_api }}/1.0/instances/{{ ffsdn_instance_name }}/exec"
method: POST
client_cert: "{{ incus_cert }}"
client_key: "{{ incus_key }}"
validate_certs: false
body_format: json
body:
command:
- "/bin/bash"
- "-c"
- |
echo "Stopping MariaDB gracefully..."
systemctl stop mariadb 2>/dev/null || true
echo "MariaDB stopped"
record-output: true
interactive: false
wait-for-websocket: false
status_code: [202]
return_content: true
register: db_stop_exec
ignore_errors: true
- name: Wait for MariaDB stop (up to 30s)
ansible.builtin.uri:
url: "{{ incus_api }}{{ db_stop_exec.json.operation }}/wait?timeout=30"
method: GET
client_cert: "{{ incus_cert }}"
client_key: "{{ incus_key }}"
validate_certs: false
return_content: true
ignore_errors: true
when: db_stop_exec is not failed
- name: Report MariaDB decommission
ansible.builtin.debug:
msg: "MariaDB on {{ ffsdn_instance_name }} stopped gracefully"