feat: proxmox_upgrade role and playbook
This commit is contained in:
43
roles/proxmox_upgrade/tasks/node_upgrade.yml
Normal file
43
roles/proxmox_upgrade/tasks/node_upgrade.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
# =============================================================================
|
||||
# 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 ━━━"
|
||||
|
||||
Reference in New Issue
Block a user