Présentation de Terraform
L’outil IaC open source de Terraform vous permet de définir et de provisionner une infrastructure cloud à l’aide d’un langage de configuration général, connu sous le nom d’HashiCorp Configuration Language (HCL). Terraform codifie l’infrastructure dans des fichiers de configuration qui décrivent l’état souhaité pour votre infrastructure. Terraform peut gérer n’importe quelle infrastructure, comme des clouds publics, des clouds privés et des services SaaS, en utilisant les fournisseurs Terraform.
Fournisseurs Terraform pour l’infrastructure Azure
Plusieurs fournisseurs Terraform permettent de gérer l’infrastructure Azure :
- AzureRM : gestion des ressources Azure Resource Manager telles que les machines virtuelles, les comptes de stockage et les interfaces réseau.
- AzureAD : Gérez des ressources Microsoft Entra telles que des groupes, des utilisateurs, des principaux de service et des applications.
- AzureDevOps : gestion des ressources Azure DevOps telles que les agents, les référentiels, les projets, les pipelines et les requêtes.
- AzAPI : gestion des ressources Azure en utilisant directement les API Azure Resource Manager. Ce fournisseur vient en complément du fournisseur AzureRM en offrant la possibilité de gérer les ressources Azure les plus récentes.
- Azure Stack : gestion des ressources Azure Stack telles que les machines virtuelles, DNS, les réseaux virtuels et le stockage.
Créez un compte de stockage.
Toutes les configurations Terraform doivent contenir un bloc provider
. Le code HCL suivant spécifie le fournisseur Azure Resource Manager (azurerm
). Un groupe de ressources Azure nommé storageaccountexamplerg
est défini à l’emplacement eastus
. Un compte de stockage Azure est créé dans le groupe de ressources. Le nom du compte de stockage se compose des 24 premiers caractères d’un nombre généré via la fonction md5
.
terraform {
required_version = ">=0.12"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>2.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
location = "eastus"
name = "storageaccountexamplerg"
}
resource "azurerm_storage_account" "example" {
name = substr(md5(azurerm_resource_group.rg.id), 0, 24)
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
account_kind = "StorageV2"
account_tier = "Standard"
account_replication_type = "LRS"
access_tier = "Hot"
}
Exécuter le code Terraform
Exécutez terraform init
pour télécharger les modules Azure requis pour la gestion de vos ressources Azure :
terraform init
Exécutez terraform plan
pour déterminer les actions nécessaires à la création de la configuration spécifiée dans vos fichiers de configuration. Le fait d’exécuter la commande crée un plan d’exécution mais ne l’applique pas. Ce modèle vous permet de vérifier si le plan d’exécution répond à vos attentes avant d’apporter des modifications aux ressources en place.
terraform plan -out main.tfplan
Après avoir vérifié le plan d’exécution, exécutez terraform apply
pour appliquer le plan. Cette commande crée les ressources définies.
terraform apply main.tfplan
Vérifier le compte de stockage
Pour vérifier le compte de stockage Azure, vous pouvez utiliser la commande terraform state show
. Cette commande affiche l’état actuel de la ressource spécifiée.
Dans le cas du compte de stockage que vous avez créé dans ce module, la commande montre le nom généré ainsi qu’une liste complète des attributs de compte de stockage et de leurs valeurs.
terraform state show 'azurerm_storage_account.example'
Nettoyer les ressources
Lorsque vous n’avez plus besoin des ressources créées dans ce module, exécutez terraform apply
avec l’indicateur -destroy
:
terraform plan -destroy -out main.destroy.tfplan
Exécutez terraform apply
pour appliquer le plan d’exécution :
terraform apply main.destroy.tfplan