Introduction
Créer un template de machine virtuelle est une pratique standard pour industrialiser les déploiements.
Une VM template doit ĂȘtre propre, gĂ©nĂ©rique et ne contenir aucune donnĂ©e sensible ou identifiant unique.
Sans préparation correcte, les clones peuvent entraßner des conflits (SSH, réseau, sécurité).
Objectifs dâun template
- Ăviter les conflits dâidentifiants
- Supprimer toute donnée sensible
- Garantir un déploiement reproductible
- Réduire le temps de provisioning
Nettoyage des clés SSH
Supprimer les clés hÎtes
sudo rm -f /etc/ssh/ssh_host_*
Permet de forcer la régénération de nouvelles clés SSH sur chaque clone.
Régénération automatique
Les clés seront recréées automatiquement au premier démarrage du clone.
Sur certaines distributions :
sudo dpkg-reconfigure openssh-server
Nettoyage des logs systĂšme
sudo truncate -s 0 /var/log/*.log
sudo truncate -s 0 /var/log/*/*.log
Supprime lâhistorique des logs pour Ă©viter toute fuite dâinformation.
Nettoyage des identifiants machine
Supprimer machine-id
sudo truncate -s 0 /etc/machine-id
Ou :
sudo rm -f /etc/machine-id
Permet de générer un nouvel identifiant unique pour chaque VM.
Supprimer DBus ID
sudo rm -f /var/lib/dbus/machine-id
Ăvite les conflits entre clones.
Nettoyage de lâhistorique utilisateur
history -c
rm -f ~/.bash_history
Supprime les commandes exécutées précédemment.
Nettoyage des clés SSH utilisateur
rm -rf ~/.ssh/
Supprime les clés privées et known_hosts.
Nettoyage du cache systĂšme
sudo apt clean
sudo apt autoremove -y
Réduit la taille de la VM et supprime les paquets inutiles.
Nettoyage des rÚgles réseau persistantes
sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
Ăvite les conflits dâinterfaces rĂ©seau (eth0, eth1âŠ).
Réinitialisation DHCP
sudo rm -f /var/lib/dhcp/*
Supprime les anciens baux DHCP.
Nettoyage des clés cloud-init (si utilisé)
sudo cloud-init clean
RĂ©initialise lâĂ©tat cloud-init pour un nouveau dĂ©ploiement.
Vérifications finales
lsblk
hostnamectl
ip a
Permet de vérifier que la VM est dans un état propre et générique.
Ătape finale : arrĂȘt de la VM
sudo poweroff
La VM doit ĂȘtre Ă©teinte avant dâĂȘtre convertie en template.
Cas dâusage
- Templates VMware / Proxmox / KVM
- Déploiement automatisé (Terraform, Ansible)
- Environnements cloud (OpenStack, AWS AMI)
- Labs et environnements de test
Risques si non préparé
Une VM non nettoyée peut entraßner :
- Conflits SSH (man-in-the-middle warnings)
- Machines avec identifiants dupliqués
- Fuites de données sensibles
- ProblÚmes réseau
Bonnes pratiques
- Automatiser le nettoyage via script
- Utiliser cloud-init pour la configuration initiale
- Tester le template avant déploiement massif
- Documenter la procédure
- Maintenir un template Ă jour
Conclusion
PrĂ©parer une VM pour en faire un template est une Ă©tape essentielle dans toute dĂ©marche dâindustrialisation.
Un template propre garantit des déploiements fiables, sécurisés et reproductibles.