Résoudre les problèmes courants liés à l’utilisation de Terraform sur Azure

Cet article liste les problèmes courants et les solutions possibles liés à l’utilisation de Terraform sur Azure.

Si vous rencontrez un problème propre à Terraform, utilisez l’un des canaux de support de la communauté HashiCorp.

Canaux de support propres à HashiCorp Terraform

Impossible de lister l’état de l’inscription du fournisseur

Message d’erreur :

Erreur : Impossible de répertorier les status d’inscription du fournisseur, il est possible que cela soit dû à des informations d’identification non valides ou que le principal de service n’ait pas l’autorisation d’utiliser l’API Resource Manager, erreur Azure : ressources. ProvidersClient#List : Échec de réponse à la demande : StatusCode=403 -- Erreur d’origine : autorest/azure : Le service a retourné une erreur. Status=403 Code="AuthorizationFailed » Message="The client '0000000-0000-0000-0000-0000000000000000' avec l’ID d’objet '0000000-0000-0000-0000-0000-00000000000000 ' n’a pas l’autorisation d’effectuer l’action « Microsoft.Resources/subscriptions/providers/read » sur l’étendue « /subscriptions/000000-0000-0000-000000000000000 » ou l’étendue n’est pas valide. Si l’accès a été accordé récemment, actualisez vos informations d’identification ».

Contexte : Si vous exécutez des commandes Terraform à partir de Cloud Shell et que vous avez défini certaines variables d’environnement Terraform/Azure, vous pouvez parfois voir des conflits. Les variables d’environnement et la valeur Azure qu’elles représentent sont listées dans le tableau suivant :

Variable d’environnement Valeur Azure
ARM_SUBSCRIPTION_ID ID d’abonnement Azure
ARM_TENANT_ID ID du locataire du compte Microsoft
ARM_CLIENT_ID ID d’application du principal de service Azure
ARM_CLIENT_SECRET Mot de passe du principal de service Azure

Cause : Au moment de rédiger cet article, le script Terraform qui s’exécute dans Cloud Shell remplace les variables d’environnement ARM_SUBSCRIPTION_ID et ARM_TENANT_ID en utilisant les valeurs de l’abonnement Azure actif. Par conséquent, si le principal de service référencé par les variables d’environnement ne dispose pas de droits d’accès à l’abonnement Azure actif, toutes les opérations Terraform échouent.

Erreur lors de l’acquisition du verrou d’état

Message d’erreur :

Erreur : Erreur lors de l’acquisition du verrou d’état ; Message d’erreur : 2 erreurs se sont produites :
* l’objet blob d’état est déjà verrouillé
* Les métadonnées d’objet blob « terraformlockid » étaient vides
Terraform acquiert un verrou d’état pour empêcher l’écriture de l’état par plusieurs utilisateurs en même temps. Résolvez le problème ci-dessus et réessayez. Pour la plupart des commandes, vous pouvez désactiver le verrouillage avec l’indicateur « -lock=false », mais cela n’est pas recommandé.

Fond: Si vous exécutez des commandes Terraform sur un fichier d’état Terraform et que cette erreur est le seul message qui s’affiche, les causes suivantes peuvent s’appliquer. S’applique aux fichiers d’état locaux et distants.

Cause : Il existe deux causes potentielles pour cette erreur. La première est qu’une commande Terraform est déjà en cours d’exécution sur le fichier d’état et qu’elle a forcé un verrou sur le fichier, donc rien ne s’arrête. La deuxième cause potentielle est qu’une interruption de connexion s’est produite entre le fichier d’état et l’interface CLI lors de l’exécution des commandes. Cette interruption se produit le plus souvent lorsque vous utilisez des fichiers d’état distants.

Résolution: Tout d’abord, assurez-vous que vous n’exécutez pas déjà de commandes sur le fichier d’état. Si vous utilisez un fichier d’état local, case activée pour voir si des terminaux exécutent des commandes. Vous pouvez également case activée vos pipelines de déploiement pour voir si un élément en cours d’exécution peut utiliser le fichier d’état. Si cela ne résout pas le problème, il est possible que la deuxième cause déclenche l’erreur. Pour un fichier d’état distant stocké dans un conteneur de compte de stockage Azure, vous pouvez localiser le fichier et utiliser le bouton Arrêter le bail .

Capture d’écran montrant le bouton Arrêter le bail du conteneur Stockage Azure.

Si vous utilisez d’autres back-ends pour stocker votre fichier d’état, consultez la documentation HashiCorp pour obtenir des recommandations.

Erreurs VPN

Pour plus d’informations sur la résolution de problèmes de VPN, voir l’article Résoudre les problèmes d’une connexion VPN hybride.