RousselTMLEARNING

Article · Terraform: from discovery to expertise

Terraform in CI/CD

This article is available in French.

1. Le pipeline type #

Plan à la demande de fusion, apply à la fusion.

Étapes #

Pipeline Terraform
Appliquer exactement le plan relu évite les surprises.
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.tfplan

2. 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 #

OutilApport
Atlantisplan et apply pilotés par commentaires de demande de fusion
HCP TerraformExécutions distantes, politiques Sentinel/OPA, estimation des coûts
InfracostCoût du changement affiché dans la demande de fusion
Détection de dériveplan -refresh-only planifié chaque nuit, alerte si différence

📄 Terraform en CI/CD : pipelines, revue du plan, OIDC et GitOps →

My progress

  • ⏱ Estimated time : ≈ 5 min

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

💬 Ask a question

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...

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!