Cloud Init Templates in Proxmox VE - Quickstart

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Die einfachste und effizienteste Art und Weise Linux VMs in Proxmox VE zu deployen ist der Einsatz von sogenannten Cloud-Init Images. Diese Images sind speziell angefertigte Installationsmedien, die von nahezu jeder bekannteren Linux-Distribution wie z.B. Debian, Ubuntu oder auch CentOS angeboten werden. Proxmox VE unterstützt Cloud-Init Deployments bereits seit einigen Versionen.

Vorteile gegenüber .ISO

Vorteile im Vergleich zu ISO Images sind:

  • Das Betriebssystem muss nicht manuell installiert werden, sondern fährt nach dem Deployen automatisch hoch.
  • Über die Proxmox VE Oberfläche können diverse Parameter je Template-Klon mitgegeben werden.
  • Vor dem Deployment kann man mittels diverser Tools wie den libguestfs-tools Anpassungen an den Images vornehmen:
    • Integration von Software-Paketen über den Paketmanager
    • Änderung von Dateien nach eigenem Wunsch vor Deployment
    • Setzen eines Root-Passworts oder das Anlegen eines neuen Users

Cloud Init Parameter innerhalb PVE

Folgende Parameter sind einsehbar innerhalb des angelegten Cloud-Init-Drives in der Proxmox VE Oberfläche:

  • User (es wird ein User angelegt)
  • Password (es wird ein Passwort gesetzt)
  • DNS domain (DNS Domain Override zum PVE-Host Default)
  • DNS servers (DNS Server Override zum PVE-Host Default)
  • SSH public key (ein eigener persönlicher SSH-Pub Key)
  • Upgrade packages yes (das Image wird beim Erst-Start komplett aktualisiert)
  • IP Config (net0) (IP-Konfiguration für das erste Netzwerk-Device, Statisch oder DHCP)

Cloud Init Template anlegen

Es folgt eine Anlage eines Templates mit der ID 9500, welches die von uns empfohlenen Best-Practices bezüglich einer VM-Anlage in PVE beinhaltet. Einige Parameter müssen noch an Ihre Infrastruktur angepasst werden, zum Beispiel der Pfad, indem das Image heruntergeladen werden soll.

### Cloudinit Image erstellen (Ubuntu 22.04)

cd /mnt/pve/cephfs/template/iso/
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img &&
virt-customize -a /mnt/pve/cephfs/template/iso/jammy-server-cloudimg-amd64.img --install qemu-guest-agent &&
apt update -y && apt install libguestfs-tools -y &&
virt-customize -a /mnt/pve/cephfs/template/iso/jammy-server-cloudimg-amd64.img --root-password password:fxcSzVt9pk &&
virt-customize -a /mnt/pve/cephfs/template/iso/jammy-server-cloudimg-amd64.img --run-command "echo -n > /etc/machine-id"

Es wird ein aktuelles Ubuntu 22.04 Cloud-Init Image heruntergeladen, libguestfs-tools werden installiert und danach für das Injizieren des Qemu-Guest-Agents verwendet. Außerdem wird ein Default-Root-Passwort gesetzt und die /etc/maschine-id resettet.

Wichtig: das Snippet setzt z.B. voraus, dass unter /mnt/pve/cephfs der Ordner configs vorhanden ist und es dort eine Datei authorized_keys gibt, ggf. müssen Sie diese vorher auskommentieren oder den Ordner und die Datei jeweils anlegen.

### Cloudinit Template VM erstellen (Ubuntu 22.04)

qm create 9500 --name "ubuntu-2204-ci" --memory 8192 --cores 4 --net0 virtio,bridge=vmbr0 &&
qm importdisk 9500 /mnt/pve/cephfs/template/iso/jammy-server-cloudimg-amd64.img vm_nvme &&
qm set 9500 --scsihw virtio-scsi-single --scsi0 vm_nvme:vm-9500-disk-0,cache=writeback,discard=on,ssd=1 &&
qm set 9500 --scsi1 vm_nvme:60,cache=writeback,discard=on,ssd=1 &&
qm set 9500 --boot c --bootdisk scsi0 &&
qm set 9500 --scsi2 vm_nvme:cloudinit &&
qm set 9500 --agent enabled=1 &&
qm resize 9500 scsi0 +27748M &&
qm set 9500 --serial0 socket &&
qm set 9500 --vga serial0 &&
qm set 9500 --cpu cputype=host &&
qm set 9500 --ostype l26 &&
qm set 9500 --balloon 4096 &&
qm set 9500 --ciupgrade 1 &&
qm set 9500 --ciuser ansible &&
qm set 9500 --ipconfig0 ip=dhcp &&
qm set 9500 --nameserver 192.168.110.61 &&
qm set 9500 --searchdomain pmx.local &&
qm set 9500 --sshkeys /mnt/pve/cephfs/configs/authorized_keys &&
qm template 9500

Diese Befehle erstellen ein Template, welches Sie danach über die Proxmox VE Oberfläche oder auch über Kommandozeile verwenden können. Hierzu können Sie mittels Rechtsklick auf das Template innerhalb der PVE-Web-UI einen Clone absetzen und die neue erstelle virtuelle Maschine dann mit all Ihren Anpassungen genießen.

Foto Jonas Sterr.jpg

Autor: Jonas Sterr

Ich beschäftige mich mit den Themen Software Defined Storage, Proxmox Virtualisierung auf Basis von KVM, QEMU & Ceph im Produktmanagement der Thomas-Krenn.AG in Freyung. Proxmox ist meine absolute Leidenschaft und ich freue mich gerne über Kontaktanfragen und einen Austausch auf LinkedIn.


Das könnte Sie auch interessieren

Ceph: a password is required command=nvme error
No zvol device link - Proxmox VE Error bei Backup oder Snapshot
Proxmox VM löschen