Premiers pas DevOps : préparer un système Debian fraîchement installé
← Retour
Informatique

Premiers pas DevOps : préparer un système Debian fraîchement installé

Cédrix · 09/02/2023

Lorsqu'on vient de provisionner une machine Debian — que ce soit un conteneur LXC, une VM ou un serveur dédié — quelques étapes initiales sont incontournables avant de pouvoir vraiment travailler dessus. Ce petit guide reprend les gestes de base : passer en root, configurer les dépôts officiels, mettre le système à jour, installer sudo, et terminer par quelques réglages d'identification qui éviteront des surprises plus tard. Rien de sorcier, mais autant prendre de bonnes habitudes dès le départ.

Passer en utilisateur root

La première étape consiste à obtenir les droits administrateur. Sur une Debian fraîche, l'utilisateur root existe déjà et possède un mot de passe défini lors de l'installation. Pour ouvrir une session avec son environnement complet (variables, PATH, répertoire personnel), on utilise :

su - root

Le tiret est important : sans lui, on hérite uniquement de l'UID de root sans charger son shell de connexion, ce qui peut donner lieu à des surprises (PATH incomplet, absence de /sbin dans la recherche des commandes, etc.).

À noter que si sudo est déjà installé et que l'utilisateur courant fait partie du groupe sudo, on peut aussi écrire sudo -i pour obtenir le même résultat. Mais sur une Debian minimale tout juste installée, sudo n'est généralement pas présent — d'où la nécessité de passer par su dans un premier temps.

Configurer les dépôts officiels

Debian s'appuie sur APT pour gérer ses paquets, et APT a besoin de savoir où les chercher. Cette configuration se trouve dans le fichier /etc/apt/sources.list (et, sur les versions récentes, éventuellement dans /etc/apt/sources.list.d/ pour les dépôts additionnels).

On l'ouvre avec un éditeur de texte :

nano /etc/apt/sources.list

Un contenu typique pour Debian 12 (Bookworm) ressemble à ceci :

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

Quelques explications rapides sur les composants :

  • main contient les paquets libres officiellement supportés par Debian
  • contrib regroupe les paquets libres qui dépendent de logiciels non libres
  • non-free et non-free-firmware contiennent les paquets non libres (utiles notamment pour les pilotes matériels)

Le dépôt bookworm-updates apporte les mises à jour stables non urgentes, tandis que bookworm-security fournit les correctifs de sécurité — celui-ci est essentiel et ne doit jamais être omis sur une machine connectée au réseau.

Pour une version différente de Debian, il suffit de remplacer bookworm par le nom de code correspondant (bullseye, trixie, etc.).

Mettre le système à jour

Une fois les dépôts configurés, on récupère la liste des paquets disponibles puis on applique les mises à jour :

apt update
apt upgrade

La distinction entre les deux est importante :

  • apt update ne met rien à jour : la commande synchronise simplement l'index local des paquets avec ce que les dépôts annoncent. Sans cette étape, APT ignore l'existence des nouvelles versions.
  • apt upgrade installe effectivement les versions plus récentes des paquets déjà présents.

Pour les mises à jour plus profondes qui peuvent ajouter ou retirer des paquets (changement de dépendances, transitions majeures), il existe aussi apt full-upgrade. À utiliser avec un peu plus de précaution, mais c'est ce qu'il faut pour suivre l'évolution complète d'une distribution.

Sur un conteneur ou une VM fraîche, cette première mise à jour peut tirer un certain nombre de paquets. C'est normal : l'image de base est figée au moment de sa publication, et plusieurs mois de correctifs se sont souvent accumulés depuis.

Petit conseil pour la suite, dès qu'on commencera à scripter ces opérations : préférer apt-get à apt dans les scripts, car son interface est garantie stable entre versions. Et pour éviter les questions interactives bloquantes lors d'installations automatisées, positionner DEBIAN_FRONTEND=noninteractive dans l'environnement.

Installer sudo

Par défaut, Debian n'installe pas sudo sur un système minimal. Travailler en permanence en root n'est pourtant pas une bonne pratique : on perd la traçabilité des actions, et la moindre erreur de frappe peut avoir des conséquences sérieuses. L'idée derrière sudo est de déléguer ponctuellement des droits administrateur à un utilisateur normal, commande par commande, avec un journal des actions effectuées.

L'installation se fait classiquement :

apt install sudo

Ensuite, il faut ajouter son utilisateur (celui avec lequel on se connectera au quotidien) au groupe sudo :

usermod -aG sudo nom_utilisateur

Le drapeau -a (pour append) est crucial : sans lui, usermod -G remplacerait la liste des groupes secondaires de l'utilisateur au lieu d'y ajouter sudo, ce qui peut avoir des effets de bord désagréables.

L'utilisateur doit ensuite se déconnecter puis se reconnecter pour que sa nouvelle appartenance au groupe soit prise en compte. À partir de là, il peut préfixer ses commandes par sudo pour les exécuter avec les droits administrateur, en saisissant son propre mot de passe (et non celui de root).

Régler l'identité et l'horloge de la machine

Deux derniers détails de configuration qui paraissent anodins, mais qui simplifient grandement la vie sur un parc qui grandit.

D'abord, fixer le nom de la machine. Sur une infrastructure organisée, le hostname et le FQDN suivent généralement une convention de nommage (par exemple dafactures.acegrp.lan pour un projet de facturation sur un réseau interne). La commande hostnamectl s'en charge proprement :

hostnamectl set-hostname dafactures.acegrp.lan

Penser à vérifier ensuite que /etc/hosts contient bien une ligne associant l'IP locale au FQDN, sous peine de voir certains services (Postfix notamment, ou des outils de log) se plaindre de ne pas résoudre leur propre nom.

Ensuite, le fuseau horaire. Détail souvent négligé qui complique pourtant le débogage dès qu'on croise des logs entre plusieurs machines :

timedatectl set-timezone Europe/Paris

La synchronisation NTP est généralement déjà active via systemd-timesyncd sur les Debian récentes — un timedatectl status permet de le vérifier.

Et après ?

Une fois ces étapes franchies, la machine est dans un état sain et utilisable. Les pistes naturelles pour la suite tournent autour du durcissement (configuration SSH avec authentification par clé et désactivation de la connexion root à distance, mise en place d'un pare-feu, installation de unattended-upgrades pour les correctifs de sécurité automatiques), puis de l'installation des outils métier proprement dits — serveur web, base de données, runtime applicatif.

Garder en tête que ces gestes initiaux, aussi triviaux paraissent-ils, méritent d'être scriptés dès qu'on les répète plus de deux ou trois fois. C'est précisément là que la démarche DevOps prend tout son sens : transformer des manipulations manuelles en code reproductible, versionné et partageable.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.