This article is available in French.
1. Principe #
Des briques réutilisables.
Structure #
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 #
| Source | Exemple |
|---|---|
| Dossier local | ./modules/app |
| Registre public | terraform-aws-modules/vpc/aws + version |
| Git | git::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.
My progress
Sign in to track your progress and take notes. Sign in
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...