Déclaration d’un provider pour notre projet Terraform
Dans notre projet, nous allons utiliser le provider azurerm qui permet de gérer des ressources dans Microsoft Azure. Pour ce faire, nous allons créer un fichier provider.tf qui contiendra les éléments nécessaires à sa déclaration.
Le nom du provider
azurermfait référence à Azure Resource Manager, la plateforme de gestion des ressources dans Azure. L’abréviation RM signifie donc Resource Manager.
Sommaire
I. Récupérer le bloc de code d'un provider
La documentation officielle de Terraform est la meilleure source pour obtenir les instructions à jour concernant un provider. Pour azurerm, elle est accessible ici :
Une fois sur cette page, vous trouverez un bouton « Use Provider » qui vous permet de copier le bloc de configuration de base à insérer dans votre projet. Ce bloc indique à Terraform qu’il devra utiliser le provider azurerm, développé par HashiCorp et il précise la version souhaitée. Dans notre cas, nous spécifions une version compatible avec la série 4.x en utilisant la syntaxe ~> 4.0 qui autorise toutes les versions mineures ultérieures sans basculer vers une version majeure.

Voici la première partie du bloc de configuration à insérer dans provider.tf :
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
II. Configurer le provider
La suite du fichier provider.tf sert à configurer le provider pour interagir avec Azure. Pour fonctionner, ce dernier a besoin de certaines informations : une authentification valide ainsi que quelques paramètres techniques obligatoires. Le bloc suivant active le provider et fournit les identifiants nécessaires pour se connecter à votre environnement Azure via un Service Principal (notion sur laquelle nous reviendrons dans la prochaine section) :
provider "azurerm" {
features {}
subscription_id = var.ARM_SUBSCRIPTION_ID
client_id = var.ARM_CLIENT_ID
client_secret = var.ARM_CLIENT_SECRET
tenant_id = var.ARM_TENANT_ID
}
Le bloc features {} est obligatoire, même vide, car il active les fonctionnalités standards du provider. Sans lui, Terraform refuserait d’appliquer la configuration.
Les quatre premières lignes font référence à des variables (que nous définirons dans le fichier variables.tf) contenant les identifiants de connexion Azure. Il s’agit de l’ID d’abonnement (subscription ID), de l’ID client (client ID), du secret associé (client secret) et de l’ID de locataire (tenant). Ces valeurs sont nécessaires pour que Terraform puisse effectuer des appels API sécurisés vers Azure. Nous verrons comment récupérer ces informations dans la section suivante où nous allons créer un Service Principal dans Entra ID, le service de gestion des identités de Microsoft.
III. Mise en forme d'un fichier Terraform
Avant d'aller plus loin dans nos configurations, il convient de mentionner tout de suite qu'il existe une commande très utile à connaître pour mettre en forme les fichiers Terraform :
terraform fmt <nom_fichier>
L'extension HashiCorp Terraform est intéressante pour la coloration syntaxique et l'auto-complétion, mais elle ne permet pas de formater correctement vos fichiers. Alors, n'hésitez pas à avoir recours à la commande terraform fmt !
