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 l’état d’inscription du fournisseur. il est possible que cela soit dû à des informations d’identification non valides ou que le principal du service ne dispose pas des autorisations nécessaires pour utiliser l’API Gestionnaire des ressources, Azure Error : Resources. ProvidersClient # List : échec de réponse à la demande : StatusCode = 403--erreur d’origine : autorest/Azure : le service a renvoyé une erreur. Status = 403 code = « AuthorizationFailed » message = « le client «00000000-0000-0000-0000-000000000000 » avec l’ID d’objet « 00000000-0000-0000-0000-000000000000 » n’a pas l’autorisation d’effectuer l’action « Microsoft. Resources/subscriptions/Providers/Read » sur l’étendue « /subscriptions/00000000-0000-0000-0000-000000000000 » 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: à la rédaction de cet article, le script Terraform qui s’exécute dans Cloud Shell remplace les ARM_TENANT_ID variables d’environnement et à l’aide des valeurs de l’abonnement Azure actuel. 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. Veuillez résoudre le problème ci-dessus, puis réessayez. Pour la plupart des commandes, vous pouvez désactiver le verrouillage avec l’indicateur « -LOCK = false », mais cela n’est pas recommandé.

Arrière-plan : 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 possibles 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é le verrouillage du fichier, donc rien ne s’arrête. La deuxième cause possible est qu’une interruption de connexion s’est produite entre le fichier d’État et l’interface CLI lorsque les commandes étaient en cours d’exécution. Cette interruption se produit le plus souvent lorsque vous utilisez des fichiers d’État à distance.

Résolution : Tout d’abord, assurez-vous que vous n’exécutez pas encore de commandes sur le fichier d’État. Si vous utilisez un fichier d’état local, vérifiez si vous avez des terminaux exécutant des commandes. Vous pouvez également vérifier vos pipelines de déploiement pour voir si un fichier d’État est en cours d’exécution. Si cela ne résout pas le problème, il est possible que la deuxième cause ait déclenché l’erreur. pour un fichier d’état distant stocké dans un conteneur de compte stockage Azure, vous pouvez localiser le fichier et utiliser le bouton rompre le bail .

capture d’écran montrant le bouton de bail de l’interruption du conteneur stockage Azure.

Si vous utilisez d’autres serveurs principaux pour stocker votre fichier d’État, pour obtenir des recommandations, consultez la documentation HashiCorp.

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.