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.
Dans ce chapitre nous allons préparer notre projet terraform.
Nous voulons déployer une vm sur GCP.
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.
1) Explication de 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.
* 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.
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.