Aller au contenu principal
Semestre 1 · Bloc 3

Bloc 3 : Infrastructure as Code

Lecture
5 min

Semaines 9 à 13. Vous avez éprouvé deux fois la même douleur : au défi du bloc 1 (impossible de redéployer en 30 minutes) et aux TP 5-6 (chaque geste répété sur N machines, chaque ajout de serveur touchant N fichiers). Vous avez même écrit vous-mêmes le cahier des charges de la solution (ch. 9, §4). Ce bloc la livre : l'infrastructure décrite dans des fichiers, versionnée dans Git, appliquée par des outils idempotents.

À la fin du bloc, la commande ./deploy.sh reconstruit l'intégralité de l'architecture du bloc 2 (4 machines, réseau, pare-feu, base, backends, load balancer, données) depuis un dépôt Git, sur un poste vierge de toute configuration manuelle. Et vous rejouerez le défi du bloc 1, chronomètre en main.

Les trois problèmes, les trois outils​

À gauche les trois problèmes de l'IaC (provisionner, configurer, orchestrer), à droite les outils du bloc : Vagrant et Terraform provisionnent, Ansible configure ; l'orchestration est renvoyée aux semestres suivants.

Les trois problèmes de l'Infrastructure as Code et l'outil qui répond à chacun. L'orchestration, laissée de côté ici, reviendra avec Kubernetes au semestre 2 et Airflow au semestre 3.

PDF vectoriel

L'orchestration, troisième problème, n'a pas d'outil dédié ce semestre : un simple script ordonnera Vagrant puis Ansible. Les orchestrateurs véritables (Kubernetes pour les services, Airflow pour les tâches) sont la matière des semestres 2 et 3 : vous saurez alors exactement quel vide ils comblent.

Organisation du bloc​

SemaineCMTP
9Ch. 10 : L'IaC, les trois problèmes et les conceptsTP 7 (début) : premiers vagrant up
10Ch. 11 : Vagrant, décrire des machinesTP 7 (fin) : le socle multi-machines en une commande
11Ch. 12 : Ansible, configurer par l'état désiréTP 8 (début) : inventaire, premiers rôles
12Ch. 12 (suite) : templates, handlers, vaultTP 8 (fin) : les 4 rôles, preuve d'idempotence
13Ch. 13 : Terraform, provisionner par l'étatTP 9 : la chaîne complète + TP 10 : Terraform en découverte

Ce que vous saurez faire à la fin du bloc​

  • Définir et illustrer : déclaratif vs impératif, idempotence, état désiré vs état réel, immutabilité, convergence.
  • Décrire un parc de VM locales dans un Vagrantfile (boxes, réseau privé, provisioners) et le reconstruire à volonté (vagrant destroy && vagrant up).
  • Écrire un projet Ansible structuré : inventaire par groupes, group_vars, rôles, templates Jinja2, handlers, secrets chiffrés avec ansible-vault ; prouver l'idempotence d'un playbook.
  • Expliquer le modèle de Terraform (graphe de ressources, state, plan/apply, providers) et détecter une dérive avec terraform plan.
  • Articuler les outils : Terraform et Vagrant provisionnent, Ansible configure ; savoir défendre ce partage des rôles.

Le livrable qui change tout​

À partir du TP 8, votre dépôt listify devient la source de vérité unique : le code applicatif ET la définition complète de l'infrastructure qui l'exécute. Le README doit permettre à l'enseignant de tout reconstruire en une commande : c'est exactement le format du projet noté du semestre (40 % de la note), et le geste professionnel le plus discriminant que ce parcours vous enseigne.