Overhaul install script
The new script now: - uses the official Debian Cloud-Init image - verifies the checksum of the image - edits this image to install the qemu guest agent - features an exit trap to clean up after runs - sets a more performant machine type
This commit is contained in:
parent
01b2316d13
commit
7d58f667e6
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Build a disk image suitable for use as a Proxmox template in the CCCHH clusters.
|
||||
|
@ -8,37 +8,58 @@
|
|||
VMID=9023
|
||||
STORAGE=local-zfs
|
||||
OS=debian-12
|
||||
NAME=chaos-${OS}-tmpl
|
||||
NAME=chaos-${OS}-tmpl-$(date -u +%Y-%m-%d)
|
||||
BRIDGE=vmbr0,tag=208
|
||||
|
||||
set -e
|
||||
set -eE
|
||||
|
||||
virt-builder ${OS} -o ${NAME}.qcow2 --format qcow2 \
|
||||
--root-password disabled \
|
||||
--run-command 'echo grub-pc hold | dpkg --set-selections' \
|
||||
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 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 \
|
||||
--run-command 'apt dist-upgrade -y' \
|
||||
--install cloud-init,qemu-guest-agent \
|
||||
--install qemu-guest-agent \
|
||||
--run-command 'systemctl enable qemu-guest-agent' \
|
||||
--run-command 'systemctl enable fstrim.timer' \
|
||||
--edit '/etc/default/grub:s,GRUB_CMDLINE_LINUX="",GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0",' \
|
||||
--edit '/etc/default/grub:s,GRUB_TIMEOUT=.*,GRUB_TIMEOUT=1,' \
|
||||
--run-command 'update-grub' \
|
||||
--edit '/etc/ssh/sshd_config:s,#?Port.*,Port 42666,' \
|
||||
--edit '/etc/ssh/sshd_config:s,#?Port.*,Port 42666,'
|
||||
|
||||
qm destroy ${VMID} || true
|
||||
qm create ${VMID} --name ${NAME} --memory 1024 --net0 virtio,bridge=${BRIDGE}
|
||||
qm importdisk ${VMID} ${NAME}.qcow2 ${STORAGE}
|
||||
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 resize ${VMID} scsi0 16G
|
||||
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 2
|
||||
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}
|
||||
qm cloudinit update ${VMID}
|
||||
qm template ${VMID}
|
||||
|
||||
rm -f ${NAME}.qcow2
|
||||
|
|
Loading…
Reference in a new issue