Files
ansible-msp-automations/roles/proxmox_upgrade/tasks/node_upgrade.yml
2026-03-14 14:05:40 -07:00

44 lines
2.2 KiB
YAML

---
# =============================================================================
# proxmox_upgrade — node_upgrade.yml
# Per-node upgrade sequence: backup → drain → upgrade → restore
# Called with loop_var: current_node
# =============================================================================
- name: "Node {{ current_node }} | Start"
ansible.builtin.debug:
msg: "━━━ Starting upgrade of node {{ current_node }} ━━━"
# ── Step 1: Backup config ─────────────────────────────────────────────────────
- name: "Node {{ current_node }} | Step 1 — Backup config"
include_role:
name: hypervisor_backup_config
vars:
pve_config_git_commit_message: "[{{ client_id }}] {{ current_node }} pre-upgrade config backup {{ ansible_date_time.date }}"
delegate_to: "{{ current_node }}"
# ── Step 2: Drain node ────────────────────────────────────────────────────────
- name: "Node {{ current_node }} | Step 2 — Drain (migrate guests off node)"
include_tasks: drain.yml
when: cluster_mode == 'cluster'
- name: "Node {{ current_node }} | Step 2 — Single node mode, skipping drain"
ansible.builtin.debug:
msg: "cluster_mode=single — skipping guest migration"
when: cluster_mode == 'single'
# ── Step 3: Upgrade ───────────────────────────────────────────────────────────
- name: "Node {{ current_node }} | Step 3 — Upgrade packages"
include_tasks: upgrade.yml
delegate_to: "{{ current_node }}"
# ── Step 4: Restore ───────────────────────────────────────────────────────────
- name: "Node {{ current_node }} | Step 4 — Restore guests"
include_tasks: restore.yml
when: cluster_mode == 'cluster'
- name: "Node {{ current_node }} | Complete"
ansible.builtin.debug:
msg: "━━━ Node {{ current_node }} upgrade complete ━━━"