51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
---
|
|
# =============================================================================
|
|
# proxmox_ha.yml
|
|
# HA group membership and maintenance mode management.
|
|
#
|
|
# Actions:
|
|
# status — show current HA status for all nodes and services
|
|
# disable — put a node into HA maintenance mode (VMs migrate away)
|
|
# enable — take a node out of HA maintenance mode (resume normal HA)
|
|
#
|
|
# Usage:
|
|
# # Check HA status
|
|
# ansible-playbook proxmox_ha.yml -e "ha_action=status"
|
|
#
|
|
# # Put node into maintenance before work
|
|
# ansible-playbook proxmox_ha.yml -e "ha_action=disable ha_target_node=pm-node-01"
|
|
#
|
|
# # Resume HA after work is complete
|
|
# ansible-playbook proxmox_ha.yml -e "ha_action=enable ha_target_node=pm-node-01"
|
|
# =============================================================================
|
|
|
|
- name: "Proxmox | HA Management"
|
|
hosts: proxmox_cluster
|
|
gather_facts: false
|
|
|
|
vars:
|
|
ha_action: status
|
|
ha_target_node: "{{ inventory_hostname }}"
|
|
|
|
pre_tasks:
|
|
- name: "HA | Validate action"
|
|
ansible.builtin.fail:
|
|
msg: >-
|
|
Invalid ha_action '{{ ha_action }}'.
|
|
Must be one of: status, disable, enable.
|
|
when: ha_action not in ['status', 'disable', 'enable']
|
|
run_once: true
|
|
|
|
- name: "HA | Log action"
|
|
ansible.builtin.debug:
|
|
msg: >-
|
|
HA {{ ha_action }} —
|
|
client={{ client_name | default('Unknown') }}
|
|
{% if ha_action in ['disable', 'enable'] %}node={{ ha_target_node }}{% endif %}
|
|
run_once: true
|
|
|
|
roles:
|
|
- role: proxmox_ha
|
|
vars:
|
|
current_node: "{{ ha_target_node }}"
|