Terraform-4 Modules 👨🔬
Objectifs:
🎯 créer un module.
🎯 exécuter un projet.
Prérequis:
💡 connaître ubuntu, windows.
💡 connaître docker.
Pour faire suite au chapitre Terraform-3 Configuration du projet,
nous allons nous attarder sur l'utilisation des modules. Comme vu dans la présentation de terraform, les modules
permettent d'organiser des déploiements de manière logique.
1) Explication du module vm.
Le module vm permet de déployer une vm dans GCP dans un vpc que j'ai déjà déployé à l'aide de mon module network
(vous devrez donc en déployer un aussi que ce soit manuellement ou avec terraform).
* Même structure qu'un projet, seul main.tf est nécessaire.
* LICENSE permet de définir les règles de partage du module avec la communauté .
* variables.tf permet de surcharger les vars héritées du projet ou d'en déclarer de nouvelles.
* outputs.tf permet de définir des valeurs à afficher en console en fin d'exécution du module (ex: l'ip des instances créées)
2) Explication du main.tf.
* Je me suis aidé de la DOC
* Je définis les capacités et paramètres réseaux de ma vm.
* Encore une fois, mon vpc existe déjà.
3) Explication de variables.tf.
Dans le chapitre précédent je vous ai montré l'extrait du fichier variables.tf du projet.
Je vous invite à vous en inspirer pour définir dans le fichier variables.tf du module les variables utiles pour la création des instances.
4) Explication du outputs.tf.
Dans le module vm:
* Nous voulons afficher l'ip de notre instance haproxy une fois créée.
A la racine du projet:
* Nous voulons récupérer et afficher l'output ip du module vm (nommé hprox dans le main.tf du projet).
5) Initialisation du projet.
Retourner à la racine du projet puis lancer la commande suivante:
6) Visualisation de l'exécution.
* La commande nous résume les caractéristiques des ressources qui vont être créées
7) Exécution du projet.
* La vm a bien été créé sur GCP.
8) Explication du terraform .tfstate.
* Le bon déroulement de la commande apply génère 2 fichiers tfstate.
* Le terraform.tfstate est un json de tous les composants créés au dernier apply.
* Le terraform.tfstate.backup est l'état antérieur des ressources par rapport au dernier apply.
* En dev solo il suffit de conserver ce fichier en local, en dev en équipe il faudra partager ce fichier avec ses collègues
à l'aide d'un outil de versionning de code source.
9) Destruction des ressources.
* Suppression des ressources générées au dernier terraform apply
* Ma vm a bien été supprimé de mes instances GCP.
Conclusion:
Vous savez maintenant comment créer une vm. Un vpc étant nécessaire, si vous avez déployé le vôtre manuellement,
je vous invite à vous créer un module pour le faire et de modifier le projet actuel afin d'y intégrer votre module.
Pensez à vous inspirer de la doc officielle et des modules partagés par la communauté (et les utiliser). Amusez-vous bien.