Terraform est un framework pour créer et configurer une infrastructure en tant que code, avec une interface de ligne de commande et un langage DSL. Terraform peut gérer des fournisseurs de services existants et populaires ainsi que des solutions internes personnalisées pour créer et configurer des centres de données distribués complets.
L'interface de ligne de commande (CLI) Terraform vous permet d'utiliser Terraform sans avoir à écrire de code ou de fichiers de configuration. C'est un moyen idéal de prototyper les changements d'infrastructure avec votre équipe avant d'écrire du code, de déployer des configurations localement sur votre machine ou de les mettre en production. La CLI s'appuie sur le format de fichier terraformspec qui a été créé à cette fin par des tiers tels que HashiCorp Nomad CLI Toolkit.
La boîte à outils CLI implémente un DSL JavaScript pour définir l'infrastructure et utilise le même format de configuration dans Terraform et dans la CLI. La boîte à outils CLI fournit également des commandes pour générer des modèles d'infrastructure, composer des composants d'infrastructure en solutions complètes et gérer les modifications. L'ensemble du flux de travail Terraform est piloté par des fonctions sans état qui sont définies dans le code et exécutées par Terraform chaque fois que vous apportez une modification. Cela vous permet de considérer votre infrastructure comme une conception unique qui peut être facilement modifiée lors de l'exécution sans recharger votre configuration ni modifier votre base de code.
Un certain nombre de professionnels et d'entreprises informatiques utilisent l'interface de ligne de commande Terraform pour gérer et même créer de nouvelles infrastructures ou de nouvelles infrastructures cloud. L'interface de ligne de commande terraform peut fournir une méthode plus robuste pour automatiser les modifications qui prendraient trop de temps à effectuer à la main. C'est un outil puissant pour la gestion de l'infrastructure.
Il est facile de comprendre pourquoi Terraform est l'une des solutions de provisionnement cloud open source les plus populaires au monde. C'est un outil utilisé par les gens de Linux comme vous !
À l'intérieur, vous trouverez des explications complètes et des exemples des commandes CLI Terraform les plus courantes qui ont été spécialement sélectionnées pour vous donner une expérience pratique des fonctionnalités les plus puissantes de Terraform.
Prérequis
- Afin de suivre cet article, vous devez avoir :
- Une certaine connaissance de base des fonctionnalités et des fonctions de Terraform.
- Une machine Linux. Cette démo utilise Ubuntu 20.04 LTS, mais n'importe quelle distribution Linux fonctionnera.
- Terraform et docker installés sur la machine.
Cloner le code principal
Maintenant que vous avez pris soin des prérequis, vous êtes prêt à commencer à cloner le code principal pour utiliser la CLI Terraform.
1. Exécutez la commande apt install ci-dessous pour installer git sur votre système. Git est un système de contrôle de révision distribué open source conçu pour tout gérer, des petits aux très grands projets, avec rapidité et efficacité. Vous utiliserez git pour cloner le modèle de projet d'interface de ligne de commande terraform à partir de github.com. Ensuite, vous vérifierez la version correcte de la ligne de commande terraform pour cette démo.
sudo apt install git -y
2. Exécutez la commande git clone ci-dessous pour cloner le modèle de projet de ligne de commande terraform dans votre répertoire actuel.
git clone https://github.com/howtoforge-com/terraform-cli.git
3. Déplacez-vous dans le répertoire terraform-cli nouvellement cloné et ouvrez le fichier main.tf fichier avec votre éditeur de texte préféré (vim, emacs, nano, etc.). Un fichier main.tf est le point d'entrée de votre projet vers l'interface de ligne de commande terraform (Cli). Lorsque vous exécutez la commande terraform, elle utilise le main.tf fichier en entrée pour obtenir des instructions sur la façon de construire votre infrastructure.
cd terraform-cli && sudo nano main.tf
Vous obtiendrez la sortie suivante.
- La terraforme { } section du main.tf le fichier ne fait rien de plus que de définir le fournisseur docker comme un required_provider . Pour que Terraform puisse gérer votre infrastructure Docker, vous devez avoir configuré le fournisseur Docker.
- La ressource "docker_image" "nginx" { Le bloc de code illustre l'utilisation de la CLI terraform en créant une nouvelle ressource appelée docker_image . La ligne suivante utilise l'image docker pour créer une ressource appelée nginx . Vous pouvez en déduire que cela sera utilisé pour gérer votre conteneur Docker. La ligne suivante définit le nom de votre image docker comme nginx:latest. Le keep_locally =false empêche l'image d'être mise en cache localement sur votre ordinateur et est une bonne idée pour éviter les téléchargements en double.
- La ressource "docker_container" "nginx" { illustre l'utilisation de la CLI terraform en créant une nouvelle ressource appelée docker_container . La ligne suivante utilise le docker_container pour créer une ressource appelée nginx . Cela sera utilisé pour gérer le mappage des ports de votre conteneur Docker. La ligne suivante définit le nom de votre conteneur docker comme tutoriel et enfin, montre comment mapper le port 8000 et port 80 sur votre ordinateur hôte sur votre conteneur Docker à l'aide du bloc de ports.
Utilisation de l'interface de ligne de commande (CLI) Terraform pour créer votre première infrastructure
Maintenant que vous avez cloné le modèle de projet terraform, vous pouvez créer votre première infrastructure. Vous utiliserez la CLI Terraform pour construire une infrastructure en utilisant le fichier main.tf de votre projet dossier. Vous allez créer un conteneur Docker et mapper un port de votre machine hôte au conteneur Docker.
1. Tout d'abord, exécutez la commande terraform init pour initialiser votre répertoire de travail. La commande terraform init initialise votre répertoire de travail et télécharge tous les plug-ins nécessaires à Terraform pour gérer votre infrastructure. Un répertoire de travail est le répertoire dans lequel vous utiliserez la commande terraform pour gérer votre infrastructure. Une fois initialisé, ce répertoire contient un fichier main.tf et peut contenir plusieurs fichiers de support.
terraform init
Après avoir exécuté avec succès la commande terraform init, vous recevrez la sortie suivante.
2. Ensuite, exécutez la commande terraform fmt pour formater automatiquement votre fichier main.tf pour plus de lisibilité et de cohérence. La commande terraform fmt reformatera votre fichier main.tf pour plus de lisibilité et de cohérence. C'est une bonne pratique à suivre car cela rendra vos fichiers plus faciles à lire pour vous et les autres.
terraform fmt
Si la commande terraform fmt a modifié votre main.tf fichiers, il imprimera le nom du fichier qu'il a reformaté. Dans cette démo, la sortie est vide car le fichier main.tf a déjà été formaté selon les goûts de Terraform, comme indiqué ci-dessous.
3. Exécutez la commande terraform validate pour vous assurer que votre infrastructure sera construite comme prévu. La commande terraform validate est un contrôle de sécurité pour vérifier que votre infrastructure peut être construite comme prévu.
terraform validate
S'il n'y a pas d'erreurs, vous recevrez une sortie similaire à la suivante, indiquant que tout est prêt pour construire votre première infrastructure.
4. Exécutez la commande terraform plan pour voir ce que Terraform fera pour créer l'infrastructure. La commande terraform plan est un aperçu de ce que Terraform prévoit de construire et n'est pas la même que terraform s'applique.
terraform plan
La commande terraform plan génère la structure suivante, indiquant qu'elle créera une instance de la ressource docker_container nommée nginx et une ressource docker_image nommée tutorial.
5. Exécutez la commande terraform apply pour appliquer les modifications que vous avez prévisualisées avec le plan terraform. La commande terraform apply créera votre infrastructure. La commande terraform apply créera toutes les ressources décrites dans votre fichier de configuration Terraform main.tf.
Cette commande réutilisera l'évaluation des variables, des contraintes et des mappages de la commande terraform plan pour produire le plan le plus efficace possible. Toutes les options supplémentaires spécifiées sur la ligne de commande avec terraform apply seront utilisées lors de l'exécution de la commande apply. Entrez oui et appuyez sur Entrée lorsqu'on vous demande d'entrer une valeur .
terraform apply
Une fois la commande terraform apply réussie, vous verrez un message indiquant que votre infrastructure a été construite avec succès, comme indiqué ci-dessous. Lorsque cela se produit, cela signifie que votre infrastructure a été construite comme prévu et est à jour avec votre fichier de configuration.
6. Exécutez la commande ls pour répertorier tous les fichiers de votre répertoire de travail. Vous verrez un nouveau fichier nommé terraform.tfstate comme indiqué ci-dessous. Un fichier portant ce nom est créé pour suivre les modifications apportées à votre infrastructure. La commande terraform plan stocke les modifications qui seront appliquées lors de l'exécution de terraform apply dans un fichier intermédiaire nommé .tfstate. Le fichier d'état contient l'état complet de l'infrastructure telle que Terraform la voit. Ce fichier est nécessaire pour appliquer toute configuration et doit être transféré lors de modifications, même si la cible est au sein du même fournisseur.
ls
7. Le processus de construction est maintenant terminé. Exécutez la commande terraform destroy pour détruire l'infrastructure que vous venez de créer. Saisissez oui et appuyez sur Entrée lorsqu'on vous demande d'entrer une valeur . La commande terraform destroy supprimera toutes les ressources créées par cette démo. La commande terraform destroy supprimera toutes les ressources décrites dans votre Terraform main.tf fichier de configuration. Une fois les ressources détruites, elles ne peuvent plus être récupérées.
Vous devez supprimer les ressources inutilisées pour contrôler la configuration d'un environnement. Il ne s'agit pas de couvrir les échecs - il s'agit de prévenir les échecs en empêchant l'accumulation de ressources inutilisées.
terraform destroy
Conclusion
Dans ce didacticiel, vous avez appris à utiliser les concepts Terraform les plus courants illustrés dans un exemple pour créer votre première infrastructure. Vous avez appris à utiliser l'interface de ligne de commande Terraform pour créer une infrastructure à l'aide du fichier main.tf de votre projet. La CLI peut être utilisée pour planifier, appliquer et détruire votre infrastructure.
Vous avez maintenant les outils pour construire votre propre infrastructure. Vous pouvez gérer facilement un large éventail de ressources grâce au langage de configuration complet et expressif de Terraform.
Vous pouvez tirer parti de vos nouvelles connaissances en gestion d'infrastructure, déjà utilisées pour les conteneurs Docker, Kubernetes et OpenStack, pour apporter plus d'efficacité et de cohérence à votre pratique d'infrastructure en tant que code.