RousselTMLEARNING

Automatisation

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

Automatiser Terraform : pipeline plan sur demande de fusion et apply après approbation, publication du plan en commentaire, identités fédérées OIDC vers AWS, Azure et Google Cloud, Atlantis, HCP Terraform et détection de dérive planifiée.

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

Articles liés

Terraform : principes, architecture et flux de travail

Comprendre Terraform : infrastructure as code déclarative, architecture (cœur, fournisseurs, état), flux init…

Le langage HCL : ressources, variables, sorties, données et expressions

Écrire du Terraform : blocs terraform, provider, resource et data, variables typées avec validation, locals, …

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, azurerm, gcs, HCP …

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !