Terraform est un outil d'infrastructure as code (IaC) développé par HashiCorp. Il permet de gérer et d'automatiser le déploiement d'infrastructures en utilisant une configuration déclarative. Il est compatible avec divers fournisseurs cloud tels qu'AWS, Azure, GCP, et d'autres services.
Terraform est un outil d'infrastructure as code (IaC) développé par HashiCorp. Il permet de gérer et d'automatiser le déploiement d'infrastructures en utilisant une configuration déclarative. Il est compatible avec divers fournisseurs cloud tels qu'AWS, Azure, GCP, et d'autres services.
Terraform permet de décrire l'infrastructure sous forme de code, facilitant la gestion, la répétabilité et la collaboration.
Les fichiers Terraform utilisent l'extension .tf et décrivent l'infrastructure sous forme de code en utilisant le langage HCL (HashiCorp Configuration Language).
Les providers sont des modules permettant d'interagir avec différentes plateformes cloud (AWS, Azure, GCP, etc.). Exemple de provider AWS :
provider "aws" { region = "us-east-1" }
Une ressource représente un composant d'infrastructure, comme une instance EC2, un bucket S3 ou une base de données.
resource "aws_instance" "example" { ami = "ami-12345678" instance_type = "t2.micro" }
Les variables permettent de rendre la configuration flexible.
variable "instance_type" { default = "t2.micro" }
Utilisation :
resource "aws_instance" "example" { ami = "ami-12345678" instance_type = var.instance_type }
Les outputs permettent d'afficher des informations aprÚs l'exécution de Terraform.
output "instance_ip" { value = aws_instance.example.public_ip }
Terraform maintient un fichier d'état (terraform.tfstate) pour suivre les ressources déployées et gérer les modifications.
sudo apt update && sudo apt install -y wget unzip wget https://releases.hashicorp.com/terraform/1.3.0/terraform_1.3.0_linux_amd64.zip unzip terraform_1.3.0_linux_amd64.zip sudo mv terraform /usr/local/bin/
brew tap hashicorp/tap brew install hashicorp/tap/terraform
Téléchargez Terraform depuis https://www.terraform.io/downloads.html et ajoutez-le au PATH.
terraform init
Cette commande télécharge les plugins nécessaires au provider spécifié.
terraform validate
Permet de vérifier si le fichier de configuration est valide.
terraform plan
Montre les modifications qui seront appliquĂ©es Ă lâinfrastructure.
terraform apply
Applique les changements et crĂ©e/modifie lâinfrastructure.
terraform destroy
Supprime toutes les ressources gérées par Terraform.
Les modules permettent de réutiliser des configurations Terraform pour organiser et simplifier les déploiements.
Dans un dossier modules/vm, créez un fichier main.tf :
resource "aws_instance" "example" { ami = "ami-12345678" instance_type = var.instance_type }
Ajoutez un fichier variables.tf :
variable "instance_type" {}
Dans votre projet principal, utilisez le module :
module "vm" { source = "./modules/vm" instance_type = "t2.micro" }
Terraform stocke son Ă©tat localement par dĂ©faut, mais peut ĂȘtre configurĂ© pour utiliser un backend distant comme S3 pour la collaboration.
terraform { backend "s3" { bucket = "my-terraform-state" key = "terraform.tfstate" region = "us-east-1" } }
.tf.terraform plan avant terraform apply pour Ă©viter des modifications non souhaitĂ©es.Terraform est un outil puissant pour gĂ©rer des infrastructures cloud de maniĂšre automatisĂ©e et dĂ©clarative. Il facilite la gestion des environnements cloud et permet dâassurer la reproductibilitĂ© des dĂ©ploiements.