Introduction
Terraform est un outil d'Infrastructure as Code (IaC) développé par HashiCorp. Il permet aux utilisateurs de définir et de provisionner l'infrastructure des services cloud en utilisant un langage de configuration simple et déclaratif.
- Automatisation de l'infrastructure : Terraform automatise le déploiement et la gestion de l'infrastructure, réduisant le risque d'erreurs humaines.
- Gestion de l'état : Terraform maintient un état de l'infrastructure, permettant des modifications et des déploiements prévisibles.
- Support multi-cloud : Terraform peut gérer les ressources sur plusieurs plateformes cloud, offrant une grande flexibilité.
- Infrastructure en tant que code : Les configurations sont écrites dans des fichiers qui peuvent être versionnés, réutilisés et partagés.
Pour pouvoir utiliser Terraform, il faudra plusieurs prérequis en plus de Terraform lui-même. Tout d'abord une clef SSH valide :
Pour Terraform avec Azure, il faudra également la présence d'Azure CLI sur votre système : Install AzureCLI
Pour Terraform avec AWS, il faudra également la présence d'AWS CLI sur votre système : Install AWS CLI
Les deux fichiers écrits ici sont simples. Mais ils permettent d'annoncer quel est le fournisseur que vous allez utiliser. Au-dessus : azure, en dessous aws. Par une préférence injuste, tout sera fait sur Azure.
Que fait terraform init ?
- Installation des plugins : Terraform télécharge et installe les plugins nécessaires pour intéragir avec les fournisseurs spécifiés dans votre configuration (par exemple Azure ou AWS).
- Initialisation du Backend : Si spécifié, configure le backend pour l'état de Terraform.
- Préparation du Répertoire : Terraform prépare le répertoire de travail pour l'exécution des autres commandes Terraform.
Un message de succès indiquera que l'initialisation s'est déroulée correctement. Vous êtes maintenant prêt à planifier et appliquer vos configuations Terraform.
Que fait terraform plan ?
- Analyse de la configuration : Terraform analyse vos fichiers de configuration pour déterminer les ressources à créer, modifier ou détruire.
- Affichage des changements : Terraform présente un plan d'exécution montrant ce qui sera modifié dans l'infrastructure.
- Prévention des surprises : Cela permet de vérifier les changements avant de les appliquer, réduisant le risque d'erreurs inattendues.
Le plan affiche des ajouts (+), des changements (~) et des suppressions (-). Il est crucial de le lire attentivement pour s'assurer que les changements correspondent à vos attentes.
Que fait terraform apply ?
- Confirmation des changements : Avant d'appliquer les changements, Terraform affiche le plan et demande une confirmation.
- Modification de l'infrastructure : Si confirmé, Terraform applique les changements à l'infrastructure conformément à votre configuration.
- Mise à jour de l'état : Après l'application des changements, Terraform met à jour le fichier d'état pour refléter l'état actuel de l'infrastructure.
L'état de Terraform est crucial pour maintenir l'alignement entre votre configuration et l'infrastructure réelle. Après chaque application, Terraform met à jour son fichier d'état.
Que fait terraform destroy ?
- Affichage des ressources à supprimer : Terraform affiche la liste des ressources qu'il prévoit de supprimer.
- Demande de confirmation : Avant de procéder, Terraform demande une confirmation pour s'assurer que vous souhaitez supprimer ces ressources.
- Destruction des ressources : Si confirmé, Terraform supprime8 toutes les ressources listées, nettoyant ainsi l'infrastructure.
Cette commande est utile lors de la fin d'un projet, pour les environnements de test, ou pour reconstruire entièrement une infrastructure. Il est importnant de l'utiliser avec prudence, car elle supprime toutes les ressources gérées.
Gestion de l'état