#!/bin/bash source ~/.bashrc # Create Proxmox Cloud-Init Template from Ubuntu Cloud Image set -e # Colors GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } log_step() { echo -e "${BLUE}[STEP]${NC} $1" } # Load environment variables if [ -f .env ]; then set -a source <(grep -v '^#' .env | grep -v '^$' | sed 's/#.*$//' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | grep '=') set +a fi PVE_USERNAME="${PVE_USERNAME:-root@pam}" PVE_PASSWORD="${PVE_ROOT_PASS:-}" PROXMOX_URL="${PROXMOX_URL:-https://192.168.1.206:8006}" PROXMOX_NODE="${PROXMOX_NODE:-pve}" STORAGE="${STORAGE:-local-lvm}" CLOUD_IMAGE="${1:-./downloads/ubuntu-24.04-server-cloudimg-amd64.img}" TEMPLATE_NAME="${2:-ubuntu-24.04-cloudinit}" TEMPLATE_ID="${3:-9000}" main() { echo "=========================================" echo "Create Proxmox Cloud-Init Template" echo "=========================================" echo "" if [ ! -f "$CLOUD_IMAGE" ]; then log_error "Cloud image not found: $CLOUD_IMAGE" log_info "Download it first: ./scripts/download-ubuntu-cloud-image.sh" exit 1 fi if [ -z "$PVE_PASSWORD" ]; then log_error "PVE_ROOT_PASS not set in .env" exit 1 fi log_step "Creating template from: $CLOUD_IMAGE" log_info "Template name: $TEMPLATE_NAME" log_info "Template ID: $TEMPLATE_ID" log_info "Storage: $STORAGE" echo "" log_info "This script provides instructions for manual template creation." log_info "Proxmox Web UI method is more reliable for template creation." echo "" log_step "Manual Steps (Recommended):" echo "" echo "1. Upload Cloud Image to Proxmox:" echo " - Proxmox Web UI → Datacenter → $PROXMOX_NODE → Storage" echo " - Select storage → Content → Upload" echo " - Upload: $CLOUD_IMAGE" echo "" echo "2. Create VM from Cloud Image:" echo " - Create VM (ID: $TEMPLATE_ID)" echo " - Import disk from uploaded image" echo " - Configure Cloud-Init settings" echo "" echo "3. Convert to Template:" echo " - Right-click VM → Convert to Template" echo "" echo "4. Use Template:" echo " - Clone template to create new VMs" echo " - Configure Cloud-Init on clone" echo "" log_info "See: docs/proxmox-ubuntu-images.md for detailed instructions" } main "$@"