Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Décrire ses serveurs dans des fichiers

La leçon entière est à lire ici. Créez un compte gratuit pour lancer ses commandes dans un laboratoire et passer ses quiz et ses exercices.

Leçon de 50 minAucune commande

Le serveur que personne ne sait refaire

Julien travaille pour une mutuelle à Nantes. Le serveur qui calcule les remboursements tombe un lundi.

Il a été installé à la main il y a quatre ans, par un collègue parti depuis. Personne ne sait quels réglages il avait.

L'équipe met trois jours à le refaire. Cette leçon montre comment éviter cette situation.

À la fin de cette leçon

Remarque

Je peux expliquer pourquoi on décrit les serveurs dans des fichiers.

Mots clés

MotCe que ça veut direExemple
Infrastructureles machines, réseaux et disques sur lesquels tourne un service
Infrastructure as codedécrire l'infrastructure dans des fichiers texte
État vouluce que le fichier demande
Planla liste des changements avant de les faire
Appliquerfaire réellement les changements du planterraform apply
Dériveun écart entre le fichier et la réalité

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un fichier dit ce qu'on veut

Avec l'infrastructure as code, on n'installe plus un serveur en cliquant. On écrit dans un fichier les machines que l'on veut, leur taille et leur système.

Un outil comme Terraform lit le fichier et crée les machines chez l'hébergeur. Ici, l'hébergeur est Scaleway.

Lancez le bloc ci-dessous, puis faites la modification du dernier commentaire.

Lire un fichier Terraform

Code: bash
mkdir -p infra-paie && cd infra-paie

cat > serveurs.tf <<'FIN'
resource "scaleway_instance_server" "paie" {
  type  = "DEV1-S"
  image = "ubuntu_jammy"
}

resource "scaleway_instance_server" "sauvegarde" {
  type  = "DEV1-S"
  image = "ubuntu_jammy"
}
FIN

# Quelles machines ce fichier demande-t-il ?
grep resource serveurs.tf

# Quelle taille de machine pour chacune ?
grep type serveurs.tf

# Changez la taille de "paie" en DEV1-M, puis relancez.

L'outil compare, puis propose un plan

L'outil regarde ce qui existe déjà. Il le compare à l'état voulu du fichier.

Il affiche un plan : ce qu'il va créer, modifier ou supprimer. Une personne relit ce plan. Ensuite seulement, on l'applique.

Le tableau montre un vrai plan. Le bloc suivant refait la même comparaison avec deux listes.

Ce qu'affiche un vrai plan

Ligne affichéeCe que cela veut dire
+ resource "scaleway_instance_server" "supervision"Cette machine sera créée
~ type = "DEV1-S" -> "DEV1-M"Cette machine sera modifiée
- resource "scaleway_instance_server" "ancien-test"Cette machine sera supprimée
Plan: 1 to add, 1 to change, 1 to destroy.Le résumé : une création, une modification, une suppression

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Comparer le voulu et l'existant

Code: bash
# Ce que le fichier demande
printf 'paie\nsauvegarde\nsupervision\n' | sort > voulu.txt
# Ce qui existe vraiment chez l'hébergeur
printf 'paie\nancien-test\n' | sort > actuel.txt

echo "À créer :"
comm -23 voulu.txt actuel.txt

echo "À supprimer :"
comm -13 voulu.txt actuel.txt

# Ajoutez ancien-test dans voulu.txt, puis relancez.
# Il ne sera plus supprimé.

Ce que l'équipe y gagne

Le fichier est rangé dans le dépôt, avec le code. Chaque changement a donc un auteur, une date et une raison.

Un collègue relit le changement avant qu'il soit appliqué, comme pour du code.

Si un serveur disparaît, on applique le même fichier et il revient à l'identique. Pour Julien, trois jours seraient devenus vingt minutes.

Une erreur fréquente

Attention

Beaucoup pensent qu'on peut corriger un serveur à la main et laisser le fichier tel quel. Le fichier ne dit alors plus la vérité : c'est une dérive. Au prochain plan, l'outil voudra annuler la correction. Toute modification passe donc par le fichier, même la plus petite.

À la main ou dans un fichier

QuestionInstallé à la mainDécrit dans un fichier
Qui a changé quoi ?Personne ne saitL'historique du dépôt le dit
Refaire le serveurDes jours, de mémoireQuelques minutes
Un serveur de test identiqueDifficileLe même fichier, appliqué deux fois
Relecture avant changementRareNormale, comme pour le code

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.