Intro
Créer un template de VM dans Proxmox avec cloud-init peut considérablement simplifier les déploiements de VM. Cet article décrit étape par étape la configuration d’un template de VM compatible cloud-init avec Ubuntu pour Proxmox.
Proxmox prend en charge cloud-init, un outil qui permet la configuration automatique des machines virtuelles immédiatement après leur provisionnement. Cela inclut la configuration du réseau, des clés SSH et d’autres paramètres initiaux.
Dans ce guide, nous allons créer un template de VM avec cloud-init activé, permettant ainsi un déploiement rapide de VM préconfigurées.
Pourquoi Cloud-init ?
Cloud-init est un outil largement utilisé pour automatiser la configuration initiale des instances cloud. Il permet de configurer les clés SSH, le nom d’hôte, la configuration réseau et d’autres paramètres dès le premier démarrage, ce qui le rend idéal pour créer des templates de VM réutilisables en homelab ou en environnement de production.
Documentation Proxmox Cloud-init
Télécharger l’Image de l’OS
Tout d’abord, nous devons télécharger une image compatible cloud-init. Bien que Rocky Linux ait été initialement envisagé, le format .img
n’était pas disponible et le format .qcow2
posait problème. Nous allons donc utiliser l’image cloud d’Ubuntu.
Trouvez des images compatibles cloud dans le Guide des images OpenStack.
Dans Proxmox, accédez à Storage > ISO Images > Upload pour uploader l’image téléchargée.
Créer la VM
Ensuite, on crée une VM en utilisant la ligne de commande (CLI) depuis le nœud Proxmox avec la commande suivantes :
qm create 900 \
--memory 2048 \
--core 1 \
--net0 virtio,bridge=vmbr0 \
--scsihw virtio-scsi-pci \
--bios ovmf \
--machine q35 \
--efidisk0 ceph-workload:0,pre-enrolled-keys=0 \
--name ubuntu-cloud
Cela crée une VM avec le support UEFI, 2GB de RAM, et un seul cœur. Le paramètre efidisk0
spécifie une disque EFI.
Importer le Disque OS
Maintenant, on importe l’image disque téléchargée comme disque primaire :
qm set 900 --scsi0 ceph-workload:0,import-from=/var/lib/vz/template/iso/noble-server-cloudimg-amd64.img
Configurer Cloud-init
On ajoute un lecteur CD cloud-init à la VM :
qm set 900 --scsi1 ceph-workload:cloudinit
On définit l’ordre de démarrage pour donner la priorité au disque principal par rapport au CD :
qm set 900 --boot order=scsi0
On ajoute un port série pour l’accès console :
qm set 900 --serial0 socket --vga serial0
Convertir en Template
Après avoir configuré la VM, on fait un clic droit dessus dans l’interface Web de Proxmox et sélectionnez Convert to template
. La création du template est alors terminée.
Conclusion
Cette méthode permet un déploiement rapide avec Proxmox de VM préconfigurées et cloud-init.
Le template peut désormais être utilisé pour générer de nouvelles instances avec des configurations personnalisées en fournissant les paramètres cloud-init nécessaires. Ceci est particulièrement utile pour déployer rapidement plusieurs instances avec des configurations de base similaires.