Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Installer un serveur Linux

Par mis à jour le

Améliorer cette page

Installer un serveur Linux, c'est enchaîner quatre décisions : la distribution, le support d'installation, le découpage du disque et la façon de reproduire l'opération. Ce guide les prend dans l'ordre, pour un débutant qui installe son premier serveur sur une machine physique ou dans une machine virtuelle : télécharger la bonne image ISO, écrire une clé USB bootable, choisir un partitionnement avec LVM, puis automatiser l'installation avec autoinstall, preseed, Kickstart ou cloud-init. Il se termine par les commandes qui prouvent que le serveur est sain.

Pourquoi Linux ? Parce que Linux est devenu le système d'exploitation dominant des serveurs, pour sa stabilité, sa sécurité et sa polyvalence. Que vous soyez administrateur chevronné ou débutant, l'installation reste le moment où se prennent des choix difficiles à défaire ensuite.

  • Préparer l'installation : distribution, matériel, image ISO vérifiée par sha256, clé USB amorçable
  • Partitionner un disque selon les recommandations de RHEL 10 pour /boot, / et le swap
  • Installer puis faire la configuration initiale d'un serveur
  • Automatiser l'installation avec Kickstart, preseed ou cloud-init
  • Vérifier que le serveur installé est conforme avant de l'utiliser

Pourquoi une installation correcte est-elle essentielle ?

Section intitulée « Pourquoi une installation correcte est-elle essentielle ? »

L'installation d'un serveur Linux correctement réalisée est bien plus qu'une simple formalité technique. C'est le fondement sur lequel repose toute votre infrastructure. Une installation correcte garantit la stabilité du système, la sécurité des données et des services, ainsi que des performances optimales. En revanche, une installation négligée ou incorrecte peut entraîner des problèmes, des vulnérabilités de sécurité et des interruptions de service coûteuses : un disque découpé trop juste, par exemple, ne se corrige plus sans arrêt de service.

La première étape de l'installation d'un serveur Linux est la préparation. Cette phase détermine en grande partie le succès de l'ensemble du processus. Elle comprend le choix de la distribution qui convient à votre cas d'utilisation, la vérification du matériel et le téléchargement de l'image ISO appropriée.

Le monde de Linux est riche en distributions, chacune avec ses caractéristiques, avantages et inconvénients. Avant de vous lancer, il est important de sélectionner la distribution qui répond le mieux à vos besoins. Le guide Choisir une distribution serveur compare les options en détail ; voici les plus courantes sur un serveur :

  • Ubuntu Server : connue pour sa facilité d'utilisation et sa grande communauté de soutien.
  • Debian : célèbre pour sa fiabilité et son engagement envers les logiciels open source ; la version stable est Debian 13.
  • RHEL et ses rebuilds (AlmaLinux, Rocky Linux) : la référence en entreprise, avec un cycle de support de dix ans.
  • Fedora Server : offre les dernières fonctionnalités et technologies, adaptées aux environnements de développement.

Chaque distribution a sa propre philosophie et ses propres outils de gestion. Prenez en compte vos besoins, vos connaissances et la compatibilité avec les outils que vous prévoyez d'utiliser.

Avant de commencer l'installation, assurez-vous que votre matériel est compatible et qu'il répond aux exigences minimales de la distribution choisie. Les composants clés à prendre en compte sont :

  • Processeur (CPU) : la vitesse et le nombre de cœurs sont importants en fonction de la charge de travail prévue.
  • Mémoire RAM : la quantité de RAM affecte les performances et la capacité de votre serveur à exécuter des applications.
  • Espace de stockage : assurez-vous d'avoir suffisamment d'espace disque pour le système d'exploitation, les données et les applications.
  • Carte réseau : elle doit être compatible et configurée pour une adresse IP statique ou dynamique.

Comparez les spécifications de votre matériel aux recommandations de la distribution choisie pour éviter les problèmes pendant l'installation. Pour un homelab de formation, la page Matériel pour un homelab détaille des configurations éprouvées.

Une fois la distribution choisie et le matériel vérifié, téléchargez l'image ISO sur le site officiel de la distribution ou sur un miroir de confiance. Prenez la version adaptée à l'architecture du serveur : amd64 (aussi appelée x86_64) pour la plupart des machines, arm64 (aarch64) pour les serveurs ARM. Les images 32 bits ont disparu des distributions serveur courantes.

Vérifiez ensuite l'empreinte SHA-256 de l'image avec sha256sum, en la comparant à celle que publie la distribution (fichier SHA256SUMS ou CHECKSUM). Une image modifiée installerait un système compromis dès la première minute.

L'image ISO téléchargée, l'étape suivante consiste à créer une clé USB bootable. Cette clé permet de démarrer le serveur sur l'installateur et de lancer le processus d'installation. Sur un serveur virtuel, cette étape disparaît : l'hyperviseur monte directement l'ISO comme lecteur virtuel.

Utilisation d'un outil de création de clé USB bootable

Section intitulée « Utilisation d'un outil de création de clé USB bootable »

Pour créer une clé USB bootable, il vous faut un utilitaire qui transfère l'image ISO sur la clé tout en la rendant amorçable. Plusieurs outils gratuits font ce travail, et le choix dépend surtout de votre système d'exploitation :

  • Balena Etcher : disponible pour Windows, macOS et Linux, Etcher est un outil convivial qui simplifie la création de clés USB bootables. Il est également réputé pour sa fiabilité.

  • Rufus : principalement destiné à Windows, Rufus est un outil puissant avec de nombreuses options de personnalisation pour la création de clés USB bootables.

  • UNetbootin : disponible pour Windows, macOS et Linux, UNetbootin est un utilitaire simple à utiliser qui crée des clés USB bootables à partir d'une variété de distributions Linux.

  • dd : déjà présent sur tout poste Linux, il copie l'image octet par octet, par exemple sudo dd if=debian-13.iso of=/dev/sdX bs=4M status=progress. Vérifiez trois fois le /dev/sdX avec lsblk : dd écrase sans confirmation le périphérique que vous lui donnez.

Une fois l'outil choisi, les étapes générales sont les mêmes partout. La quatrième est celle qui demande toute votre attention, parce qu'une erreur de périphérique efface un disque entier :

  1. Insérez la clé USB dans un port USB disponible de votre ordinateur.
  2. Lancez l'outil de création de clé USB bootable que vous avez choisi.
  3. Sélectionnez l'image ISO que vous avez téléchargée précédemment.
  4. Choisissez la clé USB à utiliser. Assurez-vous de sélectionner la bonne clé, car toutes les données sur cette clé seront effacées pendant le processus.
  5. Démarrez la création de la clé bootable en suivant les instructions de l'outil. Celui-ci copie l'image ISO sur la clé USB et la rend amorçable.
  6. Une fois le processus terminé, vous disposez d'une clé USB bootable prête à installer votre serveur Linux.

Avant de démarrer l'installation, il faut décider du partitionnement des disques : c'est au moment de l'installation que ce choix est le moins coûteux. Le reprendre plus tard impose de sauvegarder les données, de recréer les partitions puis de restaurer, sauf si vous avez choisi LVM.

La gestion des partitions et des disques consiste à découper le disque et à organiser l'espace de stockage pour optimiser les performances et la sécurité du serveur. Le guide Partitionner un disque détaille les outils ; cette section se concentre sur les choix à faire à l'installation.

Le partitionnement est le processus de division d'un disque en sections séparées, chacune pouvant porter un système de fichiers différent. Il permet une meilleure organisation des données, une séparation des environnements système et utilisateur et une sécurité accrue. En cas de corruption d'un système de fichiers, ou d'un service qui remplit le disque, les dommages restent limités à une seule partition.

Voici un exemple de partitionnement qui sépare les composants du système et les données utilisateur. Les tailles minimales de / et /boot, ainsi que la règle de la swap, reprennent la documentation d'installation de RHEL 10 :

  • Partition Root (/) :

    • Taille : au moins 10 Go.
    • Objectif : contient le système d'exploitation et les applications principales.
  • Partition Home (/home) :

    • Taille : selon les besoins des utilisateurs.
    • Objectif : stocke les données personnelles des utilisateurs.
  • Partition Var (/var) :

    • Taille : au moins 10 Go.
    • Objectif : contient des données variables autres que les logs, comme les spools de mail et les caches. Attention, si vous utilisez Docker, ses images et volumes sont stockés aussi à cet endroit, sous /var/lib/docker !
  • Partition Var Log (/var/log) :

    • Taille : 10 Go ou plus, selon le volume de logs généré.
    • Objectif : stocke spécifiquement les fichiers journaux. Une partition dédiée pour /var/log isole l'espace occupé par les logs et empêche une croissance excessive d'affecter le reste du système.
  • Partition Temp (/tmp) :

    • Taille : 10 Go.
    • Objectif : pour les fichiers temporaires.
  • Partition Boot (/boot) :

    • Taille : au moins 2 Go, la recommandation de RHEL 10.
    • Objectif : contient le noyau et les fichiers de démarrage du système.
  • Partition Swap :

    • Taille : fonction de la RAM. Red Hat recommande deux fois la RAM sous 2 Go, autant que la RAM entre 2 et 8 Go, de 4 Go à la moitié de la RAM entre 8 et 64 Go, et au moins 4 Go au-delà. L'ancienne règle « une à deux fois la RAM » gaspille du disque sur un serveur bien doté en mémoire.
    • Objectif : mémoire de débordement, détaillée dans le guide swap.

Adaptez ce découpage au profil d'utilisation de votre serveur : un serveur de bases de données, un hôte Docker et un poste de rebond n'ont ni les mêmes partitions critiques ni les mêmes tailles.

La gestion des volumes fait le plus souvent appel à LVM (Logical Volume Manager), un système de gestion de volumes logiques que les installateurs de Debian, Ubuntu et RHEL proposent directement.

LVM offre une grande flexibilité dans la gestion du stockage. Il permet de redimensionner facilement les volumes, de créer des instantanés (snapshots) pour les sauvegardes et la récupération, et de combiner plusieurs disques en un seul volume logique.

La configuration de LVM implique la création de groupes de volumes et de volumes logiques. Cela permet une allocation dynamique de l'espace et facilite la gestion des disques quand la capacité doit évoluer. Laissez un peu d'espace libre dans le groupe de volumes : c'est lui qui permettra d'agrandir /var sans réinstaller.

Le choix du système de fichiers est tout aussi important, car il détermine comment les données sont stockées et lues sur chaque partition. Chaque type a ses avantages et ses inconvénients, et le guide Choisir un système de fichiers les compare en détail :

  • EXT4 : idéal pour les performances et la compatibilité, ext4 est un choix sûr pour la plupart des usages, et le défaut de Debian et Ubuntu.
  • XFS : recommandé pour les fichiers de grande taille et les environnements exigeants en entrées/sorties, et le défaut de RHEL.
  • BTRFS : offre des fonctionnalités avancées comme la compression et les instantanés intégrés, adapté aux systèmes qui demandent une gestion flexible des données.

Après avoir préparé votre clé USB bootable, il est temps de passer à l'installation de votre serveur Linux. Cette phase enchaîne le démarrage à partir de la clé USB, les paramètres de base, le partitionnement du disque et la sélection des paquets à installer.

Insérez votre clé USB bootable dans le port USB de votre serveur, puis redémarrez le système. Vous devrez peut-être accéder au menu de démarrage (généralement en appuyant sur une touche spécifique telle que F2, F12 ou ESC au démarrage) pour sélectionner la clé USB comme périphérique de démarrage.

Une fois que le système démarre à partir de la clé USB, l'écran d'accueil de l'installateur de la distribution s'affiche : Subiquity pour Ubuntu, debian-installer pour Debian, Anaconda pour RHEL et ses dérivés.

Avant de lancer l'installation, vous devrez configurer certains paramètres de base, tels que la langue, la disposition du clavier, la région et le fuseau horaire. Ces paramètres dépendent de votre emplacement et de vos préférences. Définissez-les correctement pour éviter des problèmes de localisation ultérieurs : un clavier mal déclaré rend la saisie du mot de passe hasardeuse.

Le partitionnement du disque est une étape critique lors de l'installation d'un serveur Linux. Vous devrez décider de la manière d'organiser les partitions de votre système. Les options courantes sont deux, et leur choix dépend de votre expérience :

  • Partitionnement automatique : les installateurs proposent une option qui configure le partitionnement pour vous, souvent avec LVM. Cette option convient généralement aux débutants, mais elle peut ne pas répondre à des besoins spécifiques.

  • Partitionnement manuel : si vous avez des exigences particulières, optez pour le partitionnement manuel. Vous pouvez créer des partitions distinctes pour le système racine (/), la swap, le répertoire /home, etc.

Assurez-vous de comprendre les implications du partitionnement que vous choisissez, car il a un impact sur la gestion de l'espace disque, la sauvegarde et la performance du système.

Pendant l'installation, vous aurez la possibilité de sélectionner les paquets logiciels à installer sur votre serveur. Les choix courants incluent le serveur web (comme Apache ou Nginx), la base de données (comme MySQL ou PostgreSQL), le serveur SSH et d'autres composants nécessaires à votre environnement.

Personnellement, je préfère installer une version minimale du serveur pour ensuite le configurer avec soin : chaque service installé sans besoin écoute le réseau et devra être mis à jour. Gardez en revanche le serveur OpenSSH, indispensable pour administrer la machine à distance.

Une fois ces paramètres configurés, lancez l'installation proprement dite et suivez les instructions de l'installateur jusqu'au redémarrage.

Après l'installation, la configuration initiale sécurise le serveur et le prépare à l'administration courante. Cinq réglages reviennent sur toute machine, chacun traité par une leçon de la formation, à appliquer dans cet ordre :

  1. Un utilisateur non-root avec sudo pour administrer sans travailler en root : Utiliser sudo.
  2. SSH par clé, sans mot de passe ni connexion root : Créer et gérer des clés SSH puis Configurer le serveur OpenSSH.
  3. Un pare-feu qui n'ouvre que les ports utiles : Comprendre les pare-feu Linux.
  4. L'heure synchronisée par NTP : Synchroniser l'horloge avec chrony.
  5. Les mises à jour de sécurité : Appliquer les mises à jour de sécurité.

Pour vous entraîner à installer un serveur Linux, je vous conseille de le faire dans une machine virtuelle, avec une solution de virtualisation locale comme VirtualBox, VMware Workstation ou KVM : le guide Installer Linux dans une VM vous guide pas à pas.

Une fois cette tâche maîtrisée, vous pourrez utiliser un outil tel que Vagrant pour virtualiser un serveur Linux en peu de temps. J'ai écrit par exemple un tutoriel pour provisionner des VM sous Windows Hyper-V avec Vagrant.

Installer un serveur à la main est parfait pour apprendre, mais en production on automatise : l'installation devient reproductible, sans clic et identique sur 1 ou 100 machines. Deux briques s'enchaînent, et les confondre est l'erreur classique : un mécanisme d'installation automatisée pose le système, puis cloud-init le configure au premier démarrage.

Quel mécanisme d'installation automatisée par famille de distribution

Section intitulée « Quel mécanisme d'installation automatisée par famille de distribution »

Les 3 familles répondent au même besoin avec 3 formats de fichier incompatibles, lus par 3 installateurs différents. Le fichier ne se recopie donc pas d'une famille à l'autre, et le point qui change en premier est la façon de le fournir : paramètre de démarrage pour Debian et RHEL, image préparée ou serveur web pour Ubuntu. Les onglets ci-dessous donnent pour chacune l'installateur, le nom du fichier et un extrait de départ, à compléter.

L'installateur Subiquity lit un fichier autoinstall (au format cloud-init) pour une installation non interactive. Le mot de passe se donne sous forme de hash, jamais en clair :

#cloud-config
autoinstall:
version: 1
identity:
hostname: srv01
username: ubuntu
password: "$6$..." # hash via openssl passwd -6
ssh:
install-server: true
allow-pw: false

Sur les images cloud, cloud-init configure la machine au premier démarrage (utilisateurs, clés SSH, paquets, fuseau) via un fichier user-data au format #cloud-config :

#cloud-config
users:
- name: ansible
sudo: "ALL=(ALL) NOPASSWD:ALL"
groups: users, admin
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5...
package_update: true
package_upgrade: true
packages:
- git
timezone: Europe/Paris

Validez-le avant de l'utiliser, sans déployer quoi que ce soit. Mesuré avec cloud-init 26.1 sur Ubuntu 24.04, le fichier ci-dessus est accepté, alors qu'une clé mal orthographiée (sudoo) fait sortir la commande en code 1 avec Invalid user-data :

Fenêtre de terminal
cloud-init schema --config-file user-data.yaml
Valid schema user-data.yaml

Une fois le serveur démarré, quelques commandes confirment qu'il est sain. Lancez-les dans cet ordre, du verdict global au détail des disques et du réseau :

Fenêtre de terminal
hostnamectl # nom et infos système
systemctl is-system-running # "running" attendu ("degraded" = une unité en échec)
lsblk # partitions et montages
df -h # espace disque par système de fichiers
ip a # adresses IP des interfaces
timedatectl # heure, fuseau, synchronisation NTP

systemctl is-system-running est le réflexe le plus utile : degraded signale qu'au moins une unité a échoué, à investiguer avec systemctl --failed, puis journalctl -u sur l'unité en cause.

  • Un serveur n'a pas d'interface graphique : choisissez une image server ou minimal, en amd64 ou arm64, et vérifiez son empreinte SHA-256.
  • Partitionnez avec LVM et séparez /var, /var/log, /home : une partition unique qui sature bloque tout le système.
  • La swap se dimensionne selon la RAM (règle de RHEL 10), pas systématiquement à deux fois la RAM.
  • Automatisez dès que possible : autoinstall (Ubuntu), preseed (Debian), Kickstart (RHEL/AlmaLinux), cloud-init (images cloud).
  • Validez un user-data cloud-init hors ligne avec cloud-init schema avant de déployer.
  • Premiers réglages : utilisateur sudo non-root, SSH par clé (pas de root, pas de mot de passe), pare-feu, NTP, mises à jour.
  • Vérifiez la santé avec systemctl is-system-running, hostnamectl, lsblk, df -h, ip a.

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Ces questions reviennent le plus souvent avant une première installation de serveur, et portent sur des arbitrages que le guide traite à des endroits différents : la taille des partitions, le choix entre LVM et partitionnement classique, et ce qu'il faut automatiser dès la première machine.

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn