pve-template-vm/build-proxmox-template
June d09f497d11
remove openipmi from template as it results in a crashing service
It can always be installed after the fact, if indeed needed.
2025-02-13 01:09:36 +01:00

67 lines
1.9 KiB
Bash
Executable file

#!/bin/bash
#
# Build a disk image suitable for use as a Proxmox template in the CCCHH clusters.
# Needs apt install libguestfs-tools
#
VMID=9023
STORAGE=local-zfs
OS=debian-12
NAME=chaos-${OS}-tmpl-$(date -u +%Y-%m-%d)
BRIDGE=vmbr0,tag=208
set -eE
tempfolder=$(mktemp -d /tmp/cloudinit-XXXXX)
pushd $tempfolder
trap cleanup SIGHUP SIGINT SIGQUIT SIGABRT ERR EXIT
cleanup() {
echo "Removing temporary files"
popd 2> /dev/null || true
rm -rf $tempfolder
exit
}
wget -4 https://git.hamburg.ccc.de/CCCHH/infrastructure-authorized-keys/raw/branch/trunk/authorized_keys -O authorized_keys
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.tar.xz -O debian-12-generic-amd64.tar.xz
wget https://cloud.debian.org/images/cloud/bookworm/latest/SHA512SUMS -O SHA512SUMS
sha512sum --ignore-missing -c SHA512SUMS
rm SHA512SUMS
tar -xf debian-12-generic-amd64.tar.xz
rm debian-12-generic-amd64.tar.xz
virt-customize -a disk.raw \
--update \
--install qemu-guest-agent \
--uninstall openipmi \
--run-command 'systemctl enable qemu-guest-agent' \
--run-command 'systemctl enable fstrim.timer' \
--edit '/etc/ssh/sshd_config:s,#?Port.*,Port 42666,'
qm destroy ${VMID} || true
qm create ${VMID} --name "creating-vm" --memory 2048 --net0 virtio,bridge=${BRIDGE}
qm importdisk ${VMID} disk.raw ${STORAGE}
rm disk.raw
popd
qm set ${VMID} --scsihw virtio-scsi-pci --scsi0 ${STORAGE}:vm-${VMID}-disk-0,ssd=1,discard=on
qm set ${VMID} --ide2 ${STORAGE}:cloudinit
qm set ${VMID} --boot c --bootdisk scsi0
qm resize ${VMID} scsi0 16G
qm set ${VMID} --machine q35
qm set ${VMID} --ostype l26
qm set ${VMID} --cpu cputype=host
qm set ${VMID} --cores 1
qm set ${VMID} --serial0 socket --vga serial0
qm set ${VMID} --agent 1,fstrim_cloned_disks=1
qm set ${VMID} --ciuser chaos
qm set ${VMID} --sshkeys ./authorized_keys
qm set ${VMID} --ipconfig0 ip=dhcp
qm set ${VMID} --name ${NAME} --tags debian12
qm cloudinit update ${VMID}
qm template ${VMID}