05/12/2025

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 azurerm fait référence à Azure Resource Manager, la plateforme de gestion des ressources dans Azure. L’abréviation RM signifie donc Resource Manager.

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 !

author avatar
Luc BRETON Administrateur système et cloud
Administrateur système et cloud avec une orientation DevOps pour une grande chaîne de pharmacies québécoise. Je suis plutôt généraliste avec une forte expérience côté virtualisation, stockage, cloud hybride et un intérêt particulier pour l'automatisation. J'aime le transfert de connaissances et il me fait plaisir d'être la première voix nord-américaine d'IT-Connect !
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.