This article is available in French.
1. Le pipeline type #
Plan à la demande de fusion, apply à la fusion.
Étapes #
name: terraform
on: { pull_request: {}, push: { branches: [main] } }
permissions: { id-token: write, contents: read, pull-requests: write }
jobs:
terraform:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
- uses: aws-actions/configure-aws-credentials@v4
with: { role-to-assume: "arn:aws:iam::123456789012:role/ci-terraform", aws-region: eu-west-3 }
- run: terraform init -input=false
- run: terraform fmt -check && terraform validate && terraform test
- run: terraform plan -input=false -out=plan.tfplan
- if: github.ref == 'refs/heads/main'
run: terraform apply -input=false plan.tfplan2. Identités fédérées #
Aucun secret dans la CI.
OIDC #
Le fournisseur de CI délivre un jeton OIDC ; le cloud l'échange contre des identifiants temporaires d'un rôle restreint (rôle IAM AWS, identité fédérée Azure, Workload Identity Federation Google).
Bonne Pratique : Séparez les rôles : lecture seule pour le plan sur les demandes de fusion, écriture pour l'apply sur la branche principale.
3. Outils dédiés #
Atlantis, HCP Terraform, dérive.
Panorama #
| Outil | Apport |
|---|---|
| Atlantis | plan et apply pilotés par commentaires de demande de fusion |
| HCP Terraform | Exécutions distantes, politiques Sentinel/OPA, estimation des coûts |
| Infracost | Coût du changement affiché dans la demande de fusion |
| Détection de dérive | plan -refresh-only planifié chaque nuit, alerte si différence |
My progress
Sign in to track your progress and take notes. Sign in
Recommended Articles
Bonnes pratiques Terraform : structure, état, sécurité, revue et maintenance
Les bonnes pratiques Terraform en équipe : structure des dépôts, nommage, versions épinglées, éta...
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,...
Terraform : principes, architecture et flux de travail
Comprendre Terraform : infrastructure as code déclarative, architecture (cœur, fournisseurs, état...
L'état Terraform : backends distants, verrouillage, import et refactorisation
Gérer l'état Terraform : rôle du fichier d'état, données sensibles, backends distants (S3, azurer...
Tester et sécuriser Terraform : validate, terraform test, tflint, Checkov et politiques
Garantir la qualité du code Terraform : fmt et validate, tests natifs terraform test avec fournis...
Préparer la certification HashiCorp Certified: Terraform Associate
Guide de préparation au Terraform Associate : format, objectifs officiels (concepts de l'IaC, flu...
Les modules Terraform : concevoir, versionner et réutiliser
Structurer Terraform avec des modules : module racine et modules enfants, entrées et sorties, sou...
Terraform multi-environnements, workspaces et organisation des dépôts
Organiser Terraform pour plusieurs environnements : dossiers par environnement, fichiers tfvars, ...
Terraform sur plusieurs clouds : AWS, Azure, Google Cloud, OVHcloud et Kubernetes
Utiliser Terraform avec les principaux fournisseurs : aws, azurerm, google, ovh et openstack, kub...