Base de connaissances

Machines virtuelles Novice 12 min

Choisir distribution et ressources pour une VM

Partir sur une configuration raisonnable en évitant la VM trop petite ou trop coûteuse.

Objectif pratique

Préparer une commande de machine virtuelle avec une configuration raisonnable, maintenable et évolutive.

Distribution utilisée

Debian / Ubuntu

Sommaire

  1. Choisir une distribution maintenue
  2. Dimensionner la RAM avant les vCPU
  3. Prévoir la croissance disque
  4. Ne pas mélanger test et production
  5. Réviser après mesure

Guide détaillé

Étape 1

Choisir une distribution maintenue

Debian, Ubuntu LTS ou une famille RHEL-like facilitent les mises à jour, la documentation et le recrutement d’aide.

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.

Vérifier la distribution et ses dépôts

Avant d’installer quoi que ce soit, vérifiez la version, le noyau visible et les dépôts activés. La commande de dépôts est adaptée à la distribution choisie.

Debian / Ubuntu
cat /etc/os-release
uname -r
apt-cache policy | head -40
Ce que font les commandes
  • `cat /etc/os-release` affiche la distribution et sa version exacte.
  • `uname -r` affiche le noyau visible par le système, utile pour distinguer VM et LXC.
  • `apt-cache policy | head -40` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

Préparer un dossier de travail propre

On crée un emplacement clair pour les notes et les fichiers temporaires liés à ce guide.

Debian / Ubuntu
sudo mkdir -p /srv/newscloud-guide
sudo chown $USER:$USER /srv/newscloud-guide
cd /srv/newscloud-guide
printf "Guide infrastructure\nDate: %s\n" "$(date -Iseconds)" > notes.txt
cat notes.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `cd /srv/newscloud-guide` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `cat notes.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

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.

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 novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

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

Dimensionner la RAM avant les vCPU

Beaucoup de services échouent par manque de mémoire avant d’épuiser le processeur. Commencez par estimer les pics RAM.

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.

Mesurer CPU, RAM et charge

Mesurez pendant une vraie action utilisateur. Une mesure au repos sous-estime souvent le besoin réel.

Debian / Ubuntu
uptime
free -h
vmstat 1 5
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head
sudo journalctl -p warning -n 80 --no-pager
Ce que font les commandes
  • `uptime` donne la charge moyenne et le temps depuis le dernier démarrage.
  • `free -h` affiche RAM et swap dans une unité lisible.
  • `vmstat` observe CPU, mémoire et I/O plusieurs fois de suite.
  • `ps` affiche les processus pour repérer ceux qui consomment le plus.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Mesurer avant de surdimensionner

Ces outils aident à distinguer CPU, mémoire, disque et réseau. Installez sysstat si les commandes iostat/sar manquent.

Debian / Ubuntu
sudo apt update
sudo apt install -y sysstat iotop iftop
uptime
vmstat 1 5
iostat -xz 1 5
sar -n DEV 1 5
sudo ss -s
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.
  • `uptime` donne la charge moyenne et le temps depuis le dernier démarrage.
  • `vmstat` observe CPU, mémoire et I/O plusieurs fois de suite.
  • `iostat` mesure la charge disque ; installez sysstat si la commande manque.
  • `sar -n DEV` mesure le trafic réseau par interface.
  • `sudo ss -s` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

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.

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 novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

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 mesures doivent être prises pendant un pic et hors pic.
  • Une seule modification de performance doit être appliquée à la fois.

Étape 3

Prévoir la croissance disque

Logs, sauvegardes temporaires, caches et bases grossissent vite. Gardez de la marge pour mettre à jour sans urgence.

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.

Repérer ce qui consomme le disque

Cette étape sépare le système, les données applicatives et les logs pour éviter les disques pleins surprises.

Debian / Ubuntu
df -h
du -xh /var /srv /tmp 2>/dev/null | sort -h | tail -30
sudo find /var/log -type f -size +50M -ls
sudo journalctl --disk-usage
Ce que font les commandes
  • `df -h` indique l’espace disque libre par point de montage.
  • `du -xh` mesure l’espace consommé par dossier en restant sur le même système de fichiers.
  • `find` recherche des fichiers selon des critères comme taille ou date de modification.
  • `journalctl` lit les journaux systemd ; l’option `--no-pager` évite un affichage interactif.

Inspecter et préparer le stockage

On vérifie les disques, les points de montage et les volumes avant de déplacer des données ou agrandir un volume.

Debian / Ubuntu
lsblk -f
df -h
sudo blkid
sudo mkdir -p /srv/data
sudo rsync -aHAX --info=progress2 /srv/app/ /srv/data/app/
sudo chown -R www-data:www-data /srv/data/app
Ce que font les commandes
  • `lsblk` affiche les disques, partitions et systèmes de fichiers.
  • `df -h` indique l’espace disque libre par point de montage.
  • `blkid` affiche les identifiants de volumes utiles pour les montages stables.
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `rsync` copie les fichiers en conservant les droits utiles.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.

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.

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 novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

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.
  • `lsblk -f` doit montrer le volume attendu au bon point de montage.
  • Les droits du dossier de données doivent correspondre à l’utilisateur du service.

Étape 4

Ne pas mélanger test et production

Une VM de production mérite des ressources et une distribution choisies pour la stabilité, pas pour l’expérimentation.

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.

Tester l’isolation réseau

On teste la passerelle autorisée, puis une cible LAN qui doit rester bloquée. Remplacez les IP par votre plan réseau.

Debian / Ubuntu
ip route
ping -c 3 10.31.254.254
ping -c 3 192.168.4.8
curl -m 3 http://192.168.4.8:8006
sudo nft list ruleset
Ce que font les commandes
  • `ip route` montre la passerelle utilisée et les routes connues.
  • `ping -c 3 10.31.254.254` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `ping -c 3 192.168.4.8` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `curl` teste une URL depuis la machine elle-même.
  • `nft list ruleset` affiche les règles nftables réellement chargées.

Préparer un dossier de travail propre

On crée un emplacement clair pour les notes et les fichiers temporaires liés à ce guide.

Debian / Ubuntu
sudo mkdir -p /srv/newscloud-guide
sudo chown $USER:$USER /srv/newscloud-guide
cd /srv/newscloud-guide
printf "Guide infrastructure\nDate: %s\n" "$(date -Iseconds)" > notes.txt
cat notes.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `cd /srv/newscloud-guide` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `cat notes.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

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.

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 novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

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

Réviser après mesure

Le premier choix n’est qu’une hypothèse. Recalibrez après quelques jours d’usage réel.

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' "Réviser après mesure" > ~/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.

Préparer un dossier de travail propre

On crée un emplacement clair pour les notes et les fichiers temporaires liés à ce guide.

Debian / Ubuntu
sudo mkdir -p /srv/newscloud-guide
sudo chown $USER:$USER /srv/newscloud-guide
cd /srv/newscloud-guide
printf "Guide infrastructure\nDate: %s\n" "$(date -Iseconds)" > notes.txt
cat notes.txt
Ce que font les commandes
  • `mkdir -p` crée le dossier demandé sans erreur s’il existe déjà.
  • `chown` remet la propriété des fichiers au bon utilisateur de service.
  • `cd /srv/newscloud-guide` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.
  • `printf` écrit une note ou un fichier de contrôle avec un format prévisible.
  • `cat notes.txt` exécute l’action indiquée ; lisez la sortie avant de passer à la commande suivante.

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.

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 novice : lancez les commandes une par une. Si une commande affiche une erreur, arrêtez-vous et lisez le message avant de continuer.

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

  • Distribution LTS
  • RAM estimée
  • Stockage avec marge