Rozwiązywanie problemów z usługą Azure Automation State Configuration

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, który ma zostać rozwiązany.

Rozwiązanie

Użyj polecenia cmdlet Remove-AzAutomationDscConfiguration, aby usunąć konfigurację.

Scenariusz: Nie można zarejestrować agenta DSC

Problem

W przypadku polecenia cmdlet 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 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>

Przyczyna

Ten błąd jest zwykle spowodowany przez zaporę, maszynę będącą za serwerem proxy lub inne błędy sieci.

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 pliku *.azure-automation.net. 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. (Aby sprawdzić czas użycia: 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

  1. W witrynie Azure Portal przejdź do pozycji Konta> usługi Home>Automation (twoje konto usługi Automation) >Konfiguracja stanu (DSC).
  2. Wybierz pozycję Węzły i wybierz węzeł, który ma problemy.
  3. Wybierz pozycję Wyrejestruj , aby wyrejestrować węzeł.

Krok 2. Odinstalowanie rozszerzenia DSC z węzła

  1. W witrynie Azure Portal przejdź do pozycji> Główne rozszerzenia maszyny> wirtualnej (węzeł, który kończy się niepowodzeniem). >
  2. Wybierz pozycję Microsoft.Powershell.DSC, rozszerzenie DSC programu PowerShell.
  3. 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

  1. W witrynie Azure Portal przejdź do pozycji Konta> usługi Home>Automation (twoje konto usługi Automation) >Konfiguracja stanu (DSC).
  2. Wybierz pozycję Węzły.
  3. Wybierz pozycję Dodaj.
  4. Wybierz węzeł, który kończy się niepowodzeniem.
  5. Wybierz Połączenie 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

Uaktualniono wersję programu Windows Management Framework (WMF) i uszkodzono instrumentację zarządzania Windows (WMI).

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

W konfiguracji użyto poświadczeń, ale nie określono odpowiedniego ConfigurationData ustawienia PSDscAllowPlainTextPassword wartości true dla każdej konfiguracji węzła.

Rozwiązanie

Upewnij się, że parametr jest prawidłowy ConfigurationData , aby ustawić PSDscAllowPlainTextPassword wartość true dla każdej konfiguracji węzła wymienionej w konfiguracji. 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 przypisujesz węzeł o nazwie, która dokładnie odpowiada nazwie w usłudze.
  • Możesz nie uwzględnić nazwy konfiguracji węzła, co powoduje włączenie węzła, ale nie przypisanie 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 oddzielnej subskrypcji niż używane przez konto usługi Automation.

Rozwiązanie

Traktuj węzeł między subskrypcjami, tak jakby został zdefiniowany dla oddzielnej chmury lub środowiska lokalnego. Zarejestruj węzeł przy użyciu jednej z następujących opcji włączania maszyn:

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

Obejście polega na zastosowaniu innej konfiguracji testu i ponownym zastosowaniu oryginalnej konfiguracji.

Następne kroki

Jeśli w tym miejscu nie widzisz problemu lub nie możesz rozwiązać problemu, wypróbuj jeden z następujących kanałów, aby uzyskać dodatkową pomoc techniczną:

  • Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem forów platformy Azure.
  • Połączenie za pomocą @AzureSupport oficjalne konto platformy Microsoft Azure w celu poprawy jakości 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ą.