User Tools

Site Tools


debian_ansible_hands-free_installs

Debian/Ansible/Hands-Free/Installs Initiative

Per Spiffyeight77

Reference: Spiffyeight77 (modified by me for Debian 13)

Download the Official Cloud-Init Images

# Within Proxmox, create storage directory for cloud-init images

mkdir -p /var/lib/vz/template/iso/cloud-init/debian

# Navigate to debian directory

cd /var/lib/vz/template/iso/cloud-init/debian

# Download Debian 13 generic cloud image

wget https://cloud.debian.org/images/cloud/trixie/latest/debian-13-genericcloud-amd64.qcow2

# Download checksum for verification

wget https://cloud.debian.org/images/cloud/trixie/latest/SHA512SUMS

# Verify image integrity

sha512sum -c SHA512SUMS --ignore-missing

Create the VM Template

Create the Virtual Machine
qm create 9000 --name debian-13-template --memory 2048 --cores 1 --net0 virtio,bridge=vmbr0 --ostype l26 --cpu cputype=host
Import and Configure the Disk

# Import cloud-init image as VM disk

qm importdisk 9000 /var/lib/vz/template/iso/cloud-init/debian/debian-13-genericcloud-amd64.qcow2 local-lvm --format qcow2

# Attach disk to VM with VirtIO SCSI

qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0

# Add cloud-init drive

qm set 9000 --ide2 local-lvm:cloudinit

# Configure boot options

qm set 9000 --boot c --bootdisk scsi0

# Add serial console for cloud-init output

qm set 9000 --serial0 socket --vga serial0

# Configure the networking

qm set 9000 --ipconfig0 ip=dhcp

# Enable the qemu guest agent(recommend)

qm set 9000 --agent enabled=1

Testing the Template (Optional)

Start and Verify the VM

# Start the VM for testing

qm start 9000

# Check cloud-init configuration

qm cloudinit dump 9000 user

# Monitor startup process

qm console 9000

# Check the VM IP

qm guest cmd 9000 network-get-interfaces
Verify Cloud-Init Completion

Once logged into the VM: # Check cloud-init status

sudo cloud-init status

# View cloud-init logs

sudo tail -20 /var/log/cloud-init-output.log

# Check system information

cat /etc/os-release

After successful testing, shutdown the VM: # Shutdown the VM

qm shutdown 9000

Converting to Template

Convert the VM to a template: # Convert to template (irreversible operation)

qm template 9000

Cloning VMs from Template

Using Proxmox Web Interface
  1. Navigate to Templates: In the PVE web interface, locate your template (VM ID 9000)
  2. Clone Template: Right-click → “Clone” or use the Clone button
  3. Configure Clone Settings:
    • VM ID: Choose an unused ID (e.g., 101)
    • Name: Descriptive name (e.g., “debian-selfhosted-server”)
    • Mode: Full Clone (recommended for production)
    • Target Storage: Select appropriate storage
Resize Disk After Cloning
  1. Access Hardware Tab: Select the cloned VM → Hardware Tab
  2. Resize Disk: Select scsi0 disk → 'Resize disk'
  3. Set New Size: Enter desired size (e.g., 50GB for container hosts)
Configure Cloud-Init for New VM
  1. Cloud-Init Tab: Navigate to the Cloud-Init tab
  2. Configure Settings:
    • User: Set username (e.g., “admin”)
    • Password: Set secure password
    • SSH Public Key: paste your SSH public key
    • IP Config: Choose DHCP or static IP configuration
  3. Apply Changes: Click “Regenerate Image”
debian_ansible_hands-free_installs.txt · Last modified: by mike

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki