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.