Hypervisor template
This commit is contained in:
114
inventories/client_template/hypervisor_hosts.yml
Normal file
114
inventories/client_template/hypervisor_hosts.yml
Normal 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
|
||||||
Reference in New Issue
Block a user