Morpheus
Lab d'infrastructure / Tests isolés

KVM sur Arch Linux

Installation KVM/libvirt sur Arch, réseau NAT default et VM PRA de référence pour tester les restaurations Morpheus.

KVM QEMU virt-manager UEFI snapshots
Architecture publique du laboratoire virtuel
Vue publique: hyperviseur local, firmware virtuel, disque jetable, NAT et cycle snapshot/test/rollback.
01

Isoler

Exécuter les tests risqués hors machine principale.

02

Reproduire

Créer des scénarios proches du réel: boot, restauration, réseau, mises à jour.

03

Observer

Lire les erreurs sans compromettre l'environnement de travail.

04

Revenir

Utiliser snapshots et VM jetables pour recommencer proprement.

Contexte

Le problème réel.

Les procédures de restauration et de boot doivent être testées dans un environnement proche du réel, mais isolé de la machine principale. Une VM réduit le risque, sans prétendre reproduire parfaitement le matériel.

Objectifs

Ce que la solution devait garantir.

  • Tester les runbooks avant de les appliquer à la machine principale.
  • Valider les flux PRA et boot trust en environnement contrôlé.
  • Documenter les écarts entre VM et matériel réel.
  • Conserver une zone d'expérimentation sans action destructrice.
Architecture publique

Structure documentée, détails exploitables retirés.

Exemples anonymisés

Ce qui peut être montré sans exposer le système réel.

Matrice de scénarios

Exemple basé sur les runbooks PRA/KVM: restauration sur VM jetable, boot UEFI validé et tests réseau NAT après changement firewall.

scénario             environnement      signal de succès
restauration PRA     VM jetable         le système restauré démarre
récupération boot    VM UEFI            l'entrée de boot est cohérente
changement firewall  VM NAT             les flux attendus fonctionnent
mise à jour paquet   VM snapshot        le rollback reste possible

Profil VM anonymisé

La fiche reprend les choix réellement documentés en les réduisant à leur rôle: UEFI, NAT, snapshot et disque jetable.

firmware       UEFI
disque         disque virtuel jetable
réseau         NAT isolé
snapshot       avant opération risquée
objectif       valider le runbook avant changement hôte
nettoyage      revenir en arrière ou archiver le résultat de test

Journal de test public

La restauration validée est publiée comme chaîne d'états observables, pas comme commandes de disque ou noms de volumes.

snapshot.created
runbook.started
restore.completed
first.boot.ok
network.ok
notes.updated
snapshot.reverted_or_kept
Runbook public

Commandes et états attendus issus de la documentation privée.

Les commandes ci-dessous sont volontairement anonymisées: chemins, noms de machines, interfaces, dépôts, périphériques et actions destructrices sont remplacés par des placeholders.

Documentation privée: KVMforArch + virt-manager-guide

État libvirt

Commandes anonymisées

systemctl status libvirtd --no-pager
virsh -c qemu:///system net-info <nat-network>
virsh -c qemu:///system domstate <test-vm>
virsh -c qemu:///system domblklist <test-vm> --details

État attendu

le démon libvirt est disponible
le réseau NAT est actif
l'état de la VM de test est connu avant l'opération
les disques attachés sont explicites et relus avant test PRA
Documentation privée: KVMforArch + restore-automatique

Profil VM PRA

Commandes anonymisées

qemu-img info <vm-disk-image>
virt-manager
lsblk -f
bootctl status

État attendu

le firmware est UEFI
le disque est un qcow2 jetable
le réseau utilise NAT
l'ISO live voit la cible et le backup comme périphériques séparés
le boot post-restore est validé avant d'accepter le runbook
Documentation privée: virt-manager-guide

Snapshots et rollback

Commandes anonymisées

virsh -c qemu:///system snapshot-list <test-vm>
virsh -c qemu:///system domstate <test-vm>
<create-snapshot-before-risky-test>
<revert-or-archive-test-result>

État attendu

un snapshot existe avant l'opération risquée
le chemin de rollback est identifié
l'hôte reste intact
les notes de test sont mises à jour après succès ou échec
Travail réalisé

Décisions techniques publiables.

VM jetables

Les scénarios risqués sont répétés sur des images non critiques.

UEFI

Les tests boot utilisent une chaîne proche de la cible sans publier les paramètres réels.

Journal

Chaque test alimente les décisions de runbook et de documentation publique.

Validation

Preuves et contrôles retenus.

Preuves visuelles

Contrôles observables et portée de la preuve.

Résultats publics

Ce que le chantier démontre.

Anonymisation

Ce qui reste privé.

  • Pas de noms de VM, chemins d'images ou paramètres matériels exacts.
  • Pas de commandes de partitionnement ou restauration destructrices.
  • Pas d'identifiants de disque.
  • Les scénarios sont décrits par intention et contrôle attendu.
Sources privées

Documentation d'origine.

  • Guides KVM et virt-manager.
  • Runbook restauration automatisée.
  • Documentation Boot Trust.
  • Guide libvirt NAT et firewall.

KVM sur Arch Linux

Guide court pour installer KVM/libvirt et préparer l'hôte aux tests Morpheus. Les noms de VM, chemins d'images, périphériques et valeurs propres au lab privé sont remplacés par des placeholders.

Objectif

  • Installer QEMU/KVM et libvirt.
  • Utiliser le réseau NAT default.
  • Préparer une VM de test PRA.
  • Garder une configuration compatible avec un firewall nftables deny-by-default.

Installation

sudo pacman -Syu
sudo pacman -S qemu-full libvirt virt-manager dnsmasq edk2-ovmf swtpm
sudo systemctl enable --now libvirtd
sudo usermod -aG libvirt "$USER"

Reconnecter la session pour appliquer le groupe.

Réseau NAT libvirt

Vérifier le réseau default:

sudo virsh -c qemu:///system net-info default

S'il n'est pas actif:

sudo virsh -c qemu:///system net-start default
sudo virsh -c qemu:///system net-autostart default

VM PRA de référence

Paramètres validés:

ÉlémentValeur publique
Nom<VM_PRA>
FirmwareUEFI
Disqueqcow2 80 GiB
Réseaulibvirt NAT default
ISOArch Linux live

Créer un disque vierge:

sudo qemu-img create -f qcow2 <CHEMIN_IMAGE_VM>/<VM_PRA>.qcow2 80G

Vérifier:

sudo qemu-img info <CHEMIN_IMAGE_VM>/<VM_PRA>.qcow2

Vérifications utiles

Lister les disques attachés:

sudo virsh -c qemu:///system domblklist <VM_PRA> --details

État de la VM:

sudo virsh -c qemu:///system domstate <VM_PRA>

Démarrer:

sudo virsh -c qemu:///system start <VM_PRA>

Dans l'ISO live:

lsblk -f

Le disque cible vierge doit apparaître comme disque virtuel principal. Le disque backup doit apparaître séparément, par exemple comme une partition de support backup distincte.

Restauration PRA

Le flux complet est documenté dans la page Restauration PRA automatisée du portfolio. Cette page KVM prépare seulement l'hôte, le réseau NAT et la VM de référence qui servent à valider le runbook PRA.