Orchestration : l'infrastructure décrite par le code
Décrire plutôt que cliquer : approche déclarative, blocs de Terraform, cycle init, plan, apply, destroy, fichier d'état, graphe de dépendances, idempotence, dérive et cloud-init au premier démarrage.
- 30 cartes
- 4 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
Quelques cartes du deck
Infrastructure en code : de quoi s'agit-il ?
Voir la réponse
Pratique qui consiste à décrire serveurs, réseaux et services dans des fichiers versionnés, appliqués par un outil plutôt que créés à la main dans une console.
On relit, teste et reproduit une infrastructure comme du code : un changement passe par une revue, et un environnement identique se recrée en une commande.
On lance terraform apply deux fois de suite, sans toucher au code entre les deux. Que répond la seconde exécution ?
- Elle ne change rien (« No changes »)
- Elle recrée toutes les ressources pour repartir d'une base propre
- Elle échoue car les ressources existent déjà
- Elle double les ressources, deux apply ajoutant deux jeux
Voir la réponse
Elle ne change rien (« No changes »)
L'état, le code et la réalité concordent : le plan est vide, Terraform affiche « No changes. Your infrastructure matches the configuration. » puis « Apply complete! Resources: 0 added, 0 changed, 0 destroyed. » C'est l'idempotence d'une description déclarative.
Un fichier Terraform est fait de blocs : … pour se connecter à une plateforme, … pour décrire un objet à créer, … pour un paramètre d'entrée et … pour une valeur à afficher en sortie.
Voir la réponse
Un fichier Terraform est fait de blocs : provider pour se connecter à une plateforme, resource pour décrire un objet à créer, variable pour un paramètre d'entrée et output pour une valeur à afficher en sortie.
Les blocs data lisent en plus des objets déjà existants, sans les créer.
Fichier d'état de Terraform : de quoi s'agit-il ?
Voir la réponse
Fichier où l'outil note quelles ressources réelles correspondent à quels blocs du code, pour calculer la différence au prochain plan.
Sans lui, l'outil ne saurait pas ce qu'il a déjà créé. Il se partage dans un stockage distant verrouillé pour que deux personnes n'appliquent pas en même temps.
Une règle de pare-feu ajoutée à la main dans la console disparaît au déploiement suivant. Quelle est la cause probable et que faire ?
- Bogue de Terraform : il faut ouvrir un ticket chez l'éditeur
- Dérive : le code fait foi, porter la règle dans le code
- Fichier d'état corrompu : il faut le supprimer et relancer
- Délai de propagation : il faut attendre quelques minutes
Voir la réponse
Dérive : le code fait foi, porter la règle dans le code
Terraform ramène l'infrastructure à ce que le code décrit, donc supprime ce qu'il ne connaît pas. Supprimer l'état ferait pire : l'outil ne saurait plus rien de ce qu'il gère.