Initialisation de Projet Terraform

LinuxBeginner
Pratiquer maintenant

Introduction

Terraform est un outil populaire d'Infrastructure as Code (IaC) open-source créé par HashiCorp. Il vous permet de définir et de provisionner des ressources d'infrastructure en utilisant un langage de configuration déclaratif.

La première commande que vous exécuterez dans tout nouveau projet Terraform est terraform init. Cette commande est cruciale car elle prépare votre répertoire de travail à être utilisé avec Terraform. Elle effectue plusieurs actions clés :

  • Initialisation du Backend : Configure le stockage de l'état (state storage backend).
  • Installation des Plugins de Fournisseur (Provider Plugins) : Analyse vos fichiers de configuration, détermine quels fournisseurs sont nécessaires et les télécharge depuis le Terraform Registry.
  • Installation des Modules : Télécharge tous les modules référencés dans votre configuration.

Dans ce laboratoire, vous apprendrez le processus fondamental d'initialisation d'un nouveau projet Terraform. Vous créerez un répertoire de projet, définirez un fichier de configuration simple et utiliserez terraform init pour télécharger le plugin de fournisseur requis.

Créer un nouveau répertoire pour le projet Terraform

Dans cette étape, vous allez créer un répertoire dédié à votre nouveau projet Terraform. Il est recommandé de conserver chaque projet Terraform dans son propre répertoire pour éviter les conflits et maintenir les configurations organisées. Toutes vos opérations se dérouleront dans le répertoire ~/project.

Tout d'abord, créez un nouveau répertoire nommé terraform-init-lab.

mkdir terraform-init-lab

Ensuite, naviguez vers le répertoire nouvellement créé. Ce sera votre répertoire de travail pour le reste du laboratoire.

cd terraform-init-lab

Votre invite de terminal devrait maintenant indiquer que vous êtes à l'intérieur du répertoire ~/project/terraform-init-lab.

Créer le fichier main.tf dans le répertoire du projet

Dans cette étape, vous allez créer le fichier de configuration principal pour votre projet. Les fichiers de configuration Terraform utilisent l'extension .tf et sont écrits en HashiCorp Configuration Language (HCL). Par convention, le fichier de configuration principal est souvent nommé main.tf.

Depuis votre répertoire terraform-init-lab, créez un fichier vide nommé main.tf en utilisant la commande touch.

touch main.tf

Vous pouvez vérifier que le fichier a été créé en listant le contenu du répertoire.

ls

Vous devriez voir le fichier main.tf dans la sortie.

main.tf

Définir la configuration du fournisseur local dans main.tf

Dans cette étape, vous allez ajouter du code de configuration à votre fichier main.tf. Ce code indiquera à Terraform quel fournisseur il doit télécharger et utiliser. Un fournisseur (provider) est un plugin qui permet à Terraform d'interagir avec une API spécifique, comme un fournisseur de cloud ou un service SaaS.

Pour ce laboratoire, nous utiliserons le fournisseur local, qui permet de gérer des fichiers locaux. C'est un excellent fournisseur pour l'apprentissage car il ne nécessite aucune information d'identification (credentials) de cloud.

Ouvrez le fichier main.tf en utilisant l'éditeur de texte nano.

nano main.tf

Maintenant, copiez et collez le bloc de code suivant dans l'éditeur nano. Ce bloc terraform spécifie les fournisseurs requis pour le projet.

terraform {
  required_providers {
    local = {
      source  = "hashicorp/local"
      version = "2.4.0"
    }
  }
}

Cette configuration indique à Terraform :

  • required_providers : Nous déclarons les fournisseurs dont ce projet a besoin.
  • local : Le nom local que nous donnons au fournisseur.
  • source : L'adresse globale du fournisseur dans le Terraform Registry, qui est hashicorp/local.
  • version : La version spécifique du fournisseur à utiliser.

Après avoir collé le code, enregistrez le fichier et quittez nano en appuyant sur Ctrl+O, puis Enter, et enfin Ctrl+X.

Exécuter terraform init pour initialiser le projet

Dans cette étape, vous allez exécuter la commande terraform init. Avec la configuration du fournisseur en place, Terraform sait maintenant ce qu'il doit faire pour initialiser le projet. Il lira le fichier main.tf, trouvera le bloc required_providers et téléchargera la version spécifiée du fournisseur hashicorp/local depuis le Terraform Registry.

Assurez-vous d'être toujours dans le répertoire terraform-init-lab, puis exécutez la commande d'initialisation.

terraform init

Vous verrez une sortie indiquant que Terraform initialise le backend et les plugins de fournisseur. Une initialisation réussie se terminera par un message de succès.

Initializing the backend...

Initializing provider plugins...
- Finding hashicorp/local versions matching "2.4.0"...
- Installing hashicorp/local v2.4.0...
- Installed hashicorp/local v2.4.0 (signed by HashiCorp)

Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Vérifier le répertoire .terraform pour les plugins téléchargés

Dans cette étape, vous allez vérifier que terraform init a bien téléchargé le plugin de fournisseur (provider). La commande crée un répertoire caché nommé .terraform dans votre dossier de projet pour stocker ces plugins et d'autres données d'initialisation.

Tout d'abord, listez tous les fichiers et répertoires, y compris les fichiers cachés, pour voir les nouveaux artefacts créés par la commande init.

ls -a

Vous devriez voir le répertoire .terraform et un fichier .terraform.lock.hcl dans la sortie. Le fichier de verrouillage (lock file) enregistre les versions des fournisseurs sélectionnées lors de l'initialisation.

.  ..  main.tf  .terraform  .terraform.lock.hcl

Maintenant, inspectons le contenu du répertoire .terraform pour voir le fournisseur téléchargé. Vous pouvez utiliser la commande tree pour une vue hiérarchique claire.

tree .terraform

La sortie affichera la structure de répertoire où le plugin de fournisseur est stocké. Vous pouvez voir le fichier exécutable pour le fournisseur local téléchargé depuis le registre (Registry).

.terraform
└── providers
    └── registry.terraform.io
        └── hashicorp
            └── local
                └── 2.4.0
                    └── linux_amd64
                        └── terraform-provider-local_v2.4.0_x5

6 directories, 1 file

Ceci confirme que terraform init a configuré avec succès votre projet avec le fournisseur nécessaire.

Résumé

Félicitations ! Vous avez terminé avec succès ce laboratoire sur l'initialisation de projet Terraform.

Dans ce laboratoire, vous avez appris les étapes initiales essentielles pour démarrer un nouveau projet Terraform. Vous avez pratiqué :

  • La création d'un répertoire dédié pour un projet Terraform.
  • La définition des fournisseurs requis (required providers) dans un fichier de configuration main.tf.
  • L'exécution de la commande terraform init pour préparer le projet.
  • La vérification que les plugins de fournisseur ont été téléchargés dans le répertoire .terraform.

Votre projet étant initialisé, vous êtes maintenant prêt à passer aux étapes suivantes du flux de travail (workflow) Terraform, telles que l'écriture des définitions de ressources et l'utilisation de terraform plan et terraform apply pour gérer votre infrastructure.