Utiliser Terraform en tant qu’outil d’infrastructure en tant que code pour Azure Developer CLI

Azure Developer CLI (azd) prend en charge plusieurs fournisseurs d’infrastructures en tant que code (IaC), notamment :

Par défaut, azd considère que Bicep est le fournisseur IaC. Reportez-vous à l’article Comparaison de Terraform et Bicep pour déterminer le fournisseur IaC le mieux adapté à votre projet.

Remarque

Terraform est toujours en version bêta. Pour en savoir plus sur la prise en charge des fonctionnalités alpha et bêta, consultez la page sur le versionnement des fonctionnalités et la stratégie de sortie

Conditions préalables

Remarque

Bien que azd ne s’appuie pas sur une connexion Azure CLI, Terraform requiert Azure CLI. Pour en savoir plus sur cette exigence, consultez la documentation officielle de Terraform.

Configurer Terraform en tant que fournisseur IaC

  1. Ouvrez le fichier azure.yaml qui se trouve à la racine de votre projet et vérifiez que vous disposez des lignes suivantes pour remplacer la valeur par défaut, qui est Bicep :

    infra:
      provider: terraform
    
  2. Ajoutez tous vos fichiers .tf au répertoire infra qui se trouve à la racine de votre projet.

  3. Exécutez azd up.

Remarque

Consultez ces deux modèles azd avec Terraform en tant que fournisseur IaC : Node.js et Terraform et Python et Terraform.

azd pipeline config pour Terraform

Terraform stocke l’état de votre infrastructure et de votre configuration managées. Ce fichier d’état vous oblige à activer l’état distant avant d’exécuter azd pipeline config pour configurer votre pipeline de déploiement dans GitHub.

Par défaut, azd suppose l’utilisation du fichier d’état local. Si vous avez exécuté azd up avant d’activer l’état distant, vous devez exécuter azd down et basculer vers le fichier d’état distant.

État local par rapport à état distant

Terraform utilise des données d’état persistantes pour suivre les ressources qu’il gère.

Scénarios d’activation de l’état distant :

  • Pour autoriser l’accès partagé aux données d’état et permettre à plusieurs personnes de travailler ensemble sur cette collection de ressources d’infrastructure
  • Pour éviter d’exposer des informations sensibles incluses dans le fichier d’état
  • Pour réduire la probabilité de suppression accidentelle en raison du stockage de l’état localement

Activer l’état distant

  1. Veillez à configurer un compte de stockage d’état distant.

  2. Ajoutez un nouveau fichier appelé provider.conf.json dans le dossier infra.

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Mettez à jour provider.tf qui se trouve dans le dossier infra pour définir le serveur principal comme distant

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. Exécutez azd env set <key> <value> pour ajouter une configuration dans le fichier .env. Par exemple :

    azd env set RS_STORAGE_ACCOUNT your_storage_account_name
    azd env set RS_CONTAINER_NAME your_terraform_container_name
    azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
    
  5. Exécutez la commande azd suivante en fonction de votre flux de travail habituel. Lorsque l’état distant est détecté, azd initialise Terraform avec la configuration de serveur principal configurée.

  6. Pour partager l’environnement avec des collègues, assurez-vous qu’ils exécutent azd env refresh -e <environmentName> pour actualiser les paramètres de l’environnement dans le système local et effectuez l’étape 4 pour ajouter la configuration dans le fichier .env.

Voir aussi

Étapes suivantes