3

Cloud images in Proxmox

 1 year ago
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

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

Steps for creating a Debian 10 cloud template

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

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK