RousselTMLEARNING

Article · Terraform: from discovery to expertise

Modules

This article is available in French.

1. Principe #

Des briques réutilisables.

Structure #

Composition de modules
Un module = un dossier avec variables.tf, main.tf, outputs.tf et un README.
module "reseau" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 5.0"
  name    = "prod"
  cidr    = "10.0.0.0/16"
  azs             = ["eu-west-3a", "eu-west-3b"]
  private_subnets = ["10.0.11.0/24", "10.0.12.0/24"]
  public_subnets  = ["10.0.1.0/24", "10.0.2.0/24"]
}

module "app" {
  source     = "./modules/app"
  subnet_ids = module.reseau.private_subnets
}

2. Sources et versions #

D'où viennent les modules.

Sources #

SourceExemple
Dossier local./modules/app
Registre publicterraform-aws-modules/vpc/aws + version
Gitgit::https://git.exemple.fr/modules/app.git?ref=v1.4.0
Registre privéapp.terraform.io/acme/app/aws

Règle #

Bonne Pratique : Épinglez toujours une version (ou une étiquette Git) : un module qui change sous vos pieds rend les plans imprévisibles.

3. Bien concevoir #

Des modules utiles.

Règles #

  • Un module = une responsabilité (réseau, base, application), pas une simple enveloppe d'une ressource.
  • Variables typées, documentées, avec validations et valeurs par défaut sûres.
  • Sorties pour tout ce dont les autres modules ont besoin.
  • Exemples et tests (terraform test) dans le dépôt du module.
  • Versionnage sémantique et journal des changements.

📄 Les modules Terraform : concevoir, versionner et réutiliser →

My progress

  • ⏱ Estimated time : ≈ 4 min

Sign in to track your progress and take notes. Sign in

💬 Ask a question

Recommended Articles

Infrastructure as Code et GitOps : Terraform, Ansible et Argo CD

Gérer l'infrastructure comme du code : déclaratif ou impératif, Terraform (providers, état, plan,...

Infrastructure as Code sur Azure : Bicep, Terraform, Cost Management et Well-Architected

Décrire et déployer Azure en code avec Bicep (modules, paramètres, what-if, déploiements par pipe...

Infrastructure as Code sur AWS : CloudFormation, CDK, Terraform et Well-Architected

Décrire et déployer son infrastructure AWS en code avec CloudFormation, le CDK ou Terraform, auto...

Automatisation et infrastructure as code pour Elasticsearch : API, Terraform, Ansible et CI/CD

Automatiser l'administration d'Elasticsearch : API REST et clients, fournisseur Terraform elastic...

Exploiter Google Cloud : observabilité, sécurité, infrastructure as code et coûts

Exploiter Google Cloud : Cloud Monitoring, Cloud Logging et Cloud Trace (Google Cloud Observabili...

Ansible : gérer son infrastructure avec des playbooks (Infrastructure as Code)

Écrire des playbooks de production : structure d'un projet, plays, handlers, tags, strategy seria...

Exploiter OVHcloud : Terraform, supervision, sécurité, coûts et souveraineté

Exploiter OVHcloud en production : infrastructure as code avec les fournisseurs Terraform ovh et ...

Bonnes pratiques DevOps : culture, CI/CD, infrastructure as code et mesure

Bonnes pratiques DevOps : culture et collaboration, intégration et livraison continues, trunk-bas...

Monitors, SLO, dashboards et Datadog as code

Créer des monitors efficaces (métriques, logs, APM, composites, anomalies), des SLO, des dashboar...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!