%title: Terraform %author: Hubert # Terraform : modules - introduction
* modules : regroupement de fichiers tf avec une cohérence en matière de resources
* module terraform = rôle ansible
* registry : https://registry.terraform.io/
* module = répertoire(s) + fichier(s) tf ---------------------------------------------------------------------------- # Terraform : modules - introduction
* utilisation d'un module ``` module "monmodule" { source = "./rep_module" } ```
* principe d'héritage du provider * par défaut celui du fichier dans lequel il est appelé * prossibilité de préciser le provider
* possiblité d'instancier plusieurs fois un même module ``` module "instance1" { source = "./rep_module" } module "instance2" { source = "./rep_module" } ``` ---------------------------------------------------------------------------- # Terraform : modules - introduction
* structure d'un module ``` ├── README.md ├── main.tf ├── variables.tf ├── outputs.tf ``` * plus poussé ``` ├── README.md ├── main.tf ├── variables.tf ├── outputs.tf ├── ... ├── modules/ │ ├── nestedA/ │ │ ├── README.md │ │ ├── variables.tf │ │ ├── main.tf │ │ ├── outputs.tf │ ├── nestedB/ │ ├── .../ ├── examples/ │ ├── exampleA/ │ │ ├── main.tf │ ├── exampleB/ │ ├── .../ ``` ---------------------------------------------------------------------------- # Terraform : modules - introduction
* installation d'un module ``` terraform get terraform init ```
* peut permettre de gérer la gestion de dépendances ``` terraform apply -target=module.docker terraform apply -target=module.postgres ``` Remarque : ou via les variables
* problématique de la vidéo précédente cf pb de dépendance d'installation de docker avant de jouer le provider docker