Gérer votre infrastructure en tant que code avec Terraform

Publié le 7 juillet 2025

Infrastructure
IaC

Terraform est un outil Open Source de HashiCorp qui permet de définir, fournir et gérer l’infrastructure via des fichiers de configuration déclaratifs. En adoptant Infrastructure as Code (IaC), vous pouvez versionner, réutiliser et automatiser le provisionnement de ressources cloud et on-premise.

Prérequis

  • Un compte sur un provider cloud (AWS, GCP, Azure…)
  • Terraform installé (version ≥ 1.5)
  • Accès API (clé et secret) configuré pour votre provider
  • Un éditeur de texte supportant HCL (Visual Studio Code, Vim…)

Installation de Terraform

1. Téléchargement de l’archive officielle

wget https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_linux_amd64.zip
unzip terraform_1.5.7_linux_amd64.zip
sudo mv terraform /usr/local/bin/

2. Vérification de l’installation

terraform version

Vous devriez voir :

Terraform v1.5.7
on linux_amd64

Écriture de votre premier fichier de configuration

Créez un fichier main.tf pour provisionner une instance EC2 sur AWS :

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
  required_version = ">= 1.5"
}

provider "aws" {
  region     = "eu-west-3"
  access_key = var.aws_access_key
  secret_key = var.aws_secret_key
}

resource "aws_instance" "web" {
  ami           = "ami-0abcdef1234567890"
  instance_type = "t3.micro"

  tags = {
    Name = "Terraform-Web"
  }
}

variable "aws_access_key" {}
variable "aws_secret_key" {}

Workflow Terraform

  1. terraform init : initialise le projet et télécharge les providers.
  2. terraform plan : prévisualise les changements.
  3. terraform apply : applique la configuration.
  4. terraform destroy : détruit l’infrastructure provisionnée.

Modules et réutilisation

  • Créez des modules pour regrouper des ressources :
    modules/
    └── ec2-instance/
        ├── main.tf
        ├── variables.tf
        └── outputs.tf
    
  • Utilisez les modules via :
    module "web" {
      source = "./modules/ec2-instance"
      aws_access_key = var.aws_access_key
      aws_secret_key = var.aws_secret_key
    }
    

Bonnes pratiques

  1. Versionnez vos fichiers .tf dans Git.
  2. Stockez l’état (.tfstate) de manière sécurisée (backend S3, GCS…).
  3. Séparez les environnements (dev, staging, prod) par workspaces ou backends.
  4. Validez votre configuration avec terraform validate.
  5. Automatisez les runs via CI/CD (GitHub Actions, GitLab CI…).

Avantages clés

  • Déclaratif : décrivez l’infrastructure souhaitée, Terraform s’occupe du reste
  • Provider-agnostic : fonctionnel sur AWS, Azure, GCP, VMware…
  • Planification : aperçu des changements avant exécution
  • Communauté : nombreux modules disponibles sur Terraform Registry

Conclusion

Terraform simplifie la gestion de l’infrastructure en la traitant comme du code. Grâce à son workflow clair et à sa modularité, il devient un allié essentiel pour les équipes DevOps souhaitant fiabiliser et automatiser leurs déploiements.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser