45 lines
1.4 KiB
Bash
Executable file
45 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
#
|
|
# 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
|
|
BRIDGE=vmbr0,tag=208
|
|
|
|
set -e
|
|
|
|
virt-builder ${OS} -o ${NAME}.qcow2 --format qcow2 \
|
|
--root-password disabled \
|
|
--run-command 'echo grub-pc hold | dpkg --set-selections' \
|
|
--update \
|
|
--run-command 'apt dist-upgrade -y' \
|
|
--install cloud-init,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,' \
|
|
|
|
qm destroy ${VMID} || true
|
|
qm create ${VMID} --name ${NAME} --memory 1024 --net0 virtio,bridge=${BRIDGE}
|
|
qm importdisk ${VMID} ${NAME}.qcow2 ${STORAGE}
|
|
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 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 cloudinit update ${VMID}
|
|
qm template ${VMID}
|
|
|
|
rm -f ${NAME}.qcow2
|