Résoudre des problèmes liés à Azure Automation State Configuration

Cet article fournit des informations sur la détection et la résolution des problèmes qui surviennent lorsque vous compilez ou déployez des configurations dans Azure Automation State Configuration. Pour obtenir des informations générales sur la fonctionnalité State Configuration, consultez Vue d’ensemble d’Azure Automation State Configuration.

Diagnostiquer un problème

Quand vous recevez une erreur de compilation ou de déploiement pour la configuration, voici quelques étapes à suivre pour essayer de diagnostiquer le problème.

1. Vérifier que votre configuration est correctement compilée sur l’ordinateur local

Azure Automation State Configuration est basé sur PowerShell Desired State Configuration (DSC). Vous trouverez la documentation relative à la syntaxe et au langage DSC dans les documents PowerShell DSC.

En compilant une configuration DSC sur votre ordinateur local, vous pouvez détecter et résoudre les erreurs courantes, telles que :

  • Modules manquants.
  • Erreurs de syntaxe.
  • Erreurs de logique.

2. Afficher les journaux DSC sur votre nœud

Si votre configuration est correctement compilée, mais échoue lorsqu’elle est appliquée à un nœud, vous pouvez trouver les informations détaillées dans les journaux DSC. Pour plus d’informations sur l’emplacement de ces journaux, consultez Où se trouvent les journaux des événements DSC ?

Le module xDscDiagnostics peut vous aider à analyser des informations détaillées dans les journaux DSC. Si vous contactez le support, ces journaux sont nécessaires pour diagnostiquer votre problème.

Vous pouvez installer le module xDscDiagnostics sur votre ordinateur local en suivant les instructions figurant dans la section Install the stable version module (Installer le module de version stable).

Pour installer le module xDscDiagnostics sur votre ordinateur Azure, utilisez la commande Invoke-AzVMRunCommand. Vous pouvez aussi utiliser l’option Run Command dans le portail Azure, en suivant les étapes mentionnées dans Exécuter des scripts PowerShell dans votre machine virtuelle Windows avec Run Command.

Pour plus d’informations sur l’utilisation de xDscDiagnostics, consultez Utilisation de xDscDiagnostics pour analyser les journaux DSC. Consultez également les cmdlets xDscDiagnostics.

3. S’assurer que les nœuds et l’espace de travail Automation disposent des modules nécessaires

DSC dépend des modules installés sur le nœud. Lorsque vous utilisez Azure Automation State Configuration, importez tous les modules requis dans votre compte Automation à l’aide des étapes indiquées dans Importer des modules. Les configurations peuvent également avoir une dépendance sur des versions de modules spécifiques. Pour plus d’informations, consultez Résoudre les problèmes liés aux modules.

Scénario : Une configuration contenant des caractères spéciaux ne peut pas être supprimée du portail

Problème

Lorsque vous tentez de supprimer une configuration DSC à partir du portail, vous rencontrez l’erreur suivante :

An error occurred while deleting the DSC configuration '<name>'.  Error-details: The argument configurationName with the value <name> is not valid.  Valid configuration names can contain only letters,  numbers, and underscores.  The name must start with a letter.  The length of the name must be between 1 and 64 characters.

Cause

Cette erreur est due à un problème temporaire dont la résolution est prévue.

Résolution

Utilisez l’applet de commande Remove-AzAutomationDscConfiguration pour supprimer la configuration.

Scénario : Impossible d’inscrire l’agent DSC

Problème

Lorsque Set-DscLocalConfigurationManager ou une autre applet de commande DSC, vous recevez l’erreur :

Registration of the Dsc Agent with the server
https://<location>-agentservice-prod-1.azure-automation.net/accounts/00000000-0000-0000-0000-000000000000 failed. The
underlying error is: Failed to register Dsc Agent with AgentId 00000000-0000-0000-0000-000000000000 with the server htt
ps://<location>-agentservice-prod-1.azure-automation.net/accounts/00000000-0000-0000-0000-000000000000/Nodes(AgentId='00000000-0000-0000-0000-000000000000'). .
    + CategoryInfo          : InvalidResult: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : RegisterDscAgentCommandFailed,Microsoft.PowerShell.DesiredStateConfiguration.Commands.Re
   gisterDscAgentCommand
    + PSComputerName        : <computerName>

Cause

Cette erreur est habituellement due à un pare-feu, la machine se trouvant derrière un serveur proxy, ou à d’autres erreurs de réseau.

Résolution

Vérifiez que votre machine a accès aux points de terminaison appropriés pour DSC et réessayez. Pour obtenir la liste des ports et adresses nécessaires, consultez Planification réseau.

Scénario : Les rapports d’état retournent le code de réponse « Non autorisé »

Problème

Lors de l’inscription d’un nœud à l’aide d’Azure Automation State Configuration, vous recevez l’un des messages d’erreur suivants :

The attempt to send status report to the server https://{your Automation account URL}/accounts/xxxxxxxxxxxxxxxxxxxxxx/Nodes(AgentId='xxxxxxxxxxxxxxxxxxxxxxxxx')/SendReport returned unexpected response code Unauthorized.
VM has reported a failure when processing extension 'Microsoft.Powershell.DSC / Registration of the Dsc Agent with the server failed.

Cause

Les causes possibles sont les suivantes :

Résolution

Utilisez les étapes suivantes pour réinscrire le nœud DSC défaillant.

Étape 1 : Désinscrire le nœud

  1. Dans le portail Azure, accédez à Accueil>Comptes Automation> (votre compte Automation) >State Configuration (DSC).
  2. Sélectionnez Nœuds, puis sélectionnez le nœud qui pose problème.
  3. Sélectionnez Désinscrire pour annuler l’inscription du nœud.

Étape 2 : Désinstaller l’extension DSC du nœud

  1. Sur le portail Azure, accédez à Accueil>Machine virtuelle> (nœud défaillant) >Extensions.
  2. Sélectionnez Microsoft.PowerShell.DSC, l’extension PowerShell DSC.
  3. Sélectionnez Désinstaller pour désinstaller l’extension.

Étape 3 : Supprimer tous les certificats inutiles ou expirés du nœud

Sur le nœud défaillant et à partir d’une invite PowerShell avec élévation de privilèges, exécutez ces commandes :

$certs = @()
$certs += dir cert:\localmachine\my | ?{$_.FriendlyName -like "DSC"}
$certs += dir cert:\localmachine\my | ?{$_.FriendlyName -like "DSC-OaaS Client Authentication"}
$certs += dir cert:\localmachine\CA | ?{$_.subject -like "CN=AzureDSCExtension*"}
"";"== DSC Certificates found: " + $certs.Count
$certs | FL ThumbPrint,FriendlyName,Subject
If (($certs.Count) -gt 0)
{
    ForEach ($Cert in $certs)
    {
        RD -LiteralPath ($Cert.Pspath)
    }
}

Étape 4 : Réinscrire le nœud défaillant

  1. Dans le portail Azure, accédez à Accueil>Comptes Automation> (votre compte Automation) >State Configuration (DSC).
  2. Sélectionner Nœuds.
  3. Sélectionnez Ajouter.
  4. Sélectionnez le nœud défaillant.
  5. Sélectionnez Connecter et sélectionnez les options souhaitées.

Scénario : Le nœud est en état d’échec avec une erreur « Introuvable »

Problème

Un rapport pour le nœud indique un état Échec et contient l’erreur :

The attempt to get the action from server https://<url>//accounts/<account-id>/Nodes(AgentId=<agent-id>)/GetDscAction failed because a valid configuration <guid> cannot be found.

Cause

Cette erreur se produit généralement quand le nœud est affecté à un nom de configuration, par exemple ABC au lieu d’un nom de configuration de nœud, par exemple ABC.WebServer.

Résolution

  • Veillez à bien d’affecter le nœud au nom de configuration du nœud et non pas au nom de configuration.

  • Vous pouvez affecter une configuration de nœud à un nœud à l'aide du portail Azure ou d’une cmdlet PowerShell.

    • Dans le portail Azure, accédez à Accueil>Comptes Automation> (votre compte Automation) >State Configuration (DSC). Sélectionnez ensuite un nœud et Affecter la configuration du nœud.
    • Utilisez l’applet de commande Set-AzAutomationDscNode.

Scénario : Aucune configuration de nœud (fichiers MOF) n’a été produite au cours d’une compilation de configuration

Problème

Votre tâche de compilation DSC s’interrompt avec l’erreur :

Compilation completed successfully, but no node configuration **.mof** files were generated.

Cause

Quand l’expression qui suit le mot-clé Node dans la configuration DSC s’évalue à $null, aucune configuration de nœud n’est générée.

Résolution

Utilisez l’une des solutions suivantes pour résoudre ce problème :

  • Vérifiez que l’expression en regard du mot clé Node dans la définition de la configuration n’est pas Null.
  • Si vous effectuez une transmission de ConfigurationData pendant la compilation de la configuration, vérifiez que vous transmettez les valeurs que la configuration attend des données de configuration.

Scénario : Le rapport du nœud DSC se bloque dans l’état En cours

Problème

La sortie de l’agent DSC est la suivante :

No instance found with given property values

Cause

Vous avez mis à niveau votre version de Windows Management Framework (WMF) et vous avez endommagé Windows Management Instrumentation (WMI).

Résolution

Suivez les instructions dans Limitations et problèmes connus dans DSC.

Scénario : Il est impossible d’utiliser des informations d’identification dans une configuration DSC

Problème

Votre tâche de compilation DSC est interrompue avec l’erreur :

System.InvalidOperationException error processing property 'Credential' of type <some resource name>: Converting and storing an encrypted password as plaintext is allowed only if PSDscAllowPlainTextPassword is set to true.

Cause

Vous avez utilisé des informations d’identification dans une configuration, mais n’avez pas fourni la bonne valeur ConfigurationData pour définir PSDscAllowPlainTextPassword sur true pour chaque configuration de nœud.

Résolution

Assurez-vous de transmettre la bonne valeur ConfigurationData pour définir PSDscAllowPlainTextPassword sur true pour chaque configuration de nœud mentionnée dans la configuration. Consultez Compilation de configurations DSC dans Azure Automation State Configuration.

Scénario : Erreur « Échec lors du traitement de l’extension » au moment de l’activation d’une machine à partir d’une extension DSC

Problème

Lors de l’activation d’une machine à l’aide d’une extension DSC, un échec se produit avec l’erreur :

VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. Error message: \"DSC COnfiguration 'RegistrationMetaConfigV2' completed with error(s). Following are the first few: Registration of the Dsc Agent with the server <url> failed. The underlying error is: The attempt to register Dsc Agent with Agent Id <ID> with the server <url> return unexpected response code BadRequest. .\".

Cause

Cette erreur se produit généralement quand le nœud est affecté à un nom de configuration de nœud qui n’existe pas dans le service.

Résolution

  • Assurez-vous que vous affectez le nœud avec un nom qui correspond exactement au nom dans le service.
  • Vous pouvez choisir de ne pas inclure le nom de configuration de nœud, ce qui entraîne l’activation du nœud, sans affectation de configuration de nœud.

Scénario : Erreur « Une ou plusieurs erreurs se sont produites » lors de l’inscription d’un nœud avec PowerShell

Problème

Lors de l’inscription d’un nœud à l’aide de Register-AzAutomationDSCNode ou de Register-AzureRMAutomationDSCNode, vous recevez l’erreur suivante :

One or more errors occurred.

Cause

Cette erreur se produit lorsque vous essayez d’inscrire un nœud dans un autre abonnement que celui utilisé par le compte Automation.

Résolution

Traitez ce nœud d’un autre abonnement comme s’il était défini dans un cloud distinct ou localement. Inscrivez le nœud à l’aide de l’une des options suivantes pour l’activation des machines :

Scénario : Message d’erreur « Échec du provisionnement »

Problème

Lors de l’inscription d’un nœud, l’erreur suivante s’affiche :

Provisioning has failed

Cause

Ce message s’affiche lorsqu’il y a un problème de connectivité entre le nœud et Azure.

Résolution

Déterminez si votre nœud se trouve dans un réseau virtuel privé (VPN) ou s’il a d’autres problèmes pour se connecter à Azure. Consultez Résoudre les problèmes de déploiement de fonctionnalités.

Scénario : Échec avec une erreur générale lors de l’application d’une configuration dans Linux

Problème

Lorsque vous appliquez une configuration dans Linux, un échec se produit avec l’erreur :

This event indicates that failure happens when LCM is processing the configuration. ErrorId is 1. ErrorDetail is The SendConfigurationApply function did not succeed.. ResourceId is [resource]name and SourceInfo is ::nnn::n::resource. ErrorMessage is A general error occurred, not covered by a more specific error code..

Cause

Si l’emplacement de /tmp est défini sur noexec, la version actuelle de DSC ne parvient pas à appliquer les configurations.

Résolution

Supprimez l’option noexec de l’emplacement /tmp.

Scénario : Les noms des configurations de nœuds qui se chevauchent peuvent entraîner une version incorrecte

Problème

Lorsque vous utilisez un script de configuration unique pour générer plusieurs configurations de nœuds et que les noms de certaines d’entre-elles sont des sous-ensembles d’autres noms, le service de compilation peut aboutir à l’attribution d’une configuration incorrecte. Ce problème survient uniquement lorsque vous utilisez un seul script pour générer des configurations avec des données de configuration par nœud, et uniquement quand le chevauchement de nom se produit au début de la chaîne. C’est par exemple le cas si un script de configuration unique est utilisé pour générer des configurations en fonction de données de nœuds transmises sous forme de table de hachage à l’aide d’applets de commande, et que les données de nœuds incluent des serveurs nommés server et 1server.

Cause

Ce problème connu avec le service de compilation.

Résolution

La meilleure solution de contournement consiste à compiler localement ou dans un pipeline CI/CD, et à charger les fichiers MOF de la configuration de nœud directement dans le service. Si la compilation dans le service est une exigence, la meilleure solution suivante consiste à fractionner les travaux de compilation de manière qu’il n’y ait pas de chevauchement des noms.

Scénario : Erreur de délai d’expiration de la passerelle lors du chargement de la configuration DSC

Problème

Une erreur GatewayTimeout s’affiche lorsque vous chargez une configuration DSC.

Cause

Les configurations DSC dont la compilation prennent beaucoup de temps peuvent provoquer cette erreur.

Résolution

Vous pouvez accélérer l’analyse des configurations DSC en incluant explicitement le paramètre ModuleName pour tous les appels Import-DSCResource.

Scénario : Erreur lors de l’intégration d’une machine

Problème

Vous recevez une erreur agent has a problem lors de l’intégration d’une machine.

Cause

Il s'agit d'un problème connu. Vous ne pouvez pas assigner attribuer à nouveau la même configuration, car le nœud reste dans un état d’attente.

Résolution

La solution consiste à appliquer une configuration de test différente et à réappliquer la configuration d’origine.

Étapes suivantes

Si votre problème ne figure pas ici ou que vous ne pouvez pas le résoudre, utilisez un des canaux suivants pour obtenir une aide supplémentaire :

  • Obtenez des réponses de la part d’experts Azure via les Forums Azure.
  • Connectez-vous à @AzureSupport, le compte Microsoft Azure officiel pour améliorer l’expérience client. Le Support Azure fournit à la communauté Azure des réponses, un support technique et des experts.
  • Signaler un incident au support Azure Accédez au site du support Azure, puis sélectionnez Obtenir de l’aide.