Files
loc_az_hci/scripts/vm-management/create/create-proxmox-template.sh
defiQUG c39465c2bd
Some checks failed
Test / test (push) Has been cancelled
Initial commit: loc_az_hci (smom-dbis-138 excluded via .gitignore)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 09:04:46 -08:00

95 lines
2.5 KiB
Bash
Executable File

#!/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 "$@"