Dela via


Felsöka problem med Azure Arc-registrering för virtuella datorer med hanterade identiteter

Använd den här artikeln om du vill felsöka vanliga problem eller fallgropar när du registrerar virtuella Azure Operator Nexus-datorer med Azure Arc med hanterade identiteter.

Krav för Azure Operator Nexus-hanteringspaket, körningsversioner och API-versioner

  • Säkerställ att din Operator Nexus Cluster kör en hanteringspaketversion 2510.1 och en körningsversion 4.7.0 eller senare. Funktionsstödet är tillgängligt i API-versionen 2025-07-01-preview, men rekommenderar GA-version 2025-09-01 eller senare.
  • Azure Core CLI måste installeras med version 2.75 eller senare. Du hittar versioner som stöds i Az Core CLI-versionshistoriken.
  • Kontrollera att networkcloud az CLI-tillägget är installerat med en version som stöder den api-version som krävs. Du hittar versioner som stöds i versionshistoriken förnetworkcloud tillägget på GitHub. Den lägsta nödvändiga versionen börjar i förhandsversionen 4.0.0b1 , men rekommenderar 4.0.0 eller senare.
  • Den här guiden förutsätter att du har ett fungerande Nexus-kluster för operatör och de behörigheter som krävs för att skapa och hantera virtuella datorer och hanterade identiteter i din Azure-prenumeration.

Granska cloud-init-loggarna

Om du använder parametern --user-data-content för att skicka ett cloud-init-skript när den virtuella datorn skapas kan du kontrollera cloud-init-loggarna efter fel eller problem som rör körningen av skriptet. När den virtuella datorn har skapats och startats kan du kontrollera cloud-init-loggarna för att kontrollera att skriptet har slutförts. Filen cloud-init-loggar finns på /var/log/cloud-init-output.log. Det är nödvändigt att SSH till den virtuella datorn för att komma åt loggarna.

Nexus VM Instance Metadata Service (IMDS) sidovagnscontainer

Som en del av distributionen av den virtuella Nexus-datorn distribueras en IMDS-sidovagnscontainer tillsammans med den virtuella datorn. Den här sidovagnscontainern ansvarar för proxybegäranden till tokentjänsten på plattformsnivå. Virtuella Nexus-datorer har konfigurerats för att dirigera trafik som är avsedd för IP-adressen 169.254.169.254 till IMDS-sidovagnscontainern. Därför måste IP-adressen 169.254.169.254 läggas till i NO_PROXY miljövariabeln. IMDS-sidovagnscontainern lyssnar på porten 80 för HTTP-trafik.

CsN-konfigurationer (Cloud Services Network)

Se till att ditt molntjänstnätverk (CSN) har konfigurerats för att tillåta utgående trafik till nödvändiga Azure-slutpunkter. CSN måste skapas med --enable-default-egress-endpoints "True" flaggan för att automatiskt inkludera de nödvändiga slutpunkterna. Om flaggan utelämnas eller förbises vid skapande måste du lägga till de nödvändiga endpunkterna manuellt. Mer information finns i [Nödvändiga proxy- och nätverksinställningar för att aktivera utgående anslutning].

Det enklaste sättet är att se utgående slutpunkter som konfigurerats för CSN via Azure-portalen. Du kan också använda networkcloud tillägget för att kontrollera att inställningen är inställd Truepå :

az networkcloud cloudservicesnetwork show --name "$CSN_NAME" --resource-group "$RESOURCE_GROUP" --query "enableDefaultEgressEndpoints" -o tsv
az networkcloud cloudservicesnetwork show  --name "$CSN_NAME" --resource-group "$RESOURCE_GROUP" --query "additionalEgressEndpoints"
az networkcloud cloudservicesnetwork show --name "$CSN_NAME" --resource-group "$RESOURCE_GROUP" --query "enabledEgressEndpoints"

CSN-proxykonfiguration

CSN-proxyn används av den virtuella datorn för utgående trafik. Värdet är alltid http://169.254.0.11:3128. Kontrollera att miljövariablerna är korrekt inställda i VM-sessionen innan du kör az login --identity- eller azcmagent connect-kommandon.

export HTTPS_PROXY=http://169.254.0.11:3128
export https_proxy=http://169.254.0.11:3128
export HTTP_PROXY=http://169.254.0.11:3128
export http_proxy=http://169.254.0.11:3128
export NO_PROXY=localhost,127.0.0.1,::1,169.254.169.254
export no_proxy=localhost,127.0.0.1,::1,169.254.169.254

azcmagent Dessutom bör du ange proxyinställningar:

azcmagent config set proxy.url "http://169.254.0.11:3128"

Verifiera behörigheter för hanterad identitet

Kontrollera att den hanterade identitet som är associerad med den virtuella datorn har de behörigheter som krävs för att utföra Azure Arc-registrering.

az networkcloud virtualmachine show --name "$VM_NAME" --resource-group "$RESOURCE_GROUP" --query "identity"

För systemtilldelad identitet

az role assignment list --assignee $(az networkcloud virtualmachine show --name "$VM_NAME" --resource-group "$RESOURCE_GROUP" --query "identity.principalId" -o tsv)

För användartilldelad identitet

az role assignment list --assignee $(az identity show --name "$UAMI_NAME" --resource-group "$RESOURCE_GROUP" --query "principalId" -o tsv)

De roller som krävs för att tillåta den hanterade identiteten att ansluta VM till Azure Arc är:

  • HybridCompute Machine ListAccessDetails Action
  • Azure Connected Machine Resource Manager

Sanitetstester för vm-nätverksanslutning

SSH till den virtuella datorn och kör följande kommandon:

export NO_PROXY=localhost,127.0.0.1,::1,169.254.169.254
export no_proxy=localhost,127.0.0.1,::1,169.254.169.254

# Basic connectivity test
ping -c 3 169.254.169.254

# Test IMDS sidecar container is accessible and running
curl -v --max-time 3 -H "Metadata:true" "http://169.254.169.254/healthz"
# Test connectivity to Azure Arc endpoints
curl -I https://management.azure.com/
curl -I https://login.microsoftonline.com/
curl -I https://pas.windows.net/
curl -I https://san-af-eastus-prod.azurewebsites.net/
# Test DNS resolution for endpoints
nslookup management.azure.com
nslookup login.microsoftonline.com

Fel: Det gick inte att logga in med hanterad identitet

az login --identity När kommandot körs och felet anger att inloggningen med hanterad identitet misslyckades.

Exempel på felmeddelanden:

ERROR: Failed to log in with system-assigned managed identity

# OR

ERROR: Failed to log in with user-assigned managed identity

Möjliga orsaker:

  • Den virtuella datorn skapades inte med en associerad hanterad identitet, eller så lades identiteten till när den virtuella datorn skapades
  • Systemtilldelad hanterad identitet är inte aktiverad på den virtuella datorn
  • Användartilldelad hanterad identitet är inte korrekt tilldelad till den virtuella datorn
  • Problem med identitetsbehörigheter
  • IMDS-slutpunkten är inte tillgänglig
  • Problem med nätverksanslutning
  • Kontrollera proxyinställningar

Möjliga lösningar:

  • Kontrollera att den virtuella datorn har skapats med en associerad hanterad identitet. Om den virtuella datorn inte skapades med en associerad hanterad identitet måste du återskapa den virtuella datorn med en för att använda hanterad identitetsautentisering.
  • Kontrollera att rätt hanterad identitet har tilldelats till den virtuella datorn. Mer information finns i avsnittet Verifiera behörigheter för hanterad identitet .
  • Kontrollera IMDS-anslutningen inifrån den virtuella datorn. Om IMDS-slutpunkten inte är tillgänglig kan det finnas ett problem med nätverksanslutningen eller så kanske IMDS-sidovagnscontainern inte körs. Mer information finns i avsnittet om VM-nätverksanslutningsrimlighetstester.

Fel: Det gick inte att hämta åtkomsttoken

När antingen az login --identity kommandona eller az account get-access-token körs och felet anger att åtkomsttoken inte kunde hämtas.

Exempel på felmeddelande:

ERROR: Failed to retrieve access token

Möjliga orsaker:

  • Hanterad identitet är inte associerad med den virtuella datorn
  • Behörigheter för hanterad identitet är otillräckliga
  • Nätverksanslutning till Azure-slutpunkter kan saknas i CSN-utgående konfigurationer
  • Kontrollera proxyinställningar

Möjliga lösningar:

Fel: Det gick inte att ansluta till Azure Arc

När azcmagent connect kommandot körs, och om ett fel uppstår, indikeras detta antingen genom att anslutningen eller registreringen har misslyckats.

Exempel på felmeddelande:

ERROR: Failed to connect to Azure Arc

Möjliga orsaker:

  • Problem med nätverksanslutning till Azure Arc-slutpunkter
  • Otillräckliga behörigheter för Arc-registrering
  • Ogiltig åtkomsttoken
  • Problem med resursgrupp eller prenumeration
  • Nätverksanslutning till Azure-slutpunkter kan saknas i CSN-utgående konfigurationer
  • Kontrollera proxyinställningar

Möjliga lösningar:

  • Kontrollera att åtkomsttoken är giltig och inte har upphört att gälla. Den åtkomsttoken som hämtas med az account get-access-token är vanligtvis giltig under en kort tidsperiod. När behörigheter för den hanterade identiteten ändras måste en ny åtkomsttoken hämtas.

  • Kontrollera att nödvändiga Azure Arc-slutpunkter är tillgängliga: Mer information finns i avsnittet om vm-nätverksanslutningstester .

  • Kontrollera om den hanterade identiteten har de roller som krävs för Azure Arc-registrering. Mer information finns i avsnittet Verifiera behörigheter för hanterad identitet .

  • Kontrollera CSN-konfigurationer för utgående slutpunkter. Kontrollera att CSN:n har konfigurerat de utgående slutpunkter som krävs.

  • Kontrollera proxyinställningarna. Kontrollera att proxyinställningarna är korrekt konfigurerade i miljövariablerna och för azcmagent.

  • Verifiera azcmagent version och status:

    azcmagent version
    azcmagent show
    
  • Kör azcmagent med mer felsökning med hjälp av --verbose flaggan:

    azcmagent connect \
    --resource-group "${RESOURCE_GROUP}" \
    --tenant-id "${TENANT_ID}" \
    --location "${LOCATION}" \
    --subscription-id "${SUBSCRIPTION_ID}" \
    --access-token "${ACCESS_TOKEN}" \
    --verbose
    
  • Aktivera utförlig loggning för azcmagent. Mer information finns i CLI-dokumentationenazcmagent.

    azcmagent config set log.level DEBUG
    
  • Kontrollera azcmagent loggar.

    journalctl -u azcmagent -f
    

Om du vill felsöka ytterligare följer du stegen som tillhandahålls av Azure Arc-agenten.

Alternativa metoder för hämtning av åtkomsttoken

När du autentiserar med Azure-tjänster kan du behöva begära en åtkomsttoken med din önskade hanterade identitet. När du har autentiserat med az login --identitykan du hämta en åtkomsttoken för Azure Resource Manager-slutpunkten (ARM) med hjälp av följande kommando:

Tips/Råd

Om de hanterade identitetsrollerna eller behörigheterna ändras måste token uppdateras för att återspegla ändringarna.

ACCESS_TOKEN=$(az account get-access-token --resource https://management.azure.com/ --query accessToken -o tsv)

Men om du stöter på problem med Azure CLI-kommandot az login --identity eller föredrar att inte använda det, finns det alternativa metoder för att hämta en åtkomsttoken direkt från IMDS-slutpunkten. Exemplet är avsett att ge alternativ för att hämta åtkomsttoken med hjälp av az rest eller curl.

Använd az rest för att hämta en token med en systemtilldelad identitet:

az rest --method get \
  --url "http://169.254.169.254/metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01" \
  --headers '{"Metadata":"true"}'

Eller använda curl med en systemtilldelad identitet:

curl -H "Metadata: true" "http://169.254.169.254/metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01"

Använd az rest för att hämta en token med en användartilldelad identitet:

Viktigt!

msi_res_id Ange frågeparametern till resurs-ID för den användartilldelade hanterade identiteten. Exemplet förutsätter att värdet redan är URL-kodat.

az rest --method get \
  --url "http://169.254.169.254/metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01&msi_res_id=${UAMI_ID}" \
  --headers '{"Metadata":"true"}'

Eller använda curl med en användartilldelad identitet:

curl -H "Metadata: true" "http://169.254.169.254/metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01&msi_res_id=${UAMI_ID}"

Har du fortfarande problem?

Om stegen som beskrivs inte innehåller någon sökväg för att lösa problemet eller om du fortfarande har frågor kontaktar du supporten. Ange så mycket information som möjligt om problemet, inklusive eventuella felmeddelanden eller loggar som kan vara relevanta. Detta hjälper supportteamet att hjälpa dig mer effektivt.

Du kan öppna en supportbegäran via Azure-portalen.

Mer information om supportplaner finns i Azure-supportplaner.

Om du fortfarande har problem efter att ha följt den här felsökningsguiden kan du kontakta Microsofts support för ytterligare hjälp. När du kontaktar supporten anger du följande information som hjälper dig att diagnostisera problemet:

  • Cloud-init-loggar: /var/log/cloud-init-output.log
  • azcmagent Loggar: sudo journalctl -u azcmagent
  • Resultat av nätverksanslutningstester
  • Konfigurationsinformation för virtuell dator och hanterad identitet
  • CSN-konfigurationsinformation
  • Proxyinställningar som används
  • Exakta felmeddelanden som upplevs vid körning av az login --identity och azcmagent connect kommandon