Dans cet article nous allons voir comment déployer des ressources avec Terraform. Dans un précédent article j’ai décrit brièvement Terraform . je vous invite donc à jeter un oeil au cas où.

Pour installer Terraform vous avez plusieurs manière de faire j’y reviendrais pour donner une alternative à ce que nous allons voir .

J’utilise dans cet exemple Chocolatey un outil gestion de package open source qui permet d’installer et de désinstaller des logiciels sur windows de manière simple et efficace

Dans un premier temps la commande : choco version permet de voir la version de chocolatey . choco suivi du package suivi d’ upgrade permet de mettre à jour le package défini . Dans mon exemple powershell .

upgrading chocolatey version
Vérification de la version et mise à jour de Powershell

Mise à jour terminée .

Pour installer Terraform rien de plus simple

choco install terraform 

Pour vérifier si on a bien la dernière version qui est la v0.12.20 puis la liste des commandes disponibles.

terraform version
terraform

checking terraform version

show terraform commands

J’ai créé un dossier dédié à mon espace de travail pour mes déploiements Terraform . Je tape les commandes suivantes pour dans un premier temps me positionner au nouveau du dossier que je viens de créer et dans un deuxième créer mon espace de travail nommé Infrastructure .

cd C:\Users\ibrah\Documents\IM-DEV-WKS
terraform workspace new Infrastructure

create terraform workspace

Comme vous pouvez le constater ci dessous on ne parle plus d’environnements mais de workspace. Pour les lister ou avoir de l’aide :

terraform workspace list 
terraform workspace --help

Dans la liste des espaces de travail on voit un * à coté d’infrastructure ce qui veut dire qu’on est plutôt pas mal niveau configuration.

Vous pouvez créer avec les commandes suivantes les fichiers .tf main et variables qui vous nous servir à déployer les ressources . Il ne reste plus qu’à initialiser le backend .

New-Item -Name "Main.tf"
New-Item -Name "Variables.tf"
Terraform init 

Dans visual studio code je clique sur Fichier puis Ouvrir un dossier . Ensuite j’ouvre mon dossier ou j’avais précédemment créé mes fichiers de configurations.

Dans Visual Studio Code vous pouvez ajouter l’extension Terraform pour avoir la vue ci dessous .

Microsoft décrit dans un didacticiel comment configurer l’extension :

https://docs.microsoft.com/fr-fr/azure/terraform/terraform-vscode-extension

Vous pouvez aussi afficher le terminal powershell pour éxécuter des commandes pour se connecter par exemple

Connexion à mon compte Azure

Je renseigne l’email lié à mon abonnement

Ensuite le mot de passe.

Me voilà authentifié et je n’ai pas besoin de changer de souscription puisque c’est celle qui est par défaut qui m’intéresse . Par contre j’ai besoin de récupérer l’Id de la souscription pour créer le service principal qui va me servir pour le déploiement .

Get-AzSubscription
az ad sp create-for-rbac --role="contributor" --scopes="/subscriptions/Iddelasouscription

Connect azure account in powershell
Validation de la connexion

show all subscription in azure
Récupération de l’Id de souscription

Création du service principal

Le fichier Main.tf contient tous les ressources qui doivent être déployées . Pour faciliter mon déploiement je référence des variables dans Variables .tf pour garder la flexibilité pour mes prochains déploiements .

  • Un groupe de ressources im-dev-rg-001
  • Un réseau virtuel im-dev-vnet-001
  • Une sous réseau im-dev-snet-001
  • Un autre sous réseau im-dev-snet-002
  • Un ensemble de Tags pour faciliter l’identification et la facturation(Scenario).

Configuring terraform main.tf file
Contenu de mon fichier Main.tf

configure variables in terraform

Contenu de mon fichier variables.tf

Depuis le terminal je peux utiliser l’option plan pour voir si j’ai des erreurs à corriger ou simplement les ressources qui vont être déployées . Une fois sûr je peux prendre l’option apply pour commencer le déploiement.

Terraform plan 
Terraform apply 

  • On voit ici que 4 ressources vont être déployées . On valide donc par yes .

Le déploiement commence et se termine avec succès .

Sur le portail j’ai bien mon RG avec le nom et les tags que je voulais .

Pareil le Vnet a bien été déployé

Et enfin les deux subnets .

L’option destroy permet de nettoyer le déploiement .

terraform destroy 

Le plan s’affiche toujour pour montrer le potentiel résultat de la commande .Ici je valide par yes pour supprimer les ressources.

De retour sur le portail on voit bien que le déploiement a bien été nettoyé impliquant la suppression du RG et de son contenu.

Merci de votre visite je vous mettrais les liens vers mon github pour les sources .

 

Categories: Terraform

Ibrahima Mbodji

Passionné de nouvelles technologies

0 Comments

Leave a Reply

en_GBEnglish
%d