Rozwiązywanie problemów z walidacją wdrożenia w portalu Azure dla funkcji Azure Local
Dotyczy: Azure Local 2405 i nowsze
Ten artykuł zawiera wskazówki dotyczące rozwiązywania problemów z walidacją wdrożenia występujących podczas wdrażania usługi Azure Local za pośrednictwem witryny Azure Portal.
Błąd — niepowodzenie walidacji wdrożenia
Podczas wdrażania usługi Azure Local za pośrednictwem witryny Azure Portal może wystąpić błąd weryfikacji wdrożenia. Zadanie weryfikacji "Sieć lokalna platformy Azure — sprawdzanie wymagań sieciowych" kończy się niepowodzeniem z powodu następującego błędu:
Could not complete the operation. 400: Resource creation validation failed. Details:
[{"Code":"AnswerFileValidationFailed","Message":"Errors in Value Validation:\r\nPhysicalNodesValidator
found error at deploymentdata.physicalnodes[0].ipv4address: The specified for
\u0027deploymentdata.physicalnodes[0].ipv4address\u0027 is not a valid IPv4 address.
Example: 192.168.0.1 or 192.168.0.1","Target":null,"Details":null}].
Jeśli przejdziesz do karty Sieci we wdrożeniu w portalu Azure, w konfiguracji Intencji sieci może zostać wyświetlony następujący błąd:
The selected physical network adapter is not binded to the management virtual switch.
Przyczyna
Problem ten występuje w przypadku wdrożeń uruchomionych po 6 sierpnia. Problem występuje, jeśli walidacja wdrożenia została wyzwolona w systemie, a wynik weryfikacji był niepowodzeniem, a kolejne próby weryfikacji zostały ponawiane.
Problem występuje z następującej przyczyny:
- Walidacja na urządzeniu tworzy przełącznik sieciowy dla maszyn wirtualnych na potrzeby testów związanych z siecią i jest usuwany po zakończeniu testów.
-
DeviceManagementExtension
rozszerzenie nie wykrywa usunięcia przełącznika maszyny wirtualnej.
Zalecane rozwiązanie
Proces wieloetapowego rozwiązywania obejmuje następujące kroki:
- Usuń blokadę z węzła startowego
- Usuwanie błędu sprawdzania poprawności
- Usuń nieprawidłowe informacje o przełączniku maszyny wirtualnej z zasobu platformy Azure urządzenia brzegowego
- Odświeżanie danych w chmurze
- Ponowne uruchamianie wdrożenia za pośrednictwem witryny Azure Portal
- Odtwórz blokadę na zasobie węzła źródłowego
Uwaga
Wszystkie kroki opisane w tym artykule należy wykonać w węźle początkowym.
Usuń blokadę z węzła startowego
Wykonaj następujące kroki, aby usunąć blokadę z węzła inicjującego:
- Aby usunąć blokadę, w witrynie Azure Portal przejdź do obiektu za pośrednictwem grupy zasobów lub w obszarze Maszyny — Azure Arc.
- W okienku po lewej stronie przejdź do Ustawienia > Blokady. Powinna zostać wyświetlona blokada o nazwie DoNotDelete. Jest to automatyczna blokada zasobów tworzona podczas dołączania węzła.
- Wybierz pozycję Usuń względem blokady.
Jeśli spróbujesz wykonać kroki w następnej sekcji bez usunięcia blokady, polecenie Usuń zakończy się niepowodzeniem z następującym błędem:
Some resources failed to be deleted (run with `--verbose` for more information):
/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default
Oto przykładowe dane wyjściowe po uruchomieniu za pomocą przełącznika --verbose
:
(ScopeLocked) The scope '/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' cannot perform delete operation because following scope(s) are locked: '/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>'. Please remove the lock and try again.
Code: ScopeLocked
Message: The scope '/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' cannot perform delete operation because following scope(s) are locked: '/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>'. Please remove the lock and try again.
Usuwanie błędu sprawdzania poprawności
Po usunięciu blokady wykonaj następujące kroki, aby usunąć błąd weryfikacji.
Połącz się z węzłem zalążkowym. Uruchom następujące polecenie programu PowerShell:
Get-VMSwitch
Sprawdź dane wyjściowe komendy
Get-VMSwitch
pod kątem jakichkolwiek nieoczekiwanych przełączników maszyn wirtualnych, na przykład przełącznika, który jest tworzony podczas kroku Walidacja sieci i ma nazwę podobną do:"ConvergedSwitch(compute_management)"
. Dokładna nazwa przełącznika zależy od wybranej konfiguracji intencji sieciowej.Jeśli istnieje przełącznik maszyny wirtualnej, który nie został celowo utworzony, usuń przełącznik. Uruchom następujące polecenie programu PowerShell:
Remove-VMSwitch -Name "<VM Switch Name>" -Force
Pamiętaj, aby użyć nazwy przełącznika VM z polecenia
Get-VMSwitch
. Jeśli celowo nie utworzono przełącznika maszyny wirtualnej,Get-VMSwitch
polecenie nie ma wyników. Wystąpiła awaria, ponieważ krok walidacji sieci oczyścił przełącznik maszyny wirtualnej, aleDeviceManagementExtension
nie wykrył, że czyszczenie miało miejsce.
Kontynuuj kroki oczyszczania.
Czyszczenie zasobu platformy Azure urządzenia brzegowego przy użyciu nieprawidłowych informacji o przełączniku maszyny wirtualnej
Po usunięciu przełącznika maszyny wirtualnej na urządzeniu wyczyść zasób ARM urządzenia brzegowego zawierający nieprawidłowe informacje o przełączniku maszyny wirtualnej za pośrednictwem Azure CLI.
Na kliencie, który może uzyskać dostęp do platformy Azure, sprawdź zainstalowanie lub zainstaluj Azure CLI: Instalowanie Azure CLI w systemie Windows
- Możesz zweryfikować instalację, uruchamiając polecenie:
az
- Jeśli jest zainstalowany, spowoduje to utworzenie komunikatu
"Welcome to Azure CLI!"
z dostępnymi poleceniami.
- Możesz zweryfikować instalację, uruchamiając polecenie:
Zaloguj się do Azure za pomocą Azure CLI. Uruchom następujące polecenie:
az login --tenant <tenant ID> --use-device-code
Aby uzyskać więcej informacji, zaloguj się interaktywnie za pomocą Azure CLI
Aby ustawić określoną subskrypcję, uruchom następujące polecenie:
az account set --subscription "<Subscription ID>"
Zastąp wartość w powyższym przykładowym poleceniu odpowiednią wartością .
<Subscription ID>
Wyprowadź dane przechowywane w zasobie, który zawiera niepoprawnie przechowywane informacje o przełączniku
edgeDevices
maszyny wirtualnej. Uruchom następujące polecenie:az resource show --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default"
Zastąp wartości w powyższym przykładowym poleceniu odpowiednimi wartościami dla:
<Subscription ID>
,<Resource Group Name>
i<Machine Name>
.Oto przykładowe dane wyjściowe:
az resource show --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/ASRR1N26R15U33/providers/Microsoft.AzureStackHCI/edgeDevices/default"
Dane wyjściowe tego polecenia zawierają sporo szczegółów dotyczących <nazwy> maszyny używanej w poleceniu . W dolnej części danych wyjściowych znajduje się sekcja dla elementu
"switchDetails"
, która prawdopodobnie zawiera następujące informacje (przełącznik VM do weryfikacji, który został utworzony i wyczyszczony na urządzeniu, ale nie został wykryty przez DeviceManagementExtension i zaktualizowany po stronie chmury):"switchName": "ConvergedSwitch(managementcompute)",
"switchType": "External"
Po potwierdzeniu, że polecenie
show
działało poprzez wyprowadzenie danychedgeDevices
i prawdopodobnie potwierdzeniu"switchDetails"
, nadszedł czas nadelete
zasób z usługi ARM, aby można było odpowiednio go odświeżyć z węzła inicjującego.Uwaga
Usunięcie
edgeDevices
danych jest bezpieczną akcją do wykonania, ale powinno być wykonywane tylko wtedy, gdy jawnie określono. Nie wykonuj tej akcji, chyba że zaleca się wykonanie tej czynności.edgeDevices
Usuń zasób, który zawiera niepoprawnie przechowywane informacje o przełączniku maszyny wirtualnej. Uruchom następujące polecenie:az resource delete --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default"
Zastąp wartości (pamiętaj również, aby usunąć <> znaki) odpowiednimi wartościami:
<subGUID>
<resourceGROUPNAME>
<Machine Name>
Jest to ten sam zasób
--ids
zshow
, więc możesz użyć tego samego ciągu znaków. W rzeczywistości możesz po prostu nacisnąć strzałkę w górę na klawiaturze w konsoli i zastąpićshow
nadelete
.Oto przykładowe dane wyjściowe:
`az resource delete --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default"
Po uruchomieniu to polecenie nie generuje żadnego wyniku. Polecenie działa i zwraca wiersz polecenia lub wyświetla błąd. Nie powinien on przedstawiać błędu, ale jeśli tak, będzie to wymagało więcej rozwiązywania problemów.
Sprawdź usunięcie zasobu, ponownie uruchamiając polecenie
show
. Oto przykładowe dane wyjściowe:(ResourceNotFound) The resource 'Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' could not be found. Code: ResourceNotFound Message: The resource 'Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' could not be found.
Odświeżanie danych w chmurze edgeDevices
Gdy zasób usługi ARM i wszystkie niezamierzone przełączniki maszyny wirtualnej zostaną usunięte, odśwież ponownie dane po stronie edgeDevices
chmury.
Wykonaj następujące kroki, aby odświeżyć dane w chmurze:
DeviceManagementService
Uruchom ponownie na węźle startowym. Uruchom następujące polecenie programu PowerShell:Restart-Service DeviceManagementService
Poczekaj kilka minut, a następnie sprawdź, czy dane w chmurze
edgeDevices
są aktualizowane i odzwierciedlają bieżący stan.show
Uruchom ponownie polecenie i przejrzyj dane wyjściowe. Upewnij się, że dane wyjściowe nie zawierają już żadnych nieoczekiwanych przełączników maszyn wirtualnych, a mianowicie:"switchName": "ConvergedSwitch(managementcompute)",
"switchType": "External"
Ponowne uruchamianie wdrożenia za pośrednictwem witryny Azure Portal
Gdy dane urządzenia i chmury są teraz synchronizowane, możesz przejść do witryny Azure Portal i podać dane wejściowe wdrożenia. Poprzedni krok uniemożliwia buforowane informacje z poprzednich prób.
Wykonaj następujące kroki w witrynie Azure Portal:
Na karcie Podstawy podaj swoje dane wejściowe (wybierając ponownie z list rozwijanych) do pól z góry.
Usuń zaznaczenie węzłów w dolnej części strony.
Zweryfikuj ponownie wybrane węzły.
Potwierdź informacje na kolejnych stronach. Powinny zostać wyświetlone następujące zmiany:
- Na stronie Networking nie powinien już być widoczny błąd
The selected physical network adapter is not binded to the management virtual Switch
, który mógł być widoczny wcześniej. - Na stronie Walidacja na końcu, jeśli przekroczyłeś oryginalny problem, błąd
deploymentdata.physicalnodes[0].ipv4address is not a valid IPv4 address
nie będzie wyświetlany.
- Na stronie Networking nie powinien już być widoczny błąd
Jeśli nie wystąpią żadne inne problemy z walidacją, uruchom wdrożenie.
Odtwórz blokadę na zasobie węzła źródłowego
Po zakończeniu ograniczania ryzyka zdecydowanie zalecamy ponowne utworzenie blokady zasobu.
Wykonaj następujące kroki, aby ponownie utworzyć blokadę:
- W witrynie Azure Portal przejdź do obiektu za pośrednictwem grupy zasobów lub w obszarze Maszyny — Azure Arc.
- Przejdź do pozycji Ustawienia > Blokady.
- Wybierz pozycję + Dodaj w górnej części strony.
- W polu Nazwa blokady wprowadź wartość DoNotDelete.
- W polu Typ blokady wybierz pozycję Usuń z listy rozwijanej.
- Wybierz przycisk OK , aby zapisać blokadę.