Dans l’espace de l’infrastructure en tant que code (IaC), l’un des outils les plus utiles à émerger ces dernières années est Terraform de HashiCorp pour Windows. La possibilité de versionner l’infrastructure, d’automatiser la provision de ressources et d’exécuter sur différents fournisseurs de cloud est énorme pour tout workflow DevOps et d’automatisation.
Un cas d’utilisation pour Terraform est dans les pipelines CI/CD. Terraform vous permet de :
Mes dernières vidéos
- créer un environnement de test
- déployer une application
- exécuter des tests d’intégration
- détruire l’environnement de test
Toutes les étapes sont effectuées automatiquement. Et aucun centre de données n’est requis !
Prérequis
Cet article est un guide pas à pas pour mettre en place Terraform Windows. Si vous souhaitez suivre, assurez-vous d’avoir les prérequis suivants en place.
- A Windows 10 device
- Un compte AWS
- Le CLI AWS installé et configuré sur cet appareil. Vous pouvez apprendre comment l’installer ici et comment le configurer ici.
- (Facultatif) Visual Studio Code avec l’extension Terraform
Installation de l’application Terraform pour Windows.
Pour tirer parti de la puissance de Terraform, vous devez d’abord l’installer sur votre système d’exploitation de choix. Dans cet article, je vais me concentrer sur Windows. Mais sachez que Terraform peut fonctionner sur d’autres systèmes d’exploitation. Si vous n’utilisez pas Windows, consultez la documentation d’installation.
La méthode difficile
Si vous ne pouvez pas utiliser un gestionnaire de paquets ou si vous voulez comprendre comment fonctionne le processus d’installation, vous pouvez installer Terraform manuellement. Vous pouvez installer Terraform en téléchargeant le fichier binaire et en l’ajoutant au chemin d’accès système. Si cela vous semble intimidant, je vous assure qu’il existe une méthode plus facile que vous apprendrez dans la prochaine section.
- Téléchargez la version appropriée de Terraform depuis la page de téléchargement de HashiCorp. Dans mon cas, il s’agit de la version 64 bits pour Windows.
- Créez un dossier sur votre disque C:\ où vous pourrez placer l’exécutable Terraform. Je préfère placer les installateurs dans un sous-dossier (par exemple C:\tools) où vous pourrez mettre les binaires.
- Une fois le téléchargement terminé, cherchez-le dans l’Explorateur de fichiers. Extrayez le fichier zip dans le dossier que vous avez créé à l’étape 2.
- Ouvrez le menu Démarrer et tapez « environnement », la première chose qui apparaît devrait être l’option Modifier les variables d’environnement système. Cliquez dessus et vous devriez voir cette fenêtre.

5. Cliquez sur Variables d’environnement… en bas et vous verrez ceci :

6. Sous la section inférieure où il est indiqué Variables système, trouvez celle appelée Path et cliquez sur Modifier. Vous verrez alors une liste des emplacements où trouver les binaires dont Windows pourrait avoir besoin pour une raison quelconque.
7. Cliquez sur Nouveau et ajoutez le chemin du dossier où se trouve terraform.exe en bas de la liste. Ça devrait ressembler à ceci une fois terminé.

8. Cliquez sur OK sur chacun des menus que vous avez ouverts jusqu’à ce qu’il n’y en ait plus.
9. Pour vous assurer que Windows détecte le nouveau chemin, ouvrez une nouvelle invite de commande PowerShell et saisissez refreshenv
.
10. Vérifiez que l’installation a été réussie en entrant terraform --version
. S’il renvoie une version, vous êtes prêt à partir.
La méthode facile
Ouf, c’était beaucoup de travail ! Ce serait terrible de devoir le faire à chaque fois que vous devez installer un nouveau logiciel sur votre appareil. Utilisons plutôt un gestionnaire de packages. Il existe quelques gestionnaires de packages que vous pouvez utiliser pour installer Terraform sur Windows. Pour Windows, mon préféré est Chocolatey. Il rend l’installation, la suppression et la mise à jour des logiciels aussi simples qu’une commande d’une seule ligne, et Terraform ne fait pas exception à cela.
Pour installer Terraform avec Chocolatey, suivez les étapes suivantes :
- Ouvrez une invite de commande ou une invite PowerShell en tant qu’administrateur et installez Chocolatey à l’aide de la commande de leur page d’installation.
- Une fois cela terminé, exécutez
choco install terraform
. Si vous le souhaitez, vous pouvez également ajouter-y
à la fin pour accepter automatiquement l’installation sur votre appareil.
Après l’exécution de cette commande, vous obtiendrez quelque chose comme ceci :
3. Vérifiez que l’installation s’est déroulée avec succès en saisissant terraform --version
.
La méthode Linux
I can almost hear what you’re thinking. Wait a minute Chris, didn’t you say this was going to cover installing Terraform on Windows?
Oui, et elle l’est toujours. Mais l’une des fonctionnalités de Windows 10 est le sous-système Windows pour Linux, ou WSL. Cela vous permet d’exécuter des commandes Linux sur Windows.
- Installez WSL. Je ne vais pas expliquer ici comment installer et configurer WSL, mais si vous souhaitez suivre et que vous ne l’avez pas déjà configuré. Une vidéo TechSnips que j’ai réalisée sur ce sujet est disponible ci-dessous.
2. Dans votre shell WSL, exécutez la commande apt-get install unzip
. Vous en aurez besoin pour extraire les binaires Terraform ultérieurement.
3. Téléchargez Terraform en exécutant la commande wget https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip
. N’oubliez pas de remplacer la version et l’architecture par celle qui correspond le mieux à votre appareil. Vous pouvez trouver la liste complète des versions de Terraform ici.
4. Exécutez unzip terraform_0.12.6_linux_amd64.zip terraform
pour décompresser le contenu du fichier zip dans un dossier appelé terraform.
5. Une fois le fichier ZIP décompressé, vous devrez le déplacer quelque part accessible par le chemin système. Heureusement, Linux dispose d’un dossier auquel les utilisateurs peuvent ajouter des binaires par défaut. Déplacez le binaire Terraform là-bas en exécutant mv terraform /usr/local/bin/
. Le dossier /usr/local/bin est déjà défini dans votre chemin système.
6. Vérifiez que l’installation a réussi en exécutant terraform --version
.
Automatisation d’une instance EC2 Terraform AWS
Maintenant que vous avez installé Terraform, vous pouvez commencer à l’utiliser. Dans cet article, je vais démontrer la construction d’une instance EC2 Terraform AWS simple. Mais sachez que Terraform peut provisionner des centaines de types d’infrastructure différents.
Pour commencer, vous aurez d’abord besoin d’un répertoire pour exécuter les scripts EC2 Terraform à partir. Il est important d’avoir un répertoire séparé pour chaque environnement. Au moment où j’écris ceci, Terraform n’a pas de moyen de filtrer ce qu’il exécute. Il exécutera chaque script dans votre répertoire de travail actuel.
Configuration d’un script TF
- Dans votre invite de commande ou console PowerShell exécutée en tant qu’administrateur, exécutez
mkdir hello-terraform
puiscd ./hello-terraform
- Une fois que vous avez un répertoire, vous aurez besoin d’un script Terraform. Voici un exemple que vous pouvez utiliser. Il s’agit d’un script Terraform typique utilisant le fournisseur AWS pour créer une instance AWS ressource.
Si vous souhaitez l’intégralité du script, copiez-le ci-dessous. Si vous voulez comprendre ce que fait ce script, continuez à lire en dessous.
# Terraform HCL
3. Enregistrez le script ci-dessus sous le nom de main.tf
dans votre répertoire de travail.
Comprendre les scripts TF
Avant de continuer, regardez le bloc ci-dessous et ce qu’il déclare.
#Terraform HCL
Ce bloc indique à Terraform EC2 quel fournisseur utiliser. Il existe des fournisseurs pour tous les principaux fournisseurs de cloud, ainsi que pour certains fournisseurs sur site. Si vous êtes plus avancé et que vous savez comment écrire du Golang, vous pouvez également écrire votre propre fournisseur.
Ce bloc indique à Terraform d’utiliser le fournisseur AWS et les clés d’accès dans le fichier ~/.aws/credentials
sous le nom de profil default
. Ce fichier est créé lorsque vous configurez l’AWS CLI avec la commande aws config
comme indiqué dans les prérequis.
Il est également intéressant de noter que ~/
est une abréviation pour le répertoire de l’utilisateur actuel. Si vous venez d’un environnement Windows, cela équivaut à $env:USERPROFILE
ou %USERPROFILE%
. Mais Terraform ne prend pas en charge cette notation au moment de la rédaction.
Le bloc suivant décrit une instance EC2 Terraform et comment la construire. Si vous regardez la documentation Terraform pour aws_instance, vous verrez que certains paramètres sont obligatoires et d’autres sont facultatifs. Dans ce cas, les paramètres obligatoires sont l’ID de l’AMI (ami-07d0cf3af28718ef8
) pour Ubuntu 18.04 LTS et t2.micro
pour le type d’instance.
En passant un bloc de balises avec la clé Name
et la valeur HelloTerraform
, cette balise sera également attribuée à l’instance créée. C’est facultatif.
#Terraform HCL
Maintenant que le script est configuré, appelez-le en exécutant terraform init
depuis votre répertoire de travail. Cela téléchargera toutes les dépendances et le fournisseur dans un dossier nommé .terraform
. Si tout se passe bien, vous devriez obtenir quelque chose comme ceci :
Avant d’apporter des modifications, Terraform EC2 vous permet de voir ce qui sera créé en exécutant terraform plan
. Voici ce que cela affichera :
# aws_instance.ubuntu sera créé
Construction de l’instance AWS EC2 : Création
Maintenant, vous êtes prêt à l’exécuter vous-même en exécutant terraform apply
. Vous verrez ci-dessous une sortie similaire à terraform plan
, mais avec une invitation supplémentaire pour confirmer que vous souhaitez réellement appliquer ces modifications.
Une fois que vous avez saisi « oui », Terraform EC2 commencera à provisionner l’instance Terraform EC2 en appelant les APIs AWS avec la clé d’accès de votre fichier de credentials. Cela peut prendre un certain temps. Une fois terminé, vous verrez quelque chose comme ci-dessous :
Destruction de l’instance AWS EC2
Une fois que vous avez terminé avec l’environnement de test, vous pouvez détruire l’instance.
Dans votre console cmd/PowerShell, tapez terraform destroy
. Comme la commande apply
, vous verrez une liste des ressources que Terraform va détruire, puis une invite avant de les détruire réellement.
Une fois que vous avez saisi oui, Terraform EC2 commencera à détruire l’instance et confirmera quand elle sera terminée.