Mémento : La maintenance QEMU en ligne de commande
Par Nicolas DELAHAYE | v.1974 | Architecture & Automation
OBJECTIF: Zéro interface graphique. 100% efficacité.
Installer QEMU sur son Mac via Brew, c'est une chose. Le piloter au quotidien sans s'emmêler les pinceaux, c'en est une autre. Voici mon "disque dur externe" de commandes pour gérer mes nodes Kubernetes sans passer par une GUI lourde.
1. Lister les VMs actives
Si vous utilisez QEMU seul ou via un wrapper, le plus simple pour voir ce qui tourne est de vérifier les processus systèmes (le bon vieux grep) :
$ ps aux | grep qemu-system
// Note : Si vous utilisez libvirt (souvent avec Vagrant) sur Linux, la commande est plus élégante : `virsh list --all`
2. Créer un disque virtuel (Storage)
Avant de lancer une VM, il faut un disque. Le format qcow2 est le standard : il est "thin provisioned" (il ne prend que la place réelle des données).
$ qemu-img create -f qcow2 mon-node-kube.qcow2 20G
3. Modifier la configuration (Tuning)
Pas besoin de menu "Settings". Tout se passe dans les flags au lancement. Pour ajouter de la RAM ou des CPU à la volée :
$ qemu-system-x86_64 -m 4G -smp 2 -hda mon-node-kube.qcow2
-m 4G : Alloue 4 Go de RAM.-smp 2 : Alloue 2 cœurs CPU.
4. Sauvegarder (Snapshots)
L'avantage du format qcow2, c'est qu'il gère les snapshots en interne. Très utile avant de faire une mise à jour risquée sur un cluster Kubernetes.
Créer un point de restauration :
$ qemu-img snapshot -c backup_stable mon-node-kube.qcow2
Revenir en arrière :
$ qemu-img snapshot -a backup_stable mon-node-kube.qcow2
5. Supprimer proprement
Ici, pas de corbeille. On supprime l'image disque et, si elle était enregistrée dans libvirt, on l'efface de la base.
$ rm mon-node-kube.qcow2 $ # Ou via virsh : $ virsh undefine mon-node-kube
[ LOGOUT - Session Ended ]
// RÉFLEXION DE SENIOR :
Maîtriser ces commandes, c'est s'assurer que votre infrastructure est reproductible. Une fois que vous connaissez ces flags, vous pouvez les mettre dans un script Bash ou un playbook Ansible. C'est ça, le vrai DevSecOps : transformer la maintenance manuelle pénible en un processus automatisé et robuste.