eadl:bloc4:fm2:intro

Ceci est une ancienne révision du document !


Introduction à l'Infrastructure as Code (IaC)

À la fin de cette séance, vous serez capable de :

  • Comprendre les limites de la gestion manuelle d’infrastructure
  • Expliquer le concept d’Infrastructure as Code
  • Distinguer approche déclarative et impérative
  • Comprendre le rôle de Terraform et Ansible dans un workflow réel

Vous arrivez dans une entreprise.

Un développeur vous dit :

"Pour lancer l’environnement :
 - démarre un conteneur
 - ouvre le port 8080
 - copie les fichiers à la main"

Un autre développeur fait différemment.

Résultat :

  • environnements différents
  • bugs difficiles à reproduire
  • perte de temps

Question :

  • Quel est le principal problème ici ?

En pratique, sans IaC :

  • actions manuelles (console, SSH)
  • dépend de la personne
  • pas versionné

Exemple concret :

  • un admin ouvre un port “temporairement”
  • personne ne le documente
  • faille de sécurité

Autre exemple :

  • en prod : port 8080
  • en dev : port 3000
  • bug uniquement en prod

Question :

  • Pourquoi ces problèmes sont difficiles à corriger ?

Principe :

  • on écrit un fichier
  • on versionne (Git)
  • on exécute

Analogie :

  • avant : cuisine “à l’œil”
  • maintenant : recette écrite

Exemple :

Avant :

  • cliquer dans une interface
  • lancer des commandes à la main

Après :

  • fichier versionné
  • reproductible à l’identique

Objectif :

  • lancer un serveur web

Sans IaC :

  • docker run -p 8080:80 nginx
  • copier les fichiers à la main

Avec IaC :

  • un fichier Terraform crée le conteneur
  • un playbook Ansible configure le contenu

Résultat :

  • même résultat pour toute l’équipe
  • reproductible
  • automatisable

On donne les étapes :

  • installer nginx
  • démarrer le service

Problème :

  • dépend de l’état initial
  • plus fragile

On décrit le résultat :

  • “je veux un serveur web accessible”

L’outil décide :

  • quoi créer
  • quoi modifier

Question :

  • Pourquoi le déclaratif est plus adapté au cloud ?

Terraform :

  • crée l’infrastructure
  • sait ce qu’il a créé (state)

Ansible :

  • configure les machines
  • agit directement sur le système

Exemple concret :

  • Terraform → crée un conteneur
  • Ansible → copie une page HTML dedans

Dans une entreprise :

  • Terraform → infrastructure
  • Ansible → configuration
  • CI/CD → déploiement applicatif

Chaîne :

Code → Infra → Config → App

Dans le TD :

  • vous allez créer un conteneur avec Terraform
  • puis le modifier avec Ansible

Objectif :

  • comprendre la séparation des rôles
  • observer les limites si on mélange tout
  • IaC = automatiser l’infrastructure
  • réduire les erreurs humaines
  • rendre les environnements reproductibles
  • Terraform et Ansible sont complémentaires
  • eadl/bloc4/fm2/intro.1777120599.txt.gz
  • Dernière modification : il y a 13 jours
  • de jcheron