Contexte et Objectifs
Cet article va illustrer de façon simple et pratique le Infrastructure as a Code(IAC) . la possibilité de définir une infrastructure à l’aide d’un code déclaratif comme on le ferait pour n’importe lequel des programmes Informatiques. Nous allons utiliser pour ce faire le produit Terraform de Hashicorp pour créer une ressource dans Azure.
Etape 0:
Pour réaliser notre opération, nous avons besoin d’un abonnement azure . Microsoft propose de créer un abonnement gratuit avec 200$ de crédit ici : https://azure.microsoft.com/fr-fr/free/
Microsoft et l’éditeur de Terraform sont en partenariat ce qui fait que Terraform est inclus par défaut pour tous ceux qui utilisent le Bash Azure cloud Shell .
Etape 1: Petits Rappels sur Terraform
– Infrastructure as Code : Terraform permet de décrire des infrastructures avec une syntaxe très générique et de haut niveau (faisant abstraction des fournisseurs d’infrastructure).
Execution Plans : Terraform permet de simuler les modifications qui vont être appliquées sur une infrastructure afin de prévoir et limiter les mauvaises surprises ou erreurs
– Resource Graph : Terraform construit un graph de toutes les ressources utilisées et parallélise la création et la modification de toutes les ressources indépendantes. Ainsi, les déploiements sont plus efficaces et les IT ont une vue sur les interdépendances de leurs infrastructures
Changement automatisé : des ensembles de modifications complexes peuvent être appliquées à une infrastructure avec peu d’interventions humaines et manuelles
Etape 2
Nous allons nous connecter sur notre portail Azure et lancer notre cloud Shell
Etape 3 :
Nous allons créer un répertoire de travail et dans ce répertoire nomme mytfproject dans lequel nous allons mettre le fichier de configuration de Terraform , les fichiers Terraform utilisent un langage soit du HCL ou du Json . Et ont pour extension .tf .Dans notre example nous utilisons du HCL
Etape 4: Création de notre fichier de configuration Terraform.
Dans notre fichier nous renseignons simplement le provider à utiliser dans ce cas celui de Azure et nous créons un Resource Group avec les paramètres name et localisation qui sont les paramètres obligatoires pour créer une ressource de ce type. La syntaxe c’est du HCL c’est un langage déclaratif très facile à prendre en main. L’aide de Terraform est bien documentée sur ce sujet
Etape 5: Création de notre plan Terraform
Comme nous venons de créer notre fichier nous allons dans un premier temps lancer la commande d’initialisation pendant cette phase Terraform prend connaissance de notre fichier de configuration , s’assure que les providers sont bien présents et encore plus intéressants affiche l’état qui sera effectif a la fin du plan . Les images ci-dessous illustrent le résultat de la commande terraform init . le signe ‘+” montre les ressources qui seront crées a la fin du plan si celui ci est execute
Etape 6: Exécution du Plan Terraform
Si nous sommes satisfaits du résultat du plan, nous pouvons donc l’exécuter à l’aide de la commande terraform apply et vérifier l’exécution sur le portail c’est l’image 2
Etape 7: Terraform et l’état souhaite
La force d’un langage déclaratif comme Terraform c’est qu’il ne se préoccupe que de l’Etat souhaite et que nous mentionnons seulement ce que nous voulons comme résultat sans lui dire comment il va atteindre ce résultat. C’est un grand garçon et c’est pour ça que de multiples terraform apply ne vont pas générer une erreur. Comme ici-bas
Etape 7: destruction de ressources
Nous pouvons aussi à l’aide de terraform supprimer les ressources qui ont été crée . Dans les images qui suivent nous simulons le résultat de la destruction avec Terraform plan -destroy et supprimons effectivement avec Terraform destroy
Références:
https://www.terraform.io/docs/configuration/resources.html
https://www.terraform.io/docs/configuration/syntax.html
tags: #Azure #Terraform
Auteur: NDOUMBE MBEY GASTON, Azure Cloud Architect, Author, Writer.
Linkedin: https://www.linkedin.com/in/gaston-ndoumbe-a13211a/