1
0
Files
pve-lab/lab.env

75 lines
2.4 KiB
Bash
Raw Permalink Normal View History

2026-08-02 10:40:47 -05:00
#!/usr/bin/env bash
# Shared configuration for the local Proxmox VE test cluster.
# --- cluster identity ---
CLUSTER_NAME="testlab"
DOMAIN="lab.local"
# --- libvirt connection (system instance; needs sudo) ---
export LIBVIRT_DEFAULT_URI="qemu:///system"
VIRSH="sudo virsh"
VIRTINSTALL="sudo virt-install"
# --- network ---
NET_NAME="pve-net"
NET_BRIDGE="pvebr0"
NET_SUBNET="10.10.10.0"
NET_PREFIX="24"
NET_GW="10.10.10.1"
NET_DHCP_START="10.10.10.100"
NET_DHCP_END="10.10.10.200"
# --- nodes (name : ip : mac) ---
PVE1_NAME="pve1"; PVE1_IP="10.10.10.11"; PVE1_MAC="52:54:00:00:10:11"
PVE2_NAME="pve2"; PVE2_IP="10.10.10.12"; PVE2_MAC="52:54:00:00:10:12"
STORE_NAME="pvestore"; STORE_IP="10.10.10.13"; STORE_MAC="52:54:00:00:10:13"
# --- credentials ---
# Min length 8 for the PVE installer. Change if you like.
ROOT_PASSWORD="ProxmoxLab123!"
# --- node VM sizing ---
NODE_VCPU="4"
NODE_RAM_MB="8192"
NODE_DISK_GB="48"
# --- storage VM sizing ---
STORE_VCPU="2"
STORE_RAM_MB="2048"
STORE_DATA_DISK_GB="60" # extra data disk on the storage VM (sparse)
ISCSI_LUN_GB="50" # sparse backing file size for the iSCSI LUN
ISCSI_IQN="iqn.2026-06.local.lab:store.lun0"
# --- Proxmox VE ISO ---
ISO_VERSION="9.2-1"
ISO_FILE="proxmox-ve_${ISO_VERSION}.iso"
ISO_URL="https://enterprise.proxmox.com/iso/${ISO_FILE}"
ISO_SHA256="4e88fe416df9b527624a175f24c9aa07c714d3332afb1ee3dbf3879573ef2c6c"
# --- Debian cloud image (storage VM base); 13 = trixie ---
DEBIAN_IMG="debian-13-genericcloud-amd64.qcow2"
DEBIAN_URL="https://cloud.debian.org/images/cloud/trixie/latest/${DEBIAN_IMG}"
# --- working directories ---
# Scripts and small artifacts live with the repo; heavy images live in the
# libvirt pool path so qemu:///system (qemu user + SELinux virt_image_t) can
# read them without permission/labeling headaches.
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LIB_DIR="/var/lib/libvirt/images/pve-lab" # ISOs, qcow2 disks, seed ISO (sudo-owned)
BUILD_DIR="${SCRIPT_DIR}/build" # rendered answer files, logs (user-owned)
# --- automation SSH key (generated by 00-prereqs.sh) ---
SSH_KEY="${SCRIPT_DIR}/.ssh/id_lab"
SSH_PUB="${SSH_KEY}.pub"
# SSH helper: connect to a node as root with the lab key, no host-key fuss.
lab_ssh() {
ssh -i "$SSH_KEY" \
-o IdentitiesOnly=yes \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-o ConnectTimeout=8 \
-o LogLevel=ERROR \
"root@$1" "${@:2}"
}