Устранение проблем с настройкой состояния службы автоматизации Azure

В этой статье содержатся сведения об устранении неполадок и решении проблем, возникающих при компиляции или развертывании конфигураций в настройке состояния службы автоматизации Azure. Общие сведения о функции «Настройка состояния» доступны в разделе Общие сведения о настройке состояния службы автоматизации Azure.

Диагностика проблемы

При возникновении ошибки компиляции или развертывания для настройки нужно выполнить следующие диагностические действия.

1. Убедитесь, что конфигурация успешно компилируется на локальном компьютере

Настройка состояния службы автоматизации Azure основана на настройке требуемого состояния (DSC) PowerShell. Документацию по языку DSC и синтаксису можно найти в разделе Документация DSC PowerShell.

Компилируя конфигурацию DSC на локальном компьютере, можно обнаруживать и устранять распространенные ошибки:

  • отсутствующие модули;
  • синтаксические ошибки;
  • логические ошибки.

2. Просмотр журналов DSC на узле

Если конфигурация компилируется успешно, но при использовании на узле происходит сбой, найти подробную информацию можно в журналах DSC. Сведения о том, где найти эти журналы, приводятся в статье Где найти журналы событий DSC.

Модуль xDscDiagnostics поможет проанализировать подробные сведения из журналов DSC. При обращении в службу поддержки эти журналы необходимы для диагностики проблемы.

Можно установить модуль xDscDiagnostics на локальном компьютере, выполнив инструкции из статьи Установка модуля стабильной версии.

Чтобы установить модуль xDscDiagnostics на компьютере Azure, используйте команду Invoke-AzVMRunCommand. Кроме того, можно воспользоваться функцией Выполнить команду на портале Microsoft Azure. Для этого выполните инструкции в статье Запуск сценариев PowerShell на виртуальной машине с Windows с помощью функции «Выполнить команду».

Сведения об использовании командлета xDscDiagnostics см. в статье Использование xDscDiagnostics для анализа журналов DSC. См. также статью Командлеты xDscDiagnostics.

3. Убедитесь, что узлы и рабочая область автоматизации имеют необходимые модули

DSC зависит от модулей, установленных на узле. При настройке состояния службы автоматизации Azure импортируйте необходимые модули в учетную запись службы автоматизации, выполнив инструкции из раздела Импорт модулей. Конфигурации также могут иметь зависимости от определенных версий модулей. Дополнительные сведения см. в статье Устранение неполадок в модулях.

Сценарий. Конфигурация с специальными символами не может быть удалена на портале

Проблема

При попытке удалить конфигурацию DSC с портала отображается следующая ошибка.

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.

Причина

Эта ошибка является временной проблемой, которую скоро планируется устранить.

Разрешение

Используйте командлет Remove-AzAutomationDscConfiguration для удаления конфигурации.

Сценарий: не удалось зарегистрировать агент DSC

Проблема

При использовании Set-DscLocalConfigurationManager или другого командлета DSC отображается ошибка:

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>

Причина

Эта ошибка обычно вызвана брандмауэром, компьютером, который находится за прокси-сервером, или другими сетевыми проблемами.

Разрешение

Убедитесь, что у компьютера есть доступ к соответствующим конечным точкам DSC, и повторите попытку. Список необходимых портов и адресов можно узнать в разделе Планирование сети.

Сценарий. Отчеты о состоянии возвращают код ответа Несанкционированным

Проблема

При регистрации узла во время настройки состояния службы автоматизации Azure отображается одно из следующих сообщений об ошибке.

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.

Причина

Ниже приведены возможные причины.

Разрешение

Чтобы повторно зарегистрировать неисправный узел DSC, выполните следующие действия.

Шаг 1. Отмена регистрации узла

  1. В портал Azure перейдите к >учетной записи домашней службы автоматизации (учетная запись> службы автоматизации) >конфигурации состояния (DSC).
  2. Выберите Узлы и узел с проблемами.
  3. Выберите Отменить регистрацию, чтобы отменить регистрацию узла.

Шаг 2. Удаление расширения DSC с узла

  1. В портал Azure перейдите к расширениям домашней>виртуальной машины> (сбой узла). >
  2. Выберите Microsoft.Powershell.DSC — расширение PowerShell DSC.
  3. Выберите Удалить, чтобы удалить расширение.

Шаг 3. Удаление всех плохих или просроченных сертификатов с узла

На неисправном узле выполните следующие команды в сеансе PowerShell с повышенными правами.

$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)
    }
}

Шаг 4. Повторная регистрация неработоспособных узлов

  1. В портал Azure перейдите к >учетной записи домашней службы автоматизации (учетная запись> службы автоматизации) >конфигурации состояния (DSC).
  2. Выберите Узлы.
  3. Выберите Добавить.
  4. Выберите неисправный узел.
  5. Нажмите Подключить и выберите нужные параметры.

Сценарий: узел находится в состоянии сбоя с ошибкой "Не найдено"

Проблема

Узел содержит отчет со статусом «Сбой» и ошибку:

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.

Причина

Эта ошибка обычно возникает из-за того, что узлу назначается имя конфигурации (например, ABC) вместо имени конфигурации узла (файл MOF), например ABC.WebServer.

Разрешение

  • Убедитесь, что вы назначаете узел с именем конфигурации узла, а не имя конфигурации.

  • Конфигурацию узла можно назначить узлу с помощью портала Azure или с помощью командлета PowerShell.

    • В портал Azure перейдите к >учетной записи домашней службы автоматизации (учетная запись> службы автоматизации) >конфигурации состояния (DSC). Затем выберите узел и щелкните Назначить конфигурацию узла.
    • Используйте командлет Set-AzAutomationDscNode.

Сценарий. При компиляции конфигурации узлов (MOF-файлы) не создавались

Проблема

Задание компиляции DSC приостановлено с ошибкой:

Compilation completed successfully, but no node configuration **.mof** files were generated.

Причина

Если выражение, указанное в конфигурации DSC рядом с ключевым словом Node, возвращает результат $null, конфигурация узла не создается.

Разрешение

Эту проблему можно устранить одним из следующих способов.

  • Убедитесь, что выражение рядом с ключевым словом Node в определении конфигурации не равно Null.
  • Если при компиляции конфигурации вы передаете ConfigurationData, то убедитесь, что передаются значения, которые конфигурация ожидает получить из данных конфигурации.

Сценарий: отчет узла DSC зависает в состоянии "Ход выполнения"

Проблема

Агент DSC выводит такое сообщение:

No instance found with given property values

Причина

Вы обновили версию Windows Management Framework (WMF) и повредили Инструментарий управления Windows (WMI).

Разрешение

Выполните инструкции из статьи Известные проблемы и ограничения настройки требуемого состояния (DSC).

Сценарий: не удается использовать учетные данные в конфигурации DSC

Проблема

Задание компиляции DSC приостановлено со следующей ошибкой:

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.

Причина

Вы использовали учетные данные в конфигурации, но не передали соответствующие данные ConfigurationData, чтобы присвоить PSDscAllowPlainTextPassword значение true для каждой конфигурации узла.

Разрешение

Передайте правильные данные ConfigurationData, чтобы присвоить PSDscAllowPlainTextPassword значение true для конфигурации каждого узла, упомянутого в конфигурации. См. раздел Компилирование конфигураций DSC в службе «Настройка состояния службы автоматизации Azure».

Сценарий: ошибка "Расширение обработки сбоев" при включении компьютера из расширения DSC

Проблема

При включении компьютера с помощью расширения DSC происходит сбой, который содержит ошибку:

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. .\".

Причина

Эта ошибка обычно возникает, когда узлу назначено имя конфигурации узла, которое не существует в службе.

Разрешение

  • Убедитесь, что вы назначаете узлу имя, которое точно соответствует имени в службе.
  • Можно не включать имя конфигурации узла, что приведет к включению узла, но не к назначению конфигурации узла.

Сценарий: ошибка "Произошла одна или несколько ошибок" при регистрации узла с помощью PowerShell

Проблема

При регистрации узла с использованием командлета Register-AzAutomationDSCNode или Register-AzureRMAutomationDSCNode отображается следующая ошибка.

One or more errors occurred.

Причина

Эта ошибка возникает при попытке зарегистрировать узел в отдельной подписке, которая используется учетной записью службы автоматизации.

Разрешение

Рассматривайте узел для использования с несколькими подписками, как если бы он был определен для отдельного облака или локальной среды. Зарегистрируйте узел, используя один из следующих параметров для включения компьютеров.

Сценарий: сообщение об ошибке "Подготовка завершилась сбоем"

Проблема

При регистрации узла отображается сообщение об ошибке:

Provisioning has failed

Причина

Это сообщение появляется при наличии проблем с подключением между узлом и Azure.

Разрешение

Определите, находится ли узел в виртуальной частной сети (VPN) или имеет другие проблемы с подключением к Azure. См. раздел Устранение неполадок с развертыванием компонентов.

Сценарий. Сбой с общей ошибкой при применении конфигурации в Linux

Проблема

При применении конфигурации в Linux происходит сбой, который содержит ошибку:

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..

Причина

Если для расположения /tmp задано значение noexec, текущей версии DSC не удается применить конфигурации.

Разрешение

Удалите параметр noexec из расположения /tmp.

Сценарий. Имена конфигурации узла, которые перекрываются, могут привести к плохому выпуску

Проблема

При использовании одного сценария конфигурации для создания нескольких конфигураций узлов, когда некоторые имена конфигураций узлов являются подмножествами других имен, служба компиляции может назначить неправильную конфигурацию. Эта проблема возникает только при использовании одного сценария для генерирования конфигураций с данными конфигурации для каждого узла и только когда происходит перекрытие имен в начале строки. В примере показано использование одного сценария конфигурации для генерирования конфигураций на основе данных узлов, переданных в качестве таблицы хэшей с использованием командлетов, когда данные узла включают серверы с именем server и 1server.

Причина

Это известная проблема со службой компиляции.

Разрешение

Наилучшим решением является локальная компиляция или компиляция в процессе непрерывной интеграции и развертывания с последующей отправкой MOS-файлов конфигурации узла непосредственно в службу. Если компиляция в службе является обязательным требованием, то следующим лучшим решением будет разделение заданий компиляции так, чтобы имена не перекрывались.

Сценарий: ошибка времени ожидания шлюза при отправке конфигурации DSC

Проблема

При отправке конфигурации DSC появляется сообщение об ошибке GatewayTimeout.

Причина

Эта ошибка может быть вызвана настройками DSC, компиляция которых занимает много времени.

Разрешение

Можно ускорить синтаксический анализ настроек DSC, явно включив параметры ModuleName для любых вызовов Import-DSCResource.

Сценарий. Ошибка при подключении компьютера

Проблема

При подключении agent has a problem компьютера возникает ошибка.

Причина

Это известная проблема. Нельзя снова назначить ту же конфигурацию, что и узел остается в состоянии ожидания.

Разрешение

Для этого необходимо применить другую конфигурацию теста и снова применить исходную конфигурацию.

Следующие шаги

Если вы не нашли здесь свою проблему или рекомендации не позволили ее решить, попробуйте использовать один из следующих каналов для получения дополнительной поддержки.

  • Получите ответы специалистов Azure на форумах Azure.
  • Подпишитесь на @AzureSupport, официальный канал Microsoft Azure для улучшения качества взаимодействия с клиентами. Служба поддержки Azure взаимодействует с сообществом Azure, предоставляя ответы, поддержку и советы экспертов.
  • Отправьте запрос в службу поддержки Azure Перейдите на сайт поддержки Azure и выберите Получить поддержку.