Terraform-3 Configuration du projet ⚙️

Objectifs:
🎯 générer un service account GCP pour nos projets terraform.
🎯 invoquer le service account dans un projet terraform.

Prérequis:
💡 connaître ubuntu, windows.
💡 connaître docker.


logo de terraform, outil devops d'autimatisation du déploiement de ressources.

Dans ce chapitre nous allons préparer notre projet terraform.
Nous voulons déployer une vm sur GCP.

Schema d'infra du déploiement réalisé lors du chapitre. Nous avons donc besoin d'avoir un service account avec les permissions de création et de suppression pour le service compute engine. Puis nous devons nous assurer que l'api compute engine est activée sur le projet GCP que nous allons cibler. Pour plus de détails, consultez mes rubriques GCP.

Une fois que vous avez généré sur GCP un service account, que vous lui avez donné les permissions de création et suppression pour le service compute engine. Téléchargez sa clé json puis nous passerons en revue les fichiers et dossiers composants notre projet terraform.

Résultat de la commande ls.

1) Explication de main.tf

Résultat de la commande d'affichage dans le terminal du fichier main.tf.

* syntax is
   'provider "$provider_name"'.
   'resource "$infra_component_name" "$resource_name_thgrough_apply"'.
   'module' "$module_name".

* 1) Utilisation du provider google, on déclare le chemin vers le service account à utiliser.
* 2) Nous configurons le projet gcp dans lequel nous allons créer/supprimer nos ressources.
* 3) Nous activons l'api pour le service compute engine.
* 4) Nous appelons le module vm.

* J'ai mis en commentaire les étapes 2) et 3) parce que je n'en ai pas besoin. je suis sur ma console GCP. je n'ai pas besoin de spécifier un projet. De plus l'api compute engine est déjà activée sur mon projet actuel.

2) Gestion des variables.

Résultat de la commande d'affichage dans le terminal du fichier variables.tf.

* Il est possible de déclarer les variables dans main.tf mais il est préférable de le faire dans variables.tf".
* Vous pouvez ensuite les utiliser dans les scripts .tf avec la syntaxe 'var.$var_name'.

* Le provider et les variables sont héritées par les dossiers enfants (modules) .
* Si vous déclarez les variables sans valeur par défaut il faudra passer les valeurs au moment de l'exécution.
   soit en utilisant terraform apply avec l'argument '-var $variable_name="value"'
   soit en lui donnant une valeur dans un fichier terraform.tfvars ou terraform.tfvars.json

* Ne pas mettre de secrets/clés en valeur par défaut.
* Sur git inclure terraform.tfvars or terraform.tfvars.json dans gitignore pour ne pas partager les valeurs de vos vars.

3) Initialisation du projet.

terraform init;


Résultat de la commande terraform init.


Conclusion:
Une fois la commande terraform init bien passée, nous pouvons nous concentrer sur le module vm puis l'exécution du projet. Rendez-vous dans le chapitre Terraform-4: Modules.