Aller au contenu principal

Introduction Terraform

Terraform est un outil d'infrastructure as code (IaC) qui permet de provisionner et gérer des infrastructures informatiques à l'aide de fichiers de configuration. Il est utilisé par les ingénieurs DevOps et les administrateurs systèmes pour automatiser la création et la mise à jour d'infrastructures dans le cloud, sur site ou dans un environnement hybride.

Installation

La première étape pour utiliser Terraform est de l'installer sur votre ordinateur. Vous pouvez télécharger l'installateur depuis le site web de HashiCorp. Une fois l'installation terminée, vous pouvez vérifier que Terraform est correctement installé en exécutant la commande suivante :

terraform version

Cette commande devrait afficher la version de Terraform installée sur votre ordinateur.

Configuration

Avant de pouvoir commencer à utiliser Terraform, vous devez configurer votre environnement. Créez un dossier pour votre projet, placez vous dans ce dossier et créez un fichier nommé provider.tf. Ajoutez dans ce fichier la configuration de votre provider cloud, comme dans l'exemple ci-dessous :

terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}

# Configure the AWS Provider
provider "aws" {
region = "eu-west-3"
}

Retrouvez les différents providers sur la page Terraform Registry

Exécutez la commande suivante, pour initialiser votre projet Terraform :

terraform init

Premier exemple

Maintenant, que votre environnement est créé, vous pouvez commencer à écrire votre configuration Terraform. Dans cet exemple, nous allons créer une instance EC2 sur AWS.

Le fichier de configuration suivant crée une instance EC2 avec les paramètres suivants :

  • L'image utilisée pour lancer la machine virtuelle
  • L'instance est une machine virtuelle t2.micro
  • L'instance a une clé SSH associée
  • L'instance a une adresse IP publique
resource "aws_instance" "my_instance" {
ami = "ami-0123456789abcdef0"
instance_type = "t2.micro"
key_name = "my_key_pair"
public_ip = true
}

Pour valider la bonne syntaxe de ce fichier tf, exécutez la commande suivante :

terraform validate

Pour formater le fichier tf avec l'indentation Terraform, exécutez la commande suivante :

terraform fmt

Pour vérifier les changements qui vont être appliqués par le fichier tf, exécutez la commande suivante :

terraform plan

Pour appliquer cette configuration, exécutez la commande suivante :

terraform apply

Pour supprimer cette configuration, exécutez la commande suivante :

terraform destroy

Cette commande crée l'instance EC2 décrite dans le fichier de configuration.

Variables

Les variables permettent de personnaliser votre configuration Terraform. Par exemple, vous pouvez utiliser des variables pour spécifier le nom de votre instance EC2, la taille de son disque dur, une liste d'adresses IP ou l'emplacement de son stockage.

Pour définir des variables, créez un fichier variable.tf, utilisez la syntaxe suivante :

variable "instance_name" {
type = string
default = "my-instance"
}

Vous pouvez ensuite utiliser les variables dans votre configuration Terraform en appelant la variable avec var.mavariable comme suit :

resource "aws_instance" "my_instance" {
ami = "ami-0123456789abcdef0"
instance_type = "tt2.micro"
key_name = "my_key_pair"
public_ip = true

instance_name = var.instance_name
}

Modules

Les modules permettent de réutiliser votre configuration Terraform. Par exemple, vous pouvez créer un module pour créer une instance EC2, puis l'utiliser dans plusieurs configurations différentes.

Pour créer un module, utilisez la syntaxe suivante :

module "my_instance" {
source = "./my_instance"

instance_name = var.instance_name
}

Le fichier my_instance.tf contient la configuration de l'instance EC2.

Conclusion

Ce tutoriel vous a donné les bases de l'utilisation de Terraform. Pour en savoir plus, vous pouvez consulter la documentation de Terraform.