Files
proxmox/scripts/create-all-chain138-containers-direct.sh

105 lines
3.8 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Direct container creation script for ChainID 138
# Creates all 13 missing containers with correct specifications
set -euo pipefail
# Load IP configuration
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
PROXMOX_HOST="${PROXMOX_HOST:-192.168.11.10}"
TEMPLATE="local:vztmpl/debian-12-standard_12.12-1_amd64.tar.zst"
STORAGE="local-lvm"
NETWORK="vmbr0"
GATEWAY="${NETWORK_GATEWAY:-192.168.11.1}"
# Colors
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"; }
# Check if container exists
exists() {
local vmid=$1
ssh -o StrictHostKeyChecking=no root@${PROXMOX_HOST} "pct list | grep -q '^$vmid ' && echo 'yes' || echo 'no'"
}
# Create container
create() {
local vmid=$1
local hostname=$2
local ip=$3
local mem=$4
local cores=$5
local disk=$6
local desc="$7"
if [[ "$(exists $vmid)" == "yes" ]]; then
warn "Container $vmid already exists, skipping..."
return 0
fi
log "Creating $vmid: $hostname ($ip) - ${mem}GB RAM, ${cores} cores, ${disk}GB disk..."
ssh -o StrictHostKeyChecking=no root@${PROXMOX_HOST} <<EOF
pct create $vmid $TEMPLATE \
--hostname $hostname \
--memory $((mem * 1024)) \
--cores $cores \
--rootfs $STORAGE:${disk} \
--net0 name=eth0,bridge=$NETWORK,ip=$ip/24,gw=$GATEWAY \
--description "$desc" \
--start 1 \
--onboot 1 \
--unprivileged 0 2>&1 | grep -v "WARNING: Ignoring duplicate" || true
EOF
if [[ "$(exists $vmid)" == "yes" ]]; then
success "Container $vmid created successfully"
return 0
else
error "Failed to create container $vmid"
return 1
fi
}
log "Creating ChainID 138 containers on $PROXMOX_HOST..."
echo ""
# Besu Sentry
create 1504 "besu-sentry-5" "${IP_BESU_SENTRY:-${IP_BESU_SENTRY:-192.168.11.154}}" 4 2 100 "Besu Sentry Node - Ali's dedicated host"
# Besu RPC Nodes
create 2503 "besu-rpc-4" "${RPC_ALI_1_ALT:-${RPC_ALI_1_ALT:-${RPC_ALI_1_ALT:-192.168.11.253}}}" 16 4 200 "Besu RPC Node - Ali (0x8a identity)"
create 2504 "besu-rpc-4" "${RPC_ALI_2_ALT:-${RPC_ALI_2_ALT:-${RPC_ALI_2_ALT:-192.168.11.254}}}" 16 4 200 "Besu RPC Node - Ali (0x1 identity)"
create 2505 "besu-rpc-luis" "${RPC_LUIS_1:-${RPC_LUIS_1:-${RPC_LUIS_1:-192.168.11.255}}}" 16 4 200 "Besu RPC Node - Luis (0x8a identity)"
create 2506 "besu-rpc-luis" "${RPC_LUIS_2:-${RPC_LUIS_2:-${RPC_LUIS_2:-192.168.11.202}}}" 16 4 200 "Besu RPC Node - Luis (0x1 identity)"
create 2507 "besu-rpc-putu" "${RPC_PUTU_1:-${RPC_PUTU_1:-${RPC_PUTU_1:-192.168.11.203}}}" 16 4 200 "Besu RPC Node - Putu (0x8a identity)"
create 2508 "besu-rpc-putu" "${RPC_PUTU_2:-${RPC_PUTU_2:-${RPC_PUTU_2:-192.168.11.204}}}" 16 4 200 "Besu RPC Node - Putu (0x1 identity)"
# Hyperledger Services
create 6200 "firefly-1" "${IP_FIREFLY:-192.168.11.66}" 4 2 50 "Hyperledger Firefly Core"
create 6201 "firefly-2" "${IP_FIREFLY_2:-192.168.11.67}" 4 2 50 "Hyperledger Firefly Node - ChainID 138"
create 5200 "cacti-1" "${IP_CACTI:-${IP_CACTI:-192.168.11.64}}" 4 2 50 "Hyperledger Cacti"
create 6000 "fabric-1" "${IP_FABRIC:-${IP_FABRIC:-192.168.11.65}}" 8 4 100 "Hyperledger Fabric"
create 6400 "indy-1" "${IP_INDY:-${IP_INDY:-192.168.11.68}}" 8 4 100 "Hyperledger Indy"
# Explorer
create 5000 "blockscout-1" "${IP_BLOCKSCOUT:-192.168.11.69}" 8 4 200 "Blockscout Explorer - ChainID 138"
echo ""
log "Container creation complete!"
log "Checking final status..."
ssh -o StrictHostKeyChecking=no root@${PROXMOX_HOST} "pct list | grep -E '(1504|2503|2504|2505|2506|2507|2508|6200|6201|5200|6000|6400|5000)' | sort -n"