# VM_KONENPAN_CREATION ## Objectif Documenter la creation complete de la VM `Konenpan` (de A a Z) sur infrastructure KVM/libvirt, avec un volume LVM de `1T`. ## Specification demandee - Nom de la VM: `konenpan` - Taille stockage: `1T` - Hyperviseur: KVM/QEMU via libvirt (`virsh`, `virt-install`) - Usage: base d'hebergement de la plateforme medias (IAM, stockage, services applicatifs) ## Parametres cibles - RAM: `8192` MB (8 GB, a ajuster) - vCPU: `4` (a ajuster) - Bridge reseau: `br0` - Groupe de volumes LVM: `vgarauco0` - Volume LVM: `vgarauco0-konenpan` - OS variant: `ubuntu24.04` (Ubuntu Server 24.04.1) - ISO: `/var/lib/libvirt/images/ubuntu-24.04.1-live-server-amd64.iso` ## Procedure complete (A a Z) ### 1) Verification des prerequis sur l'hote ```bash # Verifier les commandes necessaires command -v virsh command -v virt-install command -v lvcreate # Installer les dependances si manquantes (commande issue du projet Araucaria) apt-get update && apt-get install -y libvirt-clients libvirt-daemon-system qemu-kvm virtinst # Verifier le service libvirt systemctl status libvirtd systemctl enable --now libvirtd ``` ### 2) Verification de l'existant (VMs, reseau, stockage) ```bash # VMs existantes virsh list --all virsh list --all --name # Reseaux/bridges virsh net-list --all brctl show ip link show type bridge # Stockage LVM vgs vgarauco0 lvs vgarauco0 --units g -o lv_name,lv_size virsh domblklist --all | grep -E "/dev/mapper" || true ``` ### 3) Creation du volume LVM 1T pour Konenpan ```bash # Creation du LV de 1 To lvcreate -L 1T -n konenpan vgarauco0 # Verifications lvs vgarauco0 | grep konenpan ls -lh /dev/mapper/vgarauco0-konenpan ``` ### 4) Verification de l'ISO Ubuntu ```bash # ISO imposee pour ce runbook ISO_UBUNTU="/var/lib/libvirt/images/ubuntu-24.04.1-live-server-amd64.iso" echo "ISO selectionnee: $ISO_UBUNTU" # Verifier acces en lecture test -r "$ISO_UBUNTU" && echo "ISO OK" || echo "ISO manquante/inaccessible" ``` ### 5) Verifier que la VM konenpan n'existe pas deja ```bash virsh list --all | grep konenpan || true # Si necessaire (attention: supprime la definition libvirt, pas le LV) # virsh destroy konenpan 2>/dev/null # virsh undefine konenpan ``` ### 6) Creation de la VM (nouvelle installation depuis ISO) ```bash virt-install \ --name konenpan \ --memory 8192 \ --vcpus 4 \ --os-variant ubuntu24.04 \ --disk path=/dev/mapper/vgarauco0-konenpan,bus=virtio \ --network bridge=br0,model=virtio \ --graphics vnc,listen=0.0.0.0 \ --cdrom /var/lib/libvirt/images/ubuntu-24.04.1-live-server-amd64.iso \ --noautoconsole ``` ### 6.1) Connexion VNC pour installer le systeme ```bash # Sur l'hote hyperviseur: recuperer l'ecran VNC attribue virsh vncdisplay konenpan # Exemple de sortie: :0 (port TCP 5900), :1 (5901), etc. # Option pratique: calculer automatiquement le port VNC VNC_DISPLAY=$(virsh vncdisplay konenpan | tr -d ':') VNC_PORT=$((5900 + VNC_DISPLAY)) echo "Display :$VNC_DISPLAY -> Port $VNC_PORT" ``` ```bash # Si vous etes connecte directement a l'hote (avec interface graphique) vncviewer 127.0.0.1:$VNC_PORT ``` ```bash # Si vous etes sur un poste distant: creer un tunnel SSH # (a lancer depuis votre poste local) ssh -L 5900:127.0.0.1:$VNC_PORT @ # Puis, depuis le poste local: vncviewer 127.0.0.1:5900 ``` ### 7) Alternative: creation en mode import (si OS deja present sur disque) ```bash virt-install \ --name konenpan \ --memory 8192 \ --vcpus 4 \ --os-variant ubuntu24.04 \ --disk path=/dev/mapper/vgarauco0-konenpan,bus=virtio,cache=none \ --network bridge=br0,model=virtio \ --graphics vnc,listen=0.0.0.0 \ --import \ --noautoconsole ``` ### 8) Verification immediate apres creation ```bash virsh list --all | grep konenpan virsh dominfo konenpan virsh dumpxml konenpan virsh domblklist konenpan virsh domiflist konenpan ``` ### 9) Demarrage, console et acces VNC ```bash # Demarrer virsh start konenpan virsh list --all virsh domstate konenpan # Console texte virsh console konenpan # Quitter la console: Ctrl+] # Afficher l'ecran VNC attribue virsh vncdisplay konenpan # Option tunnel SSH depuis un poste local # ssh -L 5900:127.0.0.1:5900 araucaria # puis: vncviewer localhost:5900 ``` ### 10) Partitionnement recommande pendant l'installation (ecran VNC) Pour `konenpan` (1T), la meilleure approche est de separer le systeme et les donnees avec LVM: - `root (/)`: `120G` (OS + paquets) - `/var`: `200G` (logs, cache, services) - `/data`: `reste du disque` (applications/donnees medias) - `swap`: pas de partition dediee (utiliser un swapfile apres installation) #### Procedure dans l'ecran "Storage configuration" 1. Selectionner `/dev/vda` puis valider pour initialiser le disque (table GPT). 2. Choisir `Create volume group (LVM)` et creer un VG (exemple: `vg_konenpan`) sur `/dev/vda`. 3. Creer les volumes logiques (LV): - `lv_root` taille `120G`, format `ext4`, montage `/` - `lv_var` taille `200G`, format `ext4`, montage `/var` - `lv_data` taille `restant` (ou environ `670G`), format `ext4`, montage `/data` 4. Verifier qu'un point de montage `/` existe (obligatoire pour continuer). 5. Valider avec `Done`, confirmer l'ecriture des changements, puis poursuivre l'installation Ubuntu. #### Si le bouton "Done" est grise (cas frequent) Cause: l'installateur n'a pas de disque/partition de boot selectionne. Dans certains ecrans Subiquity, `fat32` n'apparait pas dans la liste des formats. Dans ce cas, suivre le mode de boot detecte: **Cas A - UEFI (recommande)** 1. Selectionner `/dev/vda` puis `Add GPT partition` de `512M` a `1G`. 2. Si `fat32` est disponible: format `fat32`, mount `/boot/efi`. 3. Si `fat32` n'est pas disponible: choisir `Leave unformatted`, mount `/boot/efi` (l'installateur traitera cette partition comme ESP). 4. Marquer `/dev/vda` comme boot device (`Use as boot device`) si l'option est proposee. **Cas B - BIOS (legacy)** 1. Selectionner `/dev/vda` puis `Add GPT partition` de `1M`. 2. Choisir `Leave unformatted` et affecter le role `bios_grub` (si propose par l'UI). 3. Ne pas utiliser `/boot/efi` en mode BIOS. Puis, dans les 2 cas: 1. Creer le LVM sur le reste du disque (`vg_konenpan` + `lv_root`, `lv_var`, `lv_data`). 2. Verifier au minimum: - un montage `/` existe - un boot target existe (`/boot/efi` en UEFI, ou `bios_grub` en BIOS) 3. Revenir sur `Done`: le bouton doit devenir actif. Remarque: si tout le disque a deja ete consomme par le PV LVM, recreer le schema en reservant d'abord la partition de boot, puis utiliser le reste pour le PV LVM. #### Cas reel: l'installation est lancee sans selection explicite "boot" Si l'installateur a accepte la configuration et a demarre, c'est souvent valide. Dans ce cas, faire une verification apres le premier redemarrage: ```bash # Dans la VM test -d /sys/firmware/efi && echo "Boot UEFI" || echo "Boot BIOS" lsblk -f df -h ``` Verifier ensuite la presence de GRUB: ```bash # Dans la VM sudo grub-install --version sudo update-grub ``` Si la VM ne boote pas apres retrait de l'ISO: - remettre temporairement l'ISO, - booter en mode rescue/live, - chroot sur le systeme installe, - reinstaller GRUB (UEFI ou BIOS selon le mode detecte). #### Option plus simple (si tu veux aller plus vite) - Utiliser "Use an entire disk" + LVM automatique (un seul grand `/`). - Cette option est rapide, mais moins pratique a long terme pour isoler logs/donnees. #### Swap (recommande en swapfile, apres installation) Oui, ici on ne cree pas de partition swap dediee. Sur Ubuntu Server, un swapfile est plus simple a gerer. Taille conseillee pour `konenpan` (RAM 8G): `8G` de swap. ```bash # Dans la VM, apres installation sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # Rendre persistant echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # Verifier swapon --show free -h ``` ### 11) Fin d'installation OS: retirer le CD-ROM puis redemarrer ```bash # Identifier les disques et le lecteur CD-ROM virsh domblklist konenpan # Retirer le CD-ROM persistant (exemple device sda, adapter si besoin) virsh detach-disk konenpan sda --persistent # Verifier puis redemarrer virsh domblklist konenpan virsh reboot konenpan # ou: # virsh shutdown konenpan && virsh start konenpan ``` ### 12) Configuration reseau dans la VM (netplan) ```bash # Dans la VM ip addr show ls /etc/netplan/ sudoedit /etc/netplan/00-installer-config.yaml # Appliquer sudo netplan try sudo netplan apply # Verifier DNS cat /etc/resolv.conf nslookup araucaria.local nslookup google.com ``` ### 13) Synchronisation de l'heure vers araucaria (NTP client) ```bash # Dans la VM sudo apt-get update sudo apt-get install -y chrony # Sauvegarder la configuration par defaut sudo cp /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak.$(date +%F-%H%M%S) # Declarer araucaria comme source NTP principale echo "server araucaria iburst prefer" | sudo tee /etc/chrony/sources.d/araucaria.sources # Redemarrer et activer le service sudo systemctl enable --now chrony sudo systemctl restart chrony # Verifier la synchronisation chronyc sources -v chronyc tracking timedatectl status ``` Notes: - Si `araucaria` n'est pas resolu en DNS, utiliser temporairement son IP dans le fichier source Chrony. - Quand le DNS sera finalise, revenir a `server araucaria iburst prefer`. ### 14) Configuration hostname, SSH et mises a jour dans la VM ```bash # Dans la VM sudo hostnamectl set-hostname konenpan hostnamectl sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y openssh-server qemu-guest-agent sudo systemctl enable --now ssh sudo systemctl enable --now qemu-guest-agent ``` ### 15) Validation finale ```bash # Sur l'hote virsh dominfo konenpan virsh domblklist konenpan virsh domiflist konenpan # Dans la VM hostnamectl free -h df -h ip addr show timedatectl status chronyc sources -v ping -c 3 8.8.8.8 ``` ## Checklist de fin - [ ] LV `vgarauco0-konenpan` cree en `1T` - [ ] VM `konenpan` creee avec `virt-install` - [ ] VM demarree (`virsh start konenpan`) - [ ] Partitionnement valide (`/`, `/var`, `/data`) - [ ] Swap actif (`swapon --show`) - [ ] Installation OS terminee et CD-ROM detache - [ ] Reseau/DNS operationnels - [ ] Synchronisation horaire active vers araucaria (chrony) - [ ] SSH operationnel - [ ] VM enregistree dans l'inventaire infra - [ ] Sauvegarde planifiee ## Rollback (si echec) ```bash # Arreter puis supprimer la definition VM virsh destroy konenpan 2>/dev/null || true virsh undefine konenpan # Supprimer le volume LVM (attention: destructif) lvremove -y /dev/vgarauco0/konenpan # Verifier qu'il ne reste rien virsh list --all | grep konenpan || true lvs vgarauco0 | grep konenpan || true ``` ## Troubleshooting rapide - VM non accessible: `virsh dominfo konenpan`, verifier bridge `br0`, firewall, NIC - Disque absent: `virsh domblklist konenpan`, `lvs vgarauco0`, `ls -lh /dev/mapper/vgarauco0-konenpan` - VNC indisponible: `virsh vncdisplay konenpan`, verifier tunnel SSH - DNS KO dans la VM: verifier netplan, `resolv.conf`, `nslookup` - Heure non synchronisee: verifier `systemctl status chrony`, `chronyc sources -v`, resolution DNS de `araucaria` ## Sources Araucaria utilisees - `E:\Dev\System\Araucaria\01_SKVM\docs\DOCUMENTATION_SKVM.md` - `E:\Dev\System\Araucaria\07_VMS\docs\GUIDE_COMPLET_VM_DOCKER.md` - `E:\Dev\System\Araucaria\migration_chillka.sh` ## Historique - Date: 2026-03-07 - Auteur: equipe-plateforme - Changement: ajout procedure complete de creation VM `konenpan` de A a Z (commandes completes) - Changement: ajout de la configuration NTP client (chrony) pour synchronisation vers `araucaria`