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
- Installer et configurer Terraform
- Installer et se connecter à Azure CLI (v 2.38.0+)
- Révisez le diagramme de l’architecture et les ressources Azure que vous allez déployer dans le modèle Node.js ou Python Terraform.
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
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
Ajoutez tous vos fichiers
.tf
au répertoireinfra
qui se trouve à la racine de votre projet.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
Ajoutez un nouveau fichier appelé
provider.conf.json
dans le dossierinfra
.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Mettez à jour
provider.tf
qui se trouve dans le dossierinfra
pour définir le serveur principal comme distant# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
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
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.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
- En savoir plus sur la dépendance de Terraform vis-à-vis d’Azure CLI.
- Pour en savoir plus sur l’état distant, consultez stocker l’état Terraform dans le stockage Azure.
- Modèle : Application web React avec l’API Node.js et MongoDB (Terraform) sur Azure