Un petit mémo sur comment déployer facilement une machine virtuelle KVM sous proxmox avec cloud-init.
Télécharger une image cloud-init
La première étape conciste à télécharger une image cloud-init au format Qcow2.
Quelques liens pour télécharger une image cloud-init :
- Debian : https://cloud.debian.org/images/cloud/
- Ubuntu : https://cloud-images.ubuntu.com/
- CentOS : https://cloud.centos.org/centos/
- Pour d’autres images : https://docs.openstack.org/image-guide/obtain-images.html
L’image est à télécharger directement sur un noeud Proxmox ou sur un stockage partagé accèssible à Proxmox, exemple avec une image de Debian :
wget http://cdimage.debian.org/cdimage/cloud/bullseye/latest/debian-11-genericcloud-amd64.qcow2
Création d’un modéle de machine virtuelle
La seconde étape conciste à créer une coquille vide de machine virtuelle puis d’importer l’image téléchargée.
- Créer une machine virtuelle :
- ID : 1000
- nom de la VM : debian-11-cloudinit-template
- RAM : 1Go
- Interface réseau : vmbr0
qm create 1000 --name "debian-11-cloudinit-template" --memory 1024 --net0 virtio,bridge=vmbr0
qm importdisk 1000 debian-11-genericcloud-amd64.qcow2 pool_vm
qm set 1000 ----scsihw virtio-scsi-pci --scsi0 pool_vm:vm-1000-disk-0
qm set 1000 --ide2 pool_vm:cloudinit
qm set 1000 --boot c --bootdisk scsi0
qm set 1000 --serial0 socket --vga serial0
qm template 1000
Déployer une machine virtuelle KVM à partir d’une image cloud-init
Pour finir, la machine virtuelle créée doit être transformée en modèle afin de la cloner pour déployer rapidement une VM sous KVM.
- Faire un clone du modèle :
qm clone 1000 300 --name debian11-test
Changer les paramètres matériel de la VM
Comme les autres machines virtuelles KVM sous Proxmox, il est possible de changer les paramètres matériel de la VM, comme l’augmentation de l’espace disque :
Dans ce cas ce qui est très intéressent, il suffit de redémarrer la VM pour la prise en compte de l’augmentation de l’espace disque et c’est directement opérationnel sur le système de fichier, pas besoin d’étendre l’espace disque.
Ressource
- Wiki de Proxmox : https://pve.proxmox.com/wiki/Cloud-Init_Support
Bonjour , Juste pour infos pour les réseautistes : Avant de passer une VM en VM-template il faut biens faire un clean sur la VM juste pour le rendre neutre, « n’appartient à personne et sans ID machine » et c’est au 1er démarrage que l’ID machine est automatiquement attribué.
Sous linux :
#Afficher l’ID machine de la VM :
Cat /etc/machine-id
#
#Supprimer le fichier /etc/machine-id
rm /etc/machine-id
#Récréer un nouveau fichier machine-id vide
touch /etc/machine-id
#Revérifier l’ID machine actuel
Cat /etc/machine-id
#plus d’ID machine ne s’affiche
#Supprimer aussi le fichier /var/lib/dbus/machine-id
rm /var/lib/dbus/machine-id
#Le système créera un nouveau fichier /var/lib/dbus/machine-id lors de l’attribution d’ID machine.
#Créer un lien symbolique du fichier /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id
#pour l’instant les 2 fichiers sont vides de l’ID machine.
#Nettoyer apt et éteindre :
apt clean
#puis éteindre la machine
poweroff
La machine éteinte peut être utilisé comme template pour être clôné à volonté
et au 1er démarage de chaque machine clônée un nouveau ID est généré…
Sous windows utiliser l’application sysprep avec généraliser cocher et option éteindre.
Dans tous les cas pour passer de l’état vm à l’état vm-template puis à l’état vm-clônée jusqu’à sa livraison, la vm reste à l’état éteindre et neutre. C’est le nouveau propriétaire qui l’allumera et appliquera sa politique de nommage.