Introduction
Dans Terraform, les valeurs de sortie (outputs) permettent d'exposer des données significatives sur vos ressources une fois qu'elles ont été déployées. Elles fonctionnent comme les valeurs de retour d'un module Terraform et peuvent être utilisées pour interroger facilement des informations telles que l'adresse IP d'un serveur, une chaîne de connexion à une base de données ou un chemin de fichier. Cela rend ces informations facilement accessibles depuis la ligne de commande et permet à d'autres configurations Terraform de les exploiter.
Dans ce laboratoire, vous apprendrez à définir, appliquer et visualiser ces valeurs de sortie. Nous commencerons par une configuration Terraform de base qui crée un fichier local, puis nous ajouterons un bloc de sortie pour exposer le chemin d'accès de ce fichier.
Créer le fichier outputs.tf pour les définitions de sortie
Dans cette étape, nous allons créer un fichier dédié à nos définitions de sortie. Bien que vous puissiez placer des blocs de sortie dans n'importe quel fichier .tf, il est d'usage et recommandé de les regrouper dans un fichier séparé nommé outputs.tf. Cela permet de garder votre configuration organisée et de retrouver facilement toutes les sorties de votre projet.
Tout votre travail s'effectuera dans le répertoire ~/project, qui est le répertoire par défaut de votre terminal.
Tout d'abord, vérifions le fichier main.tf qui a été pré-créé pour vous.
ls -l
Vous devriez voir le fichier main.tf ainsi qu'un répertoire .terraform.
total 4
-rw-rw-r-- 1 labex labex 279 Oct 15 12:39 main.tf
Maintenant, créez le fichier outputs.tf en utilisant la commande touch.
touch outputs.tf
Cette commande crée un fichier vide nommé outputs.tf dans le répertoire courant. Vous pouvez vérifier sa création en listant à nouveau les fichiers.
ls -l
Vous verrez désormais outputs.tf dans la liste des fichiers.
total 4
-rw-rw-r-- 1 labex labex 279 Oct 15 12:39 main.tf
-rw-rw-r-- 1 labex labex 0 Oct 15 12:39 outputs.tf
Définir une sortie pour le nom de fichier local_file
Dans cette étape, vous allez définir un bloc de sortie dans le fichier outputs.tf. Un bloc de sortie déclare une valeur de sortie unique pour votre configuration Terraform.
La syntaxe de base d'un bloc de sortie est la suivante :
output "NAME" {
## Les arguments vont ici
}
Ici, NAME est une chaîne de caractères qui donne un nom à la sortie, que vous utiliserez plus tard pour interroger sa valeur.
Ouvrons le fichier outputs.tf avec l'éditeur nano et ajoutons notre premier bloc de sortie.
nano outputs.tf
Ajoutez maintenant le code suivant dans le fichier. Nous nommerons notre sortie file_path.
output "file_path" {
}
Après avoir ajouté le code, enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, puis Y, et enfin Enter.
Ce bloc ne fait pas grand-chose pour l'instant, car il lui manque l'argument value. Nous l'ajouterons à l'étape suivante.
Référencer un attribut de ressource dans le bloc de sortie
Dans cette étape, nous allons rendre notre sortie utile en lui indiquant quelle valeur afficher. Cela se fait via l'argument value à l'intérieur du bloc de sortie. La valeur est généralement une référence à un attribut d'une ressource définie dans votre configuration.
La syntaxe pour référencer un attribut de ressource est <RESOURCE_TYPE>.<RESOURCE_NAME>.<ATTRIBUTE>.
Dans notre fichier main.tf, nous avons une ressource définie comme suit :
resource "local_file" "example" {
## ...
}
La ressource local_file possède un attribut appelé filename, qui contient le chemin vers le fichier qu'elle gère. Pour référencer cet attribut, nous utilisons local_file.example.filename.
Ajoutons cette référence à notre bloc de sortie. Ouvrez à nouveau outputs.tf avec nano.
nano outputs.tf
Modifiez le fichier pour inclure l'argument value comme indiqué ci-dessous :
output "file_path" {
value = local_file.example.filename
}
Cela indique à Terraform que la sortie file_path doit avoir pour valeur l'attribut filename de la ressource local_file nommée example.
Enregistrez le fichier et quittez nano en appuyant sur Ctrl+X, Y, et Enter.
Exécuter terraform apply pour mettre à jour la configuration
Dans cette étape, vous allez appliquer les changements de configuration. Chaque fois que vous ajoutez, supprimez ou modifiez des sorties, vous devez exécuter terraform apply pour que Terraform prenne en compte les changements et mette à jour le fichier d'état (state file). C'est dans ce fichier d'état que Terraform stocke les valeurs de vos sorties.
Exécutez la commande terraform apply dans votre terminal.
terraform apply
Terraform vous montrera d'abord un plan d'exécution. Il détectera que vous avez ajouté une sortie et prévoira de l'ajouter. Comme la ressource local_file n'existe pas encore, il prévoira également de la créer.
Vous serez invité à confirmer l'action. Tapez yes et appuyez sur Enter.
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
## local_file.example will be created
+ resource "local_file" "example" {
+ content = "This is an example file managed by Terraform."
+ content_base64sha256 = (known after apply)
+ content_base64sha512 = (known after apply)
+ content_md5 = (known after apply)
+ content_sha1 = (known after apply)
+ content_sha256 = (known after apply)
+ content_sha512 = (known after apply)
+ directory_permission = "0777"
+ file_permission = "0777"
+ filename = "./example.txt"
+ id = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ file_path = "./example.txt"
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
local_file.example: Creating...
local_file.example: Creation complete after 0s [id=ec3adcab998872def2df6200fb03992ac6f237a4]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Outputs:
file_path = "./example.txt"
Comme vous pouvez le constater dans la sortie, l'application a réussi et Terraform affiche désormais la sortie file_path avec sa valeur.
Exécuter terraform output pour visualiser le nom de fichier
Dans cette étape, vous utiliserez la commande terraform output pour visualiser les valeurs de sortie depuis votre fichier d'état. C'est utile pour récupérer des informations sur votre infrastructure sans avoir à analyser manuellement le fichier d'état ou à relancer terraform apply.
Pour voir toutes les sorties définies dans votre configuration, exécutez simplement la commande sans argument.
terraform output
Cela affichera toutes les sorties dans un format lisible par l'homme.
file_path = "./example.txt"
Vous pouvez également interroger une valeur de sortie spécifique en fournissant son nom en tant qu'argument. Cela est utile dans les scripts ou lorsque vous n'avez besoin que d'une seule information.
terraform output file_path
Cette commande affichera uniquement la valeur brute de la sortie spécifiée.
"./example.txt"
Cela facilite l'utilisation de la sortie dans des scripts shell, par exemple en l'assignant à une variable : FILE=$(terraform output -raw file_path). L'option -raw supprime les guillemets.
Résumé
Félicitations pour avoir terminé ce laboratoire !
Dans ce laboratoire, vous avez appris les fondamentaux de la gestion des sorties dans Terraform. Vous avez réussi à :
- Organiser votre configuration en créant un fichier
outputs.tfdédié. - Définir un bloc
outputpour déclarer une valeur de sortie. - Référencer un attribut de ressource dans un bloc de sortie pour exposer sa valeur.
- Appliquer la configuration en utilisant
terraform applypour rendre la sortie disponible. - Interroger la valeur de sortie depuis la ligne de commande en utilisant
terraform output.
Les sorties Terraform sont une fonctionnalité puissante pour extraire des informations importantes de votre infrastructure et intégrer vos flux de travail Terraform avec d'autres outils et scripts.



