Hypervisor template

This commit is contained in:
2026-03-13 13:29:15 -07:00
parent dc2050db8d
commit d0e206bdd3

View File

@@ -0,0 +1,114 @@
---
# =============================================================================
# hypervisor_hosts.yml — Physical Hypervisor Node Inventory
# =============================================================================
# This file defines the physical hypervisor nodes for a client.
# Used by the hypervisor upgrade playbook (proxmox_upgrade.yml, xcpng_upgrade.yml)
# NOT used by guest playbooks (linux_patch, windows_patch, snapshot, etc.)
#
# Supported hypervisor_type values:
# proxmox — Proxmox VE cluster or standalone node
# xcpng — XCP-NG pool
#
# Copy this file to inventories/client_<slug>/hypervisor_hosts.yml
# and fill in the values for the client.
# =============================================================================
all:
children:
# ── Proxmox Cluster / Standalone ─────────────────────────────────────────
# Remove this section if client does not use Proxmox
proxmox_cluster:
vars:
hypervisor_type: proxmox
# Proxmox API connection — used for migration and cluster queries
# Points to any node in the cluster (usually node-01)
api_host: 192.168.X.X
api_port: 8006
api_token_id: "ansible@pve!ansible-token"
api_token_secret: "REPLACE_ME"
# Is this a single node or a cluster?
# single — no migration, just upgrade in place
# cluster — rolling upgrade with VM migration
cluster_mode: cluster # cluster | single
# CEPH — if true, playbook will set noout flag before upgrading each
# node and clear it after the node rejoins the cluster
ceph_enabled: false
# Shared storage — if false, VMs with local disks cannot be live
# migrated. Playbook will cold-migrate (shutdown) or skip based on
# local_disk_action below.
shared_storage: true
# What to do with VMs that have local disks when shared_storage: false
# skip — leave them on the node, warn and proceed (risky)
# cold — shut down, migrate, start on new node
# abort — stop the upgrade if any local-disk VMs are found
local_disk_action: cold # skip | cold | abort
# Rolling upgrade order — list nodes in the order you want them upgraded
# First node in list is drained first. If empty, playbook will sort
# alphabetically.
upgrade_order:
- pm-node-01
- pm-node-02
- pm-node-03
# SSH user for running apt upgrade on nodes directly
ansible_user: root
ansible_become: false
# Tags to exclude from migration (e.g. VMs you never want moved)
# migrate_exclude_tags:
# - nomigrate
# - pinned
hosts:
pm-node-01:
ansible_host: 192.168.X.X
# proxmox_node_name: pm-node-01 # only needed if hostname differs
pm-node-02:
ansible_host: 192.168.X.X
pm-node-03:
ansible_host: 192.168.X.X
# ── XCP-NG Pool ──────────────────────────────────────────────────────────
# Remove this section if client does not use XCP-NG
xcpng_pool:
vars:
hypervisor_type: xcpng
# XO (Xen Orchestra) API — used for migration
xo_url: "https://xoa.example.com"
xo_token: "REPLACE_ME"
# Pool UUID — find with: xe pool-list
pool_uuid: "REPLACE_ME"
# CEPH not applicable to XCP-NG
ceph_enabled: false
# Shared storage — XCP-NG SR type
# true if using NFS/iSCSI/Ceph SR, false if local SR only
shared_storage: true
local_disk_action: cold # skip | cold | abort
upgrade_order:
- xcp-node-01
- xcp-node-02
- xcp-node-03
ansible_user: root
ansible_become: false
hosts:
xcp-node-01:
ansible_host: 192.168.X.X
xcp-node-02:
ansible_host: 192.168.X.X
xcp-node-03:
ansible_host: 192.168.X.X