Files
proxmox/scripts/npmplus/create-npmplus-alltra-hybx-container.sh

84 lines
2.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Create NPMplus Alltra/HYBX container (VMID 10235) on r630-01
# See: docs/04-configuration/NPMPLUS_ALLTRA_HYBX_MASTER_PLAN.md
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
source "$PROJECT_ROOT/config/ip-addresses.conf" 2>/dev/null || true
[ -f "$PROJECT_ROOT/.env" ] && set +u && source "$PROJECT_ROOT/.env" 2>/dev/null || true && set -u
VMID="${NPMPLUS_ALLTRA_HYBX_VMID:-10235}"
HOST="${PROXMOX_HOST_R630_01:-192.168.11.11}"
IP="${IP_NPMPLUS_ALLTRA_HYBX:-192.168.11.169}"
TEMPLATE="${TEMPLATE:-local:vztmpl/debian-12-standard_12.12-1_amd64.tar.zst}"
STORAGE="${STORAGE:-local-lvm}"
NETWORK="${NETWORK:-vmbr0}"
GATEWAY="${NETWORK_GATEWAY:-192.168.11.1}"
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m'
log() { echo -e "${BLUE}[INFO]${NC} $1"; }
success() { echo -e "${GREEN}[✓]${NC} $1"; }
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
error() { echo -e "${RED}[ERROR]${NC} $1"; }
log "Creating NPMplus Alltra/HYBX container (VMID $VMID) on $HOST at $IP..."
exists() {
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@"$HOST" "pct list 2>/dev/null | grep -q '^[[:space:]]*$VMID[[:space:]]' && echo yes || echo no" 2>/dev/null || echo "no"
}
if [[ "$(exists)" == "yes" ]]; then
warn "Container $VMID already exists. Skipping creation."
success "Container $VMID is ready. Proceed to Phase 3 (install NPMplus)."
exit 0
fi
# Check SSH
if ! ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@"$HOST" "echo ok" >/dev/null 2>&1; then
error "Cannot SSH to $HOST. Ensure you can reach root@$HOST."
exit 1
fi
# Check template exists on host
if ! ssh -o StrictHostKeyChecking=no root@"$HOST" "pveam list local 2>/dev/null | grep -q 'debian-12-standard'"; then
warn "Debian 12 template may not exist. Checking..."
TEMPLATE_ALT=$(ssh -o StrictHostKeyChecking=no root@"$HOST" "pveam list local 2>/dev/null | grep -E 'debian|ubuntu' | head -1 | awk '{print \$1}'" || echo "")
if [ -n "$TEMPLATE_ALT" ]; then
TEMPLATE="$TEMPLATE_ALT"
log "Using template: $TEMPLATE"
else
error "No Debian/Ubuntu template found. Download one: pveam download local debian-12-standard_12.12-1_amd64.tar.zst"
exit 1
fi
fi
log "Creating container..."
ssh -o StrictHostKeyChecking=no root@"$HOST" "pct create $VMID $TEMPLATE \
--hostname npmplus-alltra-hybx \
--memory 2048 \
--cores 2 \
--rootfs $STORAGE:10 \
--net0 name=eth0,bridge=$NETWORK,ip=$IP/24,gw=$GATEWAY \
--description 'NPMplus Alltra/HYBX - Sentry, RPC, Cacti, Firefly, Fabric, Indy' \
--start 1 \
--onboot 1 \
--unprivileged 1 \
--features nesting=1" 2>&1 || {
error "Failed to create container"
exit 1
}
sleep 5
if [[ "$(exists)" == "yes" ]]; then
success "Container $VMID created and started at $IP"
log "Next: bash scripts/npmplus/install-npmplus-alltra-hybx.sh"
else
error "Container creation may have failed. Check: ssh root@$HOST 'pct list'"
exit 1
fi