56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Arian Nasr
|
|
# cloud-init provisioning for Debian 13 VM on Proxmox VE
|
|
|
|
template_vmid=106
|
|
newid=$(pvesh get /cluster/nextid)
|
|
|
|
# prompt for VM name
|
|
read -p "Enter the name for the new VM (default: vm-$newid): " vm_name
|
|
vm_name=${vm_name:-vm-$newid}
|
|
# prompt for customization
|
|
read -p "Enter the disk size in GB (default: 10): " disk
|
|
disk=${disk:-10}
|
|
# prompt for ssh key, if needed
|
|
read -p "Enter the SSH public key (optional): " ssh_key
|
|
|
|
|
|
# confirm the details before proceeding
|
|
echo "Creating VM with the following details:"
|
|
echo "Name: $vm_name"
|
|
echo "Disk Size: ${disk}GB"
|
|
if [ -n "$ssh_key" ]; then
|
|
echo "SSH Key: Provided"
|
|
fi
|
|
read -p "Do you want to proceed? (y/N): " confirm
|
|
if [[ "$confirm" != "y" ]]; then
|
|
echo "Aborting VM creation."
|
|
exit 1
|
|
fi
|
|
|
|
pvesh create /nodes/$(hostname)/qemu/$template_vmid/clone \
|
|
-newid $newid \
|
|
-name "$vm_name" \
|
|
-full true
|
|
|
|
|
|
# Resize the disk if needed
|
|
if [ $disk -gt 10 ]; then
|
|
pvesh resize /nodes/$(hostname)/qemu/$newid/config \
|
|
-scsi0 ${disk}G
|
|
fi
|
|
|
|
# Add SSH key if provided
|
|
if [ -n "$ssh_key" ]; then
|
|
pvesh set /nodes/$(hostname)/qemu/$newid/config \
|
|
-sshkeys "$ssh_key"
|
|
fi
|
|
|
|
# TODO:
|
|
# - Start VM
|
|
# - Wait for cloud-init to complete
|
|
# - Install qemu-guest-agent in VM
|
|
# - Reboot VM
|
|
# - Print IP address and status
|