Share via


Résoudre les problèmes de gestion des machines virtuelles Azure Arc

S’applique à : Azure Stack HCI, version 23H2

Cet article fournit des conseils sur la collecte des journaux et la résolution des problèmes liés aux machines virtuelles Azure Arc dans votre cluster Azure Stack HCI. Il répertorie également les limitations et les problèmes connus qui existent actuellement avec la gestion des machines virtuelles Azure Arc.

Collecter les journaux d’activité

Vous pouvez collecter des journaux pour identifier et résoudre les problèmes liés aux machines virtuelles Arc dans votre système Azure Stack HCI. Utilisez ces journaux pour collecter des informations clés avant de contacter le support Microsoft pour obtenir de l’aide supplémentaire.

Vérifiez que vous disposez du dernier module PowerShell pour la collecte des journaux. Pour mettre à jour le module PowerShell, exécutez la commande suivante :

#Update the PowerShell module
Install-Module -Name ArcHci -Force -Confirm:$false -SkipPublisherCheck -AcceptLicense

Pour collecter les journaux des machines virtuelles Arc dans votre cluster Azure Stack HCI, exécutez la commande suivante :

$csv_path="<input-from-admin>"
$VMIP_1="<input-from-admin>"
az login --use-device-code
Get-ArcHCILogs -workDirectory $csv_path\ResourceBridge -kvaTokenPath $csv_path\ResourceBridge\kvatoken.tok -ip $VMIP_1

où :

  • $csv_path est le chemin complet du volume partagé de cluster fourni pour créer un pont de ressources Arc.

  • $VMIP_1 est l’adresse IP de la machine virtuelle Arc Resource Bridge.

  • Si vous le souhaitez, définissez le -logDir paramètre pour spécifier le chemin d’accès au répertoire où sont stockés les journaux générés. Si vous ne spécifiez pas le chemin d’accès ou le paramètre, par défaut, les journaux sont stockés dans votre répertoire de travail actuel.

Résoudre les problèmes liés aux machines virtuelles Azure Arc

Cette section décrit les erreurs liées à la gestion des machines virtuelles Azure Arc et leurs résolutions recommandées.

Échec lors de la tentative d’activation de la gestion des invités

Lorsque vous essayez d’exécuter la commande pour activer la gestion des invités, vous voyez l’erreur suivante :

Erreur:Deployment failed. Correlation ID: 5d0c4921-78e0-4493-af16-dffee5cbf9d8. VM Spec validation failed for guest agent provisioning: Invalid managed identity. A system-assigned managed identity must be enabled in parent resource: Invalid Configuration

L’échec ci-dessus est dû au fait que l’identité managée n’a pas été créée pour cette machine virtuelle. Une identité managée affectée par le système est requise pour activer la gestion des invités.

Résolution :

Procédez comme suit pour vérifier que l’identité managée n’est pas créée pour cette machine virtuelle, puis activez l’identité managée affectée par le système.

  1. Dans le Portail Azure, accédez à la machine virtuelle. Accédez à la page Vue d’ensemble . Sous l’onglet Propriétés , sous Configuration, la gestion des invités doit s’afficher comme Désactivée. Sélectionnez la vue JSON dans le coin supérieur droit.

    Capture d’écran montrant comment accéder à la vue JSON.

  2. Sous Identity le paramètre , doit s’afficher sous la type forme None.

    Capture d’écran de la vue JSON indiquant que l’identité managée est absente.

  3. Pour créer une identité managée, connectez-vous au serveur Azure Stack HCI via RDP. Exécutez la commande suivante :

    az extension add --name connectedmachine
    
  4. Vérifiez que l’extension CLI de l’ordinateur connecté est installée sur le cluster. Voici un exemple de sortie avec l’extension correctement installée. indique connectedmachine que la version 0.7.0 est installée.

    [v-hostl]: PS C:\Clusterstorage\lnfrastructure_l\ArcHci> az version
    {
    "azure-cli": "2.53.0",
    "azure-cli-core": "2.53.0",
    "azure-cli-telemetry": "1.1.0",
    "extensions": {
        "akshybrid": "0.1.1",
        "arcappliance"^ "1.0.2",
        "connectedk8s": "1.5.4",
        "connectedmachine": "0.7.0",
        "customlocation": "0.1.3",
        "hybridaks": "0.2.4",
        "k8s-extension": "1.4.5",
        "stack-hci-vm": "0.1.8"
        }
    }
    [v-hostl]: PS C:\ClusterStorage\Infrastructure_l\ArcHci>
        ```
    
  5. Exécutez la commande suivante pour affecter une identité managée système à la machine virtuelle.

    az connectedmachine update --ids "<Resource Manager ID for the VM>" --set identity.type="SystemAssigned"
    
  6. Accédez à la Portail Azure et accédez à la page Vue d’ensemble. La vue JSON doit indiquer que l’identité managée système est désormais affectée à la machine virtuelle.

    Capture d’écran de la vue JSON lorsque l’identité managée est activée.

Échec du déploiement d’une machine virtuelle Arc

Vous voyez l’erreur suivante lorsque vous essayez de déployer une machine virtuelle Arc sur votre cluster Azure Stack HCI :

Erreur:{"code":"ConflictingOperation","message":"Unable to process request 'Microsoft.AzureStackHCI/virtualMachineInstances'. There is already a previous running operation for resource '/subscriptions/<subscription ID>/resourceGroups/<Resource group name>/providers/Microsoft.HybridCompute/machines/<VM name>/providers/Microsoft.AzureStackHCI/virtualMachineInstances/default'. Please wait for the previous operation to complete."}

L’échec ci-dessus est dû au fait que l’objet SystemAssigned d’identité managée n’est pas sous le type de Microsoft.HybridCompute/machines ressource.

Résolution :

Vérifiez dans votre modèle de déploiement que :

L’objet SystemAssigned d’identité managée se trouve sous Microsoft.HybridCompute/machines le type de ressource et non sous Microsoft.AzureStackHCI/VirtualMachineInstances le type de ressource.

Le modèle de déploiement doit correspondre à l’exemple de modèle fourni. Pour plus d’informations, consultez l’exemple de modèle dans Create machines virtuelles Arc sur Azure Stack HCI.

L’installation d’Azure CLI n’est pas reconnue

Si votre environnement ne parvient pas à reconnaître Azure CLI après l’avoir installé, exécutez le bloc de code suivant pour ajouter le chemin d’installation d’Azure CLI au chemin d’accès de l’environnement.

        if ( -not( $env:PATH -like '*C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin*') ) {
            $env:PATH += "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;"
            Write-Host "Updated path $env:PATH"
        }

Étapes suivantes