====== Proxmox - Création de templates de VM KVM ======
===== Objectif : créer des templates de VM pour Proxmox =====
L'objectif est de constituer des **templates** de VM de manière à pouvoir créer rapidement de nouvelles machines virtuelles en ligne de commande ou par l'interface web Proxmox
Ces **templates** utiliseront l'outil **cloud-init** (https://pve.proxmox.com/wiki/Cloud-Init_Support et https://pve.proxmox.com/wiki/Cloud-Init_FAQ) pour mettre en place le paramétrage de base.
==== Préparation ====
=== 1 - Sur le serveur Proxmox : récupération de l'image Openstack Debian 12 au format qcow2 ===
cd /var/lib/vz/template/iso/
wget --no-check-certificate https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2
=== 2 - Création de la VM 9000 à partir de l'image téléchargée ===
qm create 9000 --memory 1024 --net0 virtio,bridge=vmbr0
qm importdisk 9000 /var/lib/vz/template/iso/debian-12-genericcloud-amd64.qcow2 local-lvm
=== 3 - Suite du paramétrage de la VM 9000 ===
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0 # on associe le disque scsi0 au LV vm-9000-disk-0
qm set 9000 --boot c --bootdisk scsi0 # on définit le disque scsi0 comme disque de démarrage
qm set 9000 --ide2 local-lvm:cloudinit # on joint le volume CDROM cloudinit utilisé pour le démarrage
qm set 9000 --serial0 socket --vga serial0 # on définit une console série qu'on utilise comme affichage
qm template 9000 # on définit la VM 9000 comme template
=== 4 - Clonage d'une machine ===
On clone la machine **9001** à partir de la machine **9000**, on la nomme **debxx**
On lui associe ensuite une clé publique SSH ainsi qu'une adresse IP/passerelle qui seront pris en charge par le module **cloud-init**
qm clone 9000 9001 --name debxx
qm set 9001 --sshkeys ~/.ssh/id_rsa.pub
qm set 9001 --ipconfig0 ip=192.168.0.101/24,gw=192.168.0.1
Le clonage peut également s'effectuer par l'interface web dans laquelle on peut modifier les paramètres cloud-init
=== 5 - Agrandissement du disque ===
On ajoute 8 Go au disque scsi0 de 2 Go :
qm resize 9001 scsi0 8G
=== 6 - Lancement de la machine clonée ===
Elle peut se lancer au moyen de l'interface web ou bien en ligne de commande :
qm start 9001
qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
9001 debxx running 1024 8.00 2886
:!: L'accès s'effectue **uniquement par clé publique** avec comme utilisateur le nom de la distribution : **debian**, **ubuntu**, à moins de le spécifier dans les paramètres **cloud-init**
ssh debian@192.168.0.101
:!: L'utilisation de **sudo** est requise pour les droits d'administration
=== Divers ===
La commande ''qm cloudinit dump '' permet d'afficher et contrôler la configuration **cloudinit** d'une VM.
== pour la partie network ==
qm cloudinit dump 9001 network
version: 1
config:
- type: physical
name: eth0
mac_address: 'bc:24:11:dc:49:fd'
subnets:
- type: static
address: '192.168.0.101'
netmask: '255.255.255.0'
gateway: '192.168.0.1'
- type: nameserver
address:
- '192.168.0.1'
search:
- 'sio.lan'
== pour la partie user ==
qm cloudinit dump 9001 user
#cloud-config
hostname: debxx
manage_etc_hosts: true
fqdn: ca
ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSEwbALJWAuKEFq7ZdtdkXScpTTfpmU188Fzmcy9APidkzVqV8OGMu5GMBOKfxHDj0tYaU8VlDk2q8Jb7H6u++rLj0v1rJ2EIApXqcnaQhVxkKzc1Ai1703vq/WM5Vo5RpqOuZn4iCGWYzSvDvMMWazDM0gKLLDxzOAj3eS3sl9kaAFM2ONT0/gHyVo1IKgt/vVJFEjJ0eQLRBvtV0Nh8tlMNNzjpf6FIFU17diWwGAuAjsL11agcMVk0JwLe/p3vuJmlS7JKxpeZSarpucr/dMY5FZBpfoZQmpAYpblL3BzCyu5knA6cSZjXklpJ3S8Mi9RG0jHv43gWR2FD9+QSjwgWCoRabOugNLC+zv4S8D0FX8/iS/vmr+TJNUxJYR0TfgLWdZ/rhFlaJndNS9cTk6ftJbh7EFq1Ew2Ne+EpidKqxP+9bBrE/qD+XpYj6erU/7NuXSB5stf1O0Hx+nWFbTMFZWG3HJXttOv2fa9vYESDnhfri4IOUKNwqgOCcE= phil@st004
chpasswd:
expire: False
users:
- default
package_upgrade: true