Rozwiązywanie problemów z usługą Azure Automation State Configuration
Uwaga
Usługa Azure Automation State Configuration zostanie wycofana 30 września 2027 r., przechodząc do usługi Azure Machine Configuration do tej daty. Aby uzyskać więcej informacji, zobacz ogłoszenie w blogu. Usługa Azure Machine Configuration łączy funkcje rozszerzenia DSC, usługi Azure Automation State Configuration i najczęściej żądanych funkcji opinii klientów. Usługa Azure Machine Configuration obejmuje również obsługę maszyn hybrydowych za pośrednictwem serwerów z obsługą usługi Arc.
Uwaga
Usługa Azure Automation DSC dla systemu Linux została wycofana 30 września 2023 r. Aby uzyskać więcej informacji, zobacz ogłoszenie.
Ten artykuł zawiera informacje na temat rozwiązywania i rozwiązywania problemów występujących podczas kompilowania lub wdrażania konfiguracji w usłudze Azure Automation State Configuration. Aby uzyskać ogólne informacje na temat funkcji State Configuration, zobacz Omówienie usługi Azure Automation State Configuration.
Diagnozowanie problemu
Jeśli wystąpi błąd kompilacji lub wdrożenia konfiguracji, poniżej przedstawiono kilka kroków, które ułatwiają diagnozowanie problemu.
1. Upewnij się, że konfiguracja została pomyślnie skompilowana na komputerze lokalnym
Usługa Azure Automation State Configuration jest oparta na konfiguracji żądanego stanu programu PowerShell (DSC). Dokumentację dotyczącą języka DSC i składni można znaleźć w dokumentacji dsc programu PowerShell.
Kompilując konfigurację DSC na komputerze lokalnym, możesz odnaleźć i rozwiązać typowe błędy, takie jak:
- Brak modułów.
- Błędy składniowe.
- Błędy logiki.
2. Wyświetlanie dzienników DSC w węźle
Jeśli konfiguracja zostanie pomyślnie skompilowana, ale nie powiedzie się w przypadku zastosowania do węzła, szczegółowe informacje można znaleźć w dziennikach DSC. Aby uzyskać informacje o tym, gdzie można znaleźć te dzienniki, zobacz Gdzie znajdują się dzienniki zdarzeń DSC.
Moduł xDscDiagnostics może pomóc w analizowaniu szczegółowych informacji z dzienników DSC. Jeśli skontaktujesz się z pomocą techniczną, wymagają one tych dzienników w celu zdiagnozowania problemu.
Moduł można zainstalować xDscDiagnostics
na komputerze lokalnym, postępując zgodnie z instrukcjami w temacie Instalowanie modułu stabilnej wersji.
Aby zainstalować xDscDiagnostics
moduł na maszynie platformy Azure, użyj polecenia Invoke-AzVMRunCommand. Możesz również użyć opcji Uruchom polecenie w witrynie Azure Portal, wykonując kroki opisane w temacie Uruchamianie skryptów programu PowerShell na maszynie wirtualnej z systemem Windows za pomocą polecenia Uruchom.
Aby uzyskać informacje na temat korzystania z narzędzia xDscDiagnostics, zobacz Using xDscDiagnostics to analyze DSC logs (Używanie narzędzia xDscDiagnostics do analizowania dzienników DSC). Zobacz również polecenia cmdlet xDscDiagnostics.
3. Upewnij się, że węzły i obszar roboczy usługi Automation mają wymagane moduły
Rozszerzenie DSC zależy od modułów zainstalowanych w węźle. W przypadku korzystania z usługi Azure Automation State Configuration zaimportuj wszystkie wymagane moduły na konto usługi Automation, wykonując kroki opisane w temacie Importowanie modułów. Konfiguracje mogą również mieć zależność od określonych wersji modułów. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z modułami.
Scenariusz: Nie można usunąć konfiguracji ze znakami specjalnymi z portalu
Problem
Podczas próby usunięcia konfiguracji DSC z portalu zostanie wyświetlony następujący błąd:
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.
Przyczyna
Ten błąd jest tymczasowym problemem. Spróbuj ponownie później.
Rozwiązanie
Użyj polecenia cmdlet Remove-AzAutomationDscConfiguration, aby usunąć konfigurację.
Scenariusz: Nie można zarejestrować agenta DSC
Problem
Podczas używania polecenia Set-DscLocalConfigurationManager lub innego polecenia cmdlet DSC występuje błąd.
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
https://<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.RegisterDscAgentCommand
+ PSComputerName : <computerName>
Przyczyna
Problem z siecią może spowodować ten błąd. Sprawdź ustawienia zapory lub jeśli maszyna jest za serwerem proxy.
Rozwiązanie
Sprawdź, czy maszyna ma dostęp do odpowiednich punktów końcowych dla rozszerzenia DSC i spróbuj ponownie. Aby uzyskać listę wymaganych portów i adresów, zobacz Planowanie sieci.
Scenariusz: Raporty o stanie zwracają kod odpowiedzi Brak autoryzacji
Problem
Podczas rejestrowania węzła w usłudze Azure Automation State Configuration jest wyświetlany jeden z następujących komunikatów o błędach:
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.
Przyczyna
Poniżej przedstawiono możliwe przyczyny:
Nieprawidłowy lub wygasły certyfikat. Zobacz Ponowne rejestrowanie węzła.
Konfiguracja serwera proxy, która nie zezwala na dostęp do
*.azure-automation.net
usługi . Aby uzyskać więcej informacji, zobacz Konfiguracja sieci prywatnych.Po wyłączeniu uwierzytelniania lokalnego w usłudze Azure Automation. Zobacz Wyłączanie uwierzytelniania lokalnego. Aby rozwiązać ten problem, zobacz Ponowne włączanie uwierzytelniania lokalnego.
Czas komputera klienckiego jest o wiele minut niedokładny od rzeczywistego czasu. Użyj następującego polecenia, aby sprawdzić czas:
w32tm /stripchart /computer:time.windows.com /samples:6
.
Rozwiązanie
Wykonaj następujące kroki, aby ponownie zarejestrować węzeł DSC, który kończy się niepowodzeniem.
Krok 1. Wyrejestrowywanie węzła
- W witrynie Azure Portal przejdź do pozycji Konta> usługi Home>Automation (twoje konto usługi Automation) >Konfiguracja stanu (DSC).
- Wybierz pozycję Węzły i wybierz węzeł, który ma problemy.
- Wybierz pozycję Wyrejestruj , aby wyrejestrować węzeł.
Krok 2. Odinstalowanie rozszerzenia DSC z węzła
- W witrynie Azure Portal przejdź do pozycji> Główne rozszerzenia maszyny> wirtualnej (węzeł, który kończy się niepowodzeniem). >
- Wybierz pozycję Microsoft.Powershell.DSC, rozszerzenie DSC programu PowerShell.
- Wybierz pozycję Odinstaluj , aby odinstalować rozszerzenie.
Krok 3. Usuwanie wszystkich złych lub wygasłych certyfikatów z węzła
W węźle, który kończy się niepowodzeniem z wiersza polecenia programu PowerShell z podwyższonym poziomem uprawnień, uruchom następujące polecenia:
$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)
}
}
Krok 4. Ponowne rejestrowanie węzła zakończonego niepowodzeniem
- W witrynie Azure Portal przejdź do pozycji Konta> usługi Home>Automation (twoje konto usługi Automation) >Konfiguracja stanu (DSC).
- Wybierz pozycję Węzły.
- Wybierz Dodaj.
- Wybierz węzeł, który kończy się niepowodzeniem.
- Wybierz pozycję Połącz i wybierz odpowiednie opcje.
Scenariusz: Węzeł jest w stanie niepowodzenia z błędem "Nie znaleziono"
Problem
Węzeł ma raport ze stanem Niepowodzenie i zawiera błąd:
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.
Przyczyna
Ten błąd występuje zwykle, gdy węzeł jest przypisany do nazwy konfiguracji, na przykład ABC, zamiast nazwy konfiguracji węzła (pliku MOF), na przykład ABC. Serwer sieci Web.
Rozwiązanie
- Upewnij się, że przypisujesz węzeł z nazwą konfiguracji węzła, a nie nazwą konfiguracji.
- Konfigurację węzła można przypisać do węzła przy użyciu witryny Azure Portal lub polecenia cmdlet programu PowerShell.
- W witrynie Azure Portal przejdź do pozycji Konta> usługi Home>Automation (twoje konto usługi Automation) >Konfiguracja stanu (DSC). Następnie wybierz węzeł i wybierz pozycję Przypisz konfigurację węzła.
- Użyj polecenia cmdlet Set-AzAutomationDscNode.
Scenariusz: podczas kompilowania konfiguracji nie utworzono żadnych konfiguracji węzłów (plików MOF)
Problem
Zadanie kompilacji DSC zawiesza się z powodu błędu:
Compilation completed successfully, but no node configuration **.mof** files were generated.
Przyczyna
Gdy wyrażenie następujące po słowie Node
kluczowym w konfiguracji DSC zwróci wartość $null
, nie są generowane żadne konfiguracje węzłów.
Rozwiązanie
Aby rozwiązać ten problem, użyj jednego z następujących rozwiązań:
- Upewnij się, że wyrażenie obok słowa kluczowego
Node
w definicji konfiguracji nie jest obliczane na wartość Null. - Jeśli przekazujesz dane ConfigurationData podczas kompilowania konfiguracji, upewnij się, że przekazujesz wartości oczekiwane przez konfigurację z danych konfiguracji.
Scenariusz: raport węzła DSC zostaje zablokowany w stanie W toku
Problem
Dane wyjściowe agenta DSC:
No instance found with given property values
Przyczyna
Ten problem może wystąpić, jeśli instrumentacja zarządzania Windows (WMI) jest uszkodzona w węźle.
Rozwiązanie
Postępuj zgodnie z instrukcjami w artykule DSC znane problemy i ograniczenia.
Scenariusz: Nie można użyć poświadczeń w konfiguracji DSC
Problem
Zadanie kompilacji DSC zostało zawieszone z powodu błędu:
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.
Przyczyna
Ten problem może wystąpić, gdy używasz poświadczeń w konfiguracji, ale nie określono odpowiedniego ConfigurationData
ustawienia PSDscAllowPlainTextPassword
wartości true dla każdej konfiguracji węzła.
Rozwiązanie
Pamiętaj, aby przekazać odpowiednie ConfigurationData
ustawienie PSDscAllowPlainTextPassword
, na wartość true dla każdej konfiguracji węzła. Zobacz Kompilowanie konfiguracji DSC w usłudze Azure Automation State Configuration.
Scenariusz: błąd "Rozszerzenie przetwarzania awarii" podczas włączania maszyny z rozszerzenia DSC
Problem
Po włączeniu maszyny przy użyciu rozszerzenia DSC występuje błąd zawierający błąd:
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. .\".
Przyczyna
Ten błąd występuje zwykle, gdy węzeł ma przypisaną nazwę konfiguracji węzła, która nie istnieje w usłudze.
Rozwiązanie
Upewnij się, że nazwa węzła, która dokładnie odpowiada nazwie w usłudze, lub nie zawiera nazwy konfiguracji węzła. Włącza to węzeł, ale nie przypisuje konfiguracji węzła.
Scenariusz: błąd "Wystąpił co najmniej jeden błąd" podczas rejestrowania węzła przy użyciu programu PowerShell
Problem
Podczas rejestrowania węzła przy użyciu polecenia Register-AzAutomationDSCNode lub Register-AzureRMAutomationDSCNode występuje następujący błąd:
One or more errors occurred.
Przyczyna
Ten błąd występuje podczas próby zarejestrowania węzła w subskrypcji innej niż ta używana przez konto usługi Automation.
Rozwiązanie
Traktuj węzeł między subskrypcjami jako węzeł zdefiniowany dla oddzielnej chmury lub środowiska lokalnego. Zarejestruj węzeł przy użyciu jednej z następujących opcji włączania maszyn:
- Windows: maszyny fizyczne/wirtualne z systemem Windows lokalnie lub w chmurze innej niż Azure/AWS.
- Linux: maszyny fizyczne/wirtualne z systemem Linux lokalnie lub w chmurze innej niż platforma Azure.
Scenariusz: komunikat o błędzie "Inicjowanie obsługi administracyjnej nie powiodło się"
Problem
Podczas rejestrowania węzła zostanie wyświetlony błąd:
Provisioning has failed
Przyczyna
Ten komunikat występuje, gdy występuje problem z łącznością między węzłem a platformą Azure.
Rozwiązanie
Ustal, czy węzeł znajduje się w wirtualnej sieci prywatnej (VPN) lub ma inne problemy z nawiązywaniem połączenia z platformą Azure. Zobacz Rozwiązywanie problemów z wdrażaniem funkcji.
Scenariusz: Błąd z ogólnym błędem podczas stosowania konfiguracji w systemie Linux
Problem
Po zastosowaniu konfiguracji w systemie Linux wystąpi błąd zawierający błąd:
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..
Przyczyna
Jeśli /tmp lokalizacji jest ustawiona na noexec
, bieżąca wersja DSC nie może zastosować konfiguracji.
Rozwiązanie
noexec
Usuń opcję z lokalizacji /tmp.
Scenariusz: nazwy konfiguracji węzła, które nakładają się na siebie, mogą spowodować nieprawidłowe wydanie
Problem
Jeśli używasz pojedynczego skryptu konfiguracji do generowania wielu konfiguracji węzłów, a niektóre nazwy konfiguracji węzła są podzestawami innych nazw, usługa kompilacji może w końcu przypisać nieprawidłową konfigurację. Ten problem występuje tylko wtedy, gdy używasz pojedynczego skryptu do generowania konfiguracji z danymi konfiguracji na węzeł i tylko wtedy, gdy nazwa nakłada się na siebie na początku ciągu. Przykładem jest pojedynczy skrypt konfiguracji służący do generowania konfiguracji na podstawie danych węzła przekazywanych jako tabela skrótu przy użyciu poleceń cmdlet, a dane węzła obejmują serwery o nazwie serwer i 1server.
Przyczyna
Jest to znany problem z usługą kompilacji.
Rozwiązanie
Najlepszym obejściem jest skompilowanie lokalnie lub w potoku ciągłej integracji/ciągłego wdrażania i przekazanie plików MOF konfiguracji węzła bezpośrednio do usługi. Jeśli kompilacja w usłudze jest wymagana, następnym najlepszym obejściem jest podzielenie zadań kompilacji tak, aby nazwy nie nakładały się na siebie.
Scenariusz: błąd przekroczenia limitu czasu bramy podczas przekazywania konfiguracji DSC
Problem
Podczas przekazywania konfiguracji DSC występuje GatewayTimeout
błąd.
Przyczyna
Konfiguracje DSC, które kompilacja zajmuje dużo czasu, mogą spowodować ten błąd.
Rozwiązanie
Konfiguracje DSC można szybciej analizować, jawnie włączając ModuleName
parametr dla dowolnych wywołań Import-DSCResource .
Scenariusz: Błąd podczas dołączania maszyny
Problem
Podczas dołączania maszyny występuje agent has a problem
błąd.
Przyczyna
Jest to znany problem. Nie można ponownie przypisać tej samej konfiguracji, ponieważ węzeł pozostaje w stanie oczekiwania.
Rozwiązanie
Aby obejść ten problem, zastosuj inną konfigurację testu i spróbuj ponownie wykonać oryginalną konfigurację.
Następne kroki
Jeśli w tym miejscu nie widzisz problemu lub nie możesz rozwiązać problemu, spróbuj wykonać jedną z następujących kanałów pomocy technicznej:
- Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem forów platformy Azure.
- Połącz się z @AzureSupport oficjalnym kontem platformy Microsoft Azure, aby poprawić jakość obsługi klienta. Pomoc techniczna platformy Azure łączy społeczność platformy Azure z odpowiedziami, pomocą techniczną i ekspertami.
- Zgłoś zdarzenie pomoc techniczna platformy Azure. Przejdź do witryny pomoc techniczna platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną.