Compte-rendu :
Présent⋅es :
- Chris
- Optogram
- Irina
- gabjy
Excusé⋅es :
- Gaut
Ordre du jour
- IPV6 sur la VM test Proxmox ?
Rappels : https://forum.arn-fai.net/t/suite-proxmox/8082/2
Installation d’une VM en ligne de commande :
-
Outil de génération de VM simplifié :
apt-get install cloud-init
-
Récupérer une image sur le site de Debian :
wget https://cdimage.debian.org/cdimage/cloud/bullseye/latest/debian-11-genericcloud-amd64.qcow2
-
Créer une machine virtuelle avec ses paramètres :
qm create 104 --name debian11-test --memory 2048 --net0 virtio,bridge=vmbr0
Descriptif :qm create [ID de la machine virtuelle] --name [Nom de la machine virtuelle] --memory [Quantité de mémoire vive] --net0 virtio,bridge=[interface réseau de la machine]
-
Importer le fichier système de machine virtuelle prêt à l’emploi :
qm importdisk 104 debian-11-genericcloud-amd64.qcow2 local-zfs
Descriptif :qm importdisk [ID de la machine virtuelle] [Nom de l'image précédemment téléchargée] [Système de fichiers proxmox]
-
Associer le disque à la machine virtuelle :
qm set 104 --scsihw virtio-scsi-pci --scsi0 local-zfs:vm-104-disk-0
Descriptif :qm set [ID de la machine virtuelle] --scsihw virtio-scsi-pci --scsi0 [Système de fichiers proxmox]:vm-[ID de la machine virtuelle]-disk-0
-
Modifier l’interface entre le disque virtuel et la machine :
qm set 104 --ide2 local-zfs:cloudinit
Descriptif :qm set [ID de la machine virtuelle] --ide2 [Système de fichiers proxmox]:cloudinit
-
Définir le disque de démarrage de la machine virtuelle :
qm set 104 --boot c --bootdisk scsi0
Descriptif :qm set [ID de la machine virtuelle] --boot c --bootdisk scsi0
-
Associer la sortie vidéo en ligne de commande à Proxmox :
qm set 104 --serial0 socket --vga serial0
Descriptif :qm set [ID de la machine virtuelle] --serial0 socket --vga serial0
-
Définir l’adresse IP et la passerelle de la machine virtuelle :
qm set 104 --ipconfig0 ip=89.234.141.83/24,gw= 169.254.42.1
Descriptif :qm set [ID de la machine virtuelle] --ipconfig0 ip=[Adresse IP]/24,gw=[Passerelle]
-
Redimensionner le disque virtuel :
qm resize 104 scsi0 30G
Descriptif :qm resize [ID de la machine virtuelle] scsi0 [Taille du stockage en soustrayant la taille donnée à la création]
-
Démarrer la machine virtuelle :
qm start 104
Descriptif :qm start [ID de la machine virtuelle]
-
Créer un premier utilisateur sur la machine virtuelle :
qm set 104 --ciuser arn
Descriptif :qm set [ID de la machine virtuelle] --ciuser [Nom de l'utilisateur]
-
Changer les serveurs DNS de la machine virtuelle :
qm set 104 --nameserver="80.67.169.12 80.67.169.40"
Descriptif :qm set [ID de la machine virtuelle] --nameserver="[Serveur DNS 1] [Serveur DNS 2]"
-
Redémarrer et appliquer les changements aux paramètres Cloud-Init :
qm stop 104
&qm start 104
Descriptif :qm stop [ID de la machine virtuelle]
&qm start [ID de la machine virtuelle]
-
Se connecter au terminal de la machine virtuelle :
qm terminal 104
Descriptif :qm terminal [ID de la machine virtuelle]
Documentation complète : https://pve.proxmox.com/wiki/Cloud-Init_Support
Et là, c’est parti en cacahuètes
-
Récupérer l’interface réseau :
ip a a 169.254.42.1 dev tap104i0
Descriptif :ip a a [Adresse IP] dev [interface réseau]
-
Vérifier que la machine est bien démarrée :
qm status 104
Descriptif :qm status [ID de la machine virtuelle]
-
Afficher la liste des machines :
qm list
Proposition de script
#!/usr/bin/env bash#
set -euo pipefail
usage(){
>&2 cat << EOF
Usage: $0 --name NAME --memory MEMORY --disk DISK --ipv4 IPV4 [--ipv6 IPV6] [--nameserver NAMESERVER] [--user USER]
EOF
exit 1
}
args=$(getopt -a -o hn:m:d:4:6:r:u: --long help,name:,memory:,disk:,ipv4:,ipv6:,nameserver:,user: -- "$@")
if [[ $? -gt 0 ]]; then
usage
fi
eval set -- ${args}
while :do
case $1 in
-h | --help) usage ; shift ·
-n | --name) name=${2:-2048} ; shift 2 ;;
-m | --memory) memory=${2:-2048} ; shift 2 ;;
-d | --disk) disk=$((${2:-15} - 2)) ; shift 2 ;;
-4 | --ipv4) ipv4=$2 ; shift 2 ;;
-6 | --ipv6) ipv6=$2 ; shift 2 ;;
-r | --nameserver) nameserver=${2:-80.67.169.12 80.67.169.40} ; shift 2 ;;
-u | --user) user=${2:-arn} ; shift 2 ;;
# -- means the end of the arguments; drop this, and break out of the while loop
--) shift; break ;;
*) >&2 echo Unsupported option: $1
usage ;;
esacdone
if [[ $# -eq 0 ]]; then
usage
fi
next_id=$(pvesh get /cluster/nextid)
qm create $next_id --name $name --memory $memory --net0 virtio,bridge=vmbr0
qm importdisk $next_id /root/debian-11-genericcloud-amd64.qcow2 local-zfs
qm set $next_id --scsihw virtio-scsi-pci --scsi0 local-zfs:vm-$next_id-disk-0
qm set $next_id --ide2 local-zfs:cloudinit
qm set $next_id --boot c --bootdisk scsi0
qm set $next_id --serial0 socket --vga serial0
qm set $next_id --ipconfig0 ip=${ipv4}/32,gw=169.254.42.1
qm resize $next_id scsi0 ${disk}G
qm set $next_id --nameserver "$nameserver"
qm set $next_id --ciuser "$user"
qm set $next_id --cipassword
qm start $next_id
ip a a 169.254.42.1 dev tap${next_id}i0