

Cloud images in Proxmox
source link: https://gist.github.com/chriswayg/b6421dcc69cb3b7e41f2998f1150e1df
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Cloud images in Proxmox
A script which automates these steps for multiple distros incl. CoreOS, CentOS, Arch and ALpine
Steps for creating an Ubuntu 18.04 cloud template
- Using a ready-to-use Ubuntu image
- Ubuntu 18.04 LTS (Bionic Beaver) Daily Build
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
# Create a VM
qm create 9000 --name ubuntu1804-templ --memory 2048 --net0 virtio,bridge=vmbr1
# Import the disk in qcow2 format (as unused disk)
qm importdisk 9000 bionic-server-cloudimg-amd64.img local -format qcow2
# Attach the disk to the vm using VirtIO SCSI
qm set 9000 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9000/vm-9000-disk-0.qcow2
# Important settings
qm set 9000 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
# The initial disk is only 2GB, thus we make it larger
qm resize 9000 scsi0 +30G
# Using a dhcp server on vmbr1 or use static IP
qm set 9000 --ipconfig0 ip=dhcp
#qm set 9000 --ipconfig0 ip=10.10.10.222/24,gw=10.10.10.1
# user authentication for 'ubuntu' user (optional password)
qm set 9000 --sshkey ~/.ssh/id_rsa.pub
#qm set 9000 --cipassword AweSomePassword
# check the cloud-init config
qm cloudinit dump 9000 user
# create tempalte and a linked clone
qm template 9000
qm clone 9000 190 --name ubuntu1804-1
qm start 190
rm -v bionic-server-cloudimg-amd64.img
- Login with:
ssh [email protected]
Steps for creating a Debian 10 cloud template
- Using a ready-to-use Debian image
- Debian Official Cloud Images for OpenStack
wget https://cdimage.debian.org/cdimage/openstack/current/debian-10.0.2-20190721-openstack-amd64.qcow2
# Create a VM
qm create 9110 --name debian10-cloud --memory 2048 --net0 virtio,bridge=vmbr1
# Import the disk in qcow2 format (as unused disk)
qm importdisk 9110 debian-10.0.2-20190721-openstack-amd64.qcow2 local -format qcow2
# Attach the disk to the vm using VirtIO SCSI
qm set 9110 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9110/vm-9110-disk-0.qcow2
# Important settings
qm set 9110 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
# The initial disk is only 2GB, thus we make it larger
qm resize 9110 scsi0 +30G
# Using a dhcp server on vmbr1 or use static IP
qm set 9110 --ipconfig0 ip=dhcp
#qm set 9110 --ipconfig0 ip=10.10.10.222/24,gw=10.10.10.1
# user authentication for 'debian' user (optional password)
qm set 9110 --sshkey ~/.ssh/id_rsa.pub
#qm set 9110 --cipassword AweSomePassword
# check the cloud-init config
qm cloudinit dump 9110 user
# create tempalte and a linked clone
qm template 9110
qm clone 9110 191 --name debian10-1
qm start 191
rm -v debian-10.0.2-20190721-openstack-amd64.qcow2
- Login with:
ssh [email protected]
To resize the VM disk later
qm shutdown 190 && qm wait
qm resize 190 scsi0 +8G
qm start 190
To fully disable cloud-init
When booting under systemd, you can disable cloud-init completely by either:
- creating a file:
sudo touch /etc/cloud/cloud-init.disabled
- or adding
cloud-init=disabled
to the kernel command line as found in/proc/cmdline
To partially disable cloud-init
To partially disable some functions, modify: /etc/cloud/cloud.cfg
, for example to disable network configuration:
sudo su -
echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
To show the Grub Menu on the serial console
sudo nano /etc/default/grub config
GRUB_TERMINAL="console serial"
sudo update-grub
Checking cloud-init
Convert Images
https://docs.openstack.org/image-guide/convert-images.html
qemu-img convert -f raw -O qcow2 bionic-server-cloudimg-amd64.img bionic-server-cloudimg-amd64.qcow2
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK