Base de connaissances

Machines virtuelles Expert 28 min

Industrialiser les VM avec cloud-init

Préparer des machines reproductibles pour éviter les installations manuelles différentes à chaque commande.

Objectif pratique

Passer d’installations manuelles de VM à des images reproductibles et versionnées pour gagner en fiabilité.

Distribution utilisée

Debian / Ubuntu

Sommaire

  1. Définir le contrat du premier démarrage
  2. Séparer secrets et template
  3. Tester sur une VM jetable
  4. Versionner les changements
  5. Mesurer le temps de provisionnement
  6. Garder une image témoin

Guide détaillé

Étape 1

Définir le contrat du premier démarrage

Utilisateurs, paquets, clés, timezone et durcissement doivent être explicites. Une image reproductible commence par une liste claire.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Définir le contrat du premier démarrage" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Valider une configuration cloud-init

cloud-init sert à rendre la création des VM reproductible. On valide le fichier avant de créer une image ou un template.

Debian / Ubuntu
cloud-init --version
sudo cloud-init schema --system
sudo cloud-init status --long
sudo journalctl -u cloud-init -n 120 --no-pager
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Les notes d’intervention doivent indiquer ce qui a été changé et pourquoi.

Étape 2

Séparer secrets et template

Une image ne doit pas contenir un secret client ou un token durable. Injectez les secrets au déploiement.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Contrôler cloud-init avant de cloner

cloud-init doit être propre avant création de template, sinon les clones héritent d’un état déjà personnalisé.

Debian / Ubuntu
cloud-init --version
sudo cloud-init status --long
sudo cloud-init schema --system
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Valider une configuration cloud-init

cloud-init sert à rendre la création des VM reproductible. On valide le fichier avant de créer une image ou un template.

Debian / Ubuntu
cloud-init --version
sudo cloud-init schema --system
sudo cloud-init status --long
sudo journalctl -u cloud-init -n 120 --no-pager
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Les notes d’intervention doivent indiquer ce qui a été changé et pourquoi.

Étape 3

Tester sur une VM jetable

Chaque modification cloud-init doit être validée sur une machine sacrifiable. Les erreurs de première initialisation se corrigent mieux avant production.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Tester sur une VM jetable" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Valider une configuration cloud-init

cloud-init sert à rendre la création des VM reproductible. On valide le fichier avant de créer une image ou un template.

Debian / Ubuntu
cloud-init --version
sudo cloud-init schema --system
sudo cloud-init status --long
sudo journalctl -u cloud-init -n 120 --no-pager
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Les notes d’intervention doivent indiquer ce qui a été changé et pourquoi.

Étape 4

Versionner les changements

Une image sans historique devient impossible à expliquer. Gardez la date, le contenu et la raison de chaque évolution.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Versionner les changements" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Valider une configuration cloud-init

cloud-init sert à rendre la création des VM reproductible. On valide le fichier avant de créer une image ou un template.

Debian / Ubuntu
cloud-init --version
sudo cloud-init schema --system
sudo cloud-init status --long
sudo journalctl -u cloud-init -n 120 --no-pager
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Les notes d’intervention doivent indiquer ce qui a été changé et pourquoi.

Étape 5

Mesurer le temps de provisionnement

Une automatisation trop lente ou fragile doit être améliorée avant d’être vendue comme standard.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Appliquer cette étape avec une trace simple

Pour cette machine virtuelle, on écrit ce que l’on va faire, on exécute les vérifications, puis on garde une note datée.

Debian / Ubuntu
mkdir -p ~/newscloud-notes
printf '%s\n' "Mesurer le temps de provisionnement" > ~/newscloud-notes/etape.txt
systemctl --failed
journalctl -p warning -n 50 --no-pager
cat ~/newscloud-notes/etape.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cat ~/newscloud-notes/etape.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Valider une configuration cloud-init

cloud-init sert à rendre la création des VM reproductible. On valide le fichier avant de créer une image ou un template.

Debian / Ubuntu
cloud-init --version
sudo cloud-init schema --system
sudo cloud-init status --long
sudo journalctl -u cloud-init -n 120 --no-pager
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Les notes d’intervention doivent indiquer ce qui a été changé et pourquoi.

Étape 6

Garder une image témoin

Conservez une VM créée depuis le template pour comparer l’état attendu et l’état réellement livré.

Observer la machine avant de changer quoi que ce soit

Ces commandes affichent la distribution, le nom de la machine, les interfaces réseau, les routes, la mémoire et l’espace disque. Elles ne modifient rien.

Debian / Ubuntu
cat /etc/os-release
hostnamectl
ip -br addr
ip route
free -h
df -h
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip -br addr` liste les interfaces et adresses IP sous une forme courte.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `df -h` indique l’espace disque libre par point de montage.

Contrôler cloud-init avant de cloner

cloud-init doit être propre avant création de template, sinon les clones héritent d’un état déjà personnalisé.

Debian / Ubuntu
cloud-init --version
sudo cloud-init status --long
sudo cloud-init schema --system
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Valider une configuration cloud-init

cloud-init sert à rendre la création des VM reproductible. On valide le fichier avant de créer une image ou un template.

Debian / Ubuntu
cloud-init --version
sudo cloud-init schema --system
sudo cloud-init status --long
sudo journalctl -u cloud-init -n 120 --no-pager
sudo cloud-init clean --logs
Ce que font les commandes
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.
  • `cloud-init` vérifie l’état d’initialisation ou nettoie les traces avant template.

Base outils Debian / Ubuntu

apt installe les utilitaires utiles, puis systemctl et journalctl vérifient que la machine reste saine.

Debian / Ubuntu
sudo apt update
sudo apt install -y curl vim rsync
systemctl --failed
journalctl -p warning -n 50 --no-pager
Ce que font les commandes
  • `apt update` recharge la liste des paquets Debian/Ubuntu disponibles.
  • `apt install` installe les paquets indiqués depuis les dépôts configurés.
  • `systemctl --failed` liste les services en échec pour repérer un problème global.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Tracer le changement pour audit

Pour un guide expert, gardez une preuve simple de l’état avant/après et du moment exact de l’intervention.

Debian / Ubuntu
mkdir -p ~/change-log
{
  date -Iseconds
  hostnamectl
  ip route
  df -h
  free -h
} > ~/change-log/avant-$(date +%F-%H%M).txt
# Après intervention, relancez le même bloc en remplaçant avant par apres.
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `date -Iseconds` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `hostnamectl` affiche le nom, le type de machine et quelques informations système.
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `df -h` indique l’espace disque libre par point de montage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • Après intervention, relancez le même bloc en remplaçant avant par apres..

Variantes et attention

  • Les commandes de ce guide sont adaptées pour Debian / Ubuntu. Si votre image est une autre famille Linux, gardez la logique mais remplacez le gestionnaire de paquets et les noms de services.
  • En VM, vous contrôlez le système complet. Vous pouvez agir sur le noyau, le pare-feu et les volumes, mais vous êtes aussi responsable des mises à jour et de l’exposition réseau.
  • Niveau expert : mesurez avant/après, conservez les traces, et préparez un rollback. Une commande correcte hors contexte peut rester dangereuse si elle est lancée au mauvais endroit.

Vérifications

  • La commande `systemctl --failed` ne doit pas afficher de service critique en échec.
  • La commande `df -h` doit montrer assez d’espace libre sur `/`, `/var` et les volumes applicatifs.
  • Les notes d’intervention doivent indiquer ce qui a été changé et pourquoi.

Checklist finale

  • Template versionné
  • Secrets séparés
  • Test jetable