Поделиться через


Устранение неполадок артефактов на виртуальных машинах лаборатории в Azure DevTest Labs

В этой статье описаны возможные причины и устранение неполадок при сбоях артефактов в ресурсах виртуальной машины Azure DevTest Labs.

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

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

Устранение неполадок с помощью портала Azure

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

Проверка состояния виртуальной машины

Проверьте состояние виртуальной машины в портал Azure, выполнив следующие действия.

  1. Перейдите на страницу обзора виртуальной машины лаборатории DevTest Labs и убедитесь, что компьютер запущен:

    Снимок экрана: проверка запуска виртуальной машины DevTest Labs.

  2. Выберите артефакты и откройте список артефактов для виртуальной машины лаборатории:

    Снимок экрана: открытие списка артефактов для виртуальной машины лаборатории.

  3. Проверьте параметр Apply artifacts и убедитесь, что виртуальная машина лаборатории готова принять примененные артефакты:

    Снимок экрана, на котором показано, как подтвердить применение артефактов к виртуальной машине DevTest Labs.

    Если параметр Apply artifacts имеет серый цвет, вы не можете применить артефакты к виртуальной машине лаборатории, а на странице появится сообщение об уведомлении:

    Снимок экрана: сообщение с артефактами не может быть применено к виртуальной машине DevTest Labs.

Выполните команду PowerShell

Вы также можете использовать Azure PowerShell, чтобы проверить, может ли виртуальная машина лаборатории получать примененные артефакты.

GET Следующая команда возвращает canApplyArtifacts флаг со значением True или False. Чтобы выполнить команду, замените $LabName/$VmName параметр именем лаборатории и именем виртуальной машины и укажите группу ресурсов лаборатории в параметре $LabRgName .

Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null
$vm = Get-AzResource `
        -Name "$LabName/$VmName" `
        -ResourceGroupName $LabRgName `
        -ResourceType 'microsoft.devtestlab/labs/virtualmachines' `
        -ApiVersion '2018-10-15-preview' `
        -ODataQuery '$expand=Properties($expand=ComputeVm)'
$vm.Properties.canApplyArtifacts

Изучение сведений о артефакте с ошибкой

Артефакт может перестать отвечать и в конечном итоге отображаться как "Не удалось " в списке артефактов для виртуальной машины лаборатории.

Изучите неудачные артефакты, выполнив следующие действия:

  1. Перейдите на страницу списка артефактов для виртуальной машины лаборатории и выберите артефакт с состоянием failed :

    Снимок экрана: поиск и выбор неудачного артефакта для виртуальной машины лаборатории.

  2. Откроется представление сведений об артефакте . Ниже приведены сведения о сбое сообщения развертывания и расширения :

    Снимок экрана: сведения о неудачной артефакте, включая сведения о развертывании и расширении.

Проверка журналов действий

Чтобы установить артефакты, служба DevTest Labs создаст и развернет шаблон Azure Resource Manager (ARM), который запросит использование расширения пользовательских скриптов (CSE). Ошибка на этом уровне отображается в журналах действий для подписки и группы ресурсов, содержащей виртуальную машину лаборатории.

Примечание.

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

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

  1. Перейдите на страницу журнала действий для виртуальной машины лаборатории и найдите артефакт с состоянием сбоя :

    Снимок экрана, на котором показано, как найти запись журнала действий для неудачного артефакта на виртуальной машине лаборатории.

  2. Выберите запись, чтобы открыть область сведений и просмотреть сведения о журнале:

    • Если вы пытаетесь применить артефакт непосредственно к виртуальной машине лаборатории, найдите ошибки сбоя, связанные с процессом установки расширения виртуальной машины создания или обновления.

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

    Заголовок области соответствует заголовку записи, например применению артефактов к виртуальной машине:

    Снимок экрана, на котором показано, как просмотреть сведения о записи журнала действий для неудавшемся артефакта.

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

    Снимок экрана: просмотр сведений JSON для записи журнала действий для артефакта с ошибкой.

Изучение репозитория артефактов и учетной записи хранения лаборатории

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

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

  • Если пользовательский артефакт не удается установить, убедитесь, что срок действия личного маркера доступа (PAT) для частного репозитория не истек. Если срок действия PAT истек, артефакт не указан, а все скрипты, ссылающиеся на артефакты из этого репозитория, завершаются сбоем.

  • Если доступ к учетной записи хранения заблокирован, может появиться ошибка, аналогичная этому примеру:

    CSE Error: Failed to download all specified files. Exiting. Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
    

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

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

  1. Проверьте наличие добавленных групп безопасности сети (NSG). Если политика подписки добавляется для автоматической настройки групп безопасности сети во всех виртуальных сетях, это может повлиять на виртуальную сеть, используемую для создания виртуальных машин лаборатории.

  2. Проверьте все правила NSG:

  3. Проверьте учетную запись хранения по умолчанию для лаборатории.

    Учетная запись хранения по умолчанию — это первая учетная запись хранения, созданная во время создания лаборатории. Имя обычно начинается с буквы "a" и заканчивается многозначным числом, например a<labname>#.

    1. Перейдите на страницу обзора виртуальной машины лаборатории DevTest Labs и выберите визуализатор ресурсов.

    2. На схеме найдите учетную запись хранения с именем, соответствующим описанному соглашению об именовании. a<labname>#

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

      Снимок экрана: выбор параметра

    4. На странице обзора учетной записи хранения разверните раздел "Безопасность и сеть" в меню слева и выберите "Сеть".

      Снимок экрана: просмотр конфигурации сети для учетной записи хранения для ресурса лаборатории DevTest Labs.

    5. На вкладке "Брандмауэры и виртуальные сети" проверьте конфигурацию параметра доступа к общедоступной сети:

      1. Если выбран параметр "Включено" из выбранных виртуальных сетей и IP-адресов , убедитесь, что список разрешенных IP-адресов отображает виртуальные сети лаборатории, которые можно использовать для создания виртуальных машин лаборатории:

        Снимок экрана, на котором показан параметр

      2. В противном случае выбран параметр "Включено " из всех сетей :

        Снимок экрана: включенный из всех сетей выбор учетной записи хранения ресурсов лаборатории.

Для получения более подробной информации об устранении неполадок см. статью Настройка брандмауэров и виртуальных сетей службы хранилища Azure.

Устранение неполадок на компьютере лаборатории

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

Проверка файла журнала расширения пользовательского скрипта

Просмотрите файл журнала расширения пользовательских скриптов (CSE) для виртуальной машины Windows, выполнив следующие действия.

  1. Подключитесь к виртуальной машине лаборатории DevTest Labs.

  2. Откройте окно проводник и перейдите в раздел C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. Пример <версии> CSE.1.10.12

    Снимок экрана: содержимое папки состояния на виртуальной машине Windows для DevTest Labs.

  3. Откройте и проверьте файл STATUS, чтобы просмотреть ошибку, например 1.status.

Сведения о том, как найти файлы журналов на виртуальной машине Linux, см. в статье Использование расширения настраиваемых скриптов Azure версии 2 на виртуальных машинах Linux.

Проверка агента виртуальной машины Azure

Убедитесь, что агент виртуальной машины Azure (агент виртуальной машины) для виртуальной машины лаборатории установлен и готов.

При первом запуске виртуальной машины лаборатории или при первой установке CSE для обслуживания запроса на применение артефактов может потребоваться обновить агент виртуальной машины или дождаться инициализации агента виртуальной машины. Работа агента виртуальных машин может зависеть от служб, инициализация которых занимает много времени.

Определите, вызывает ли агент виртуальной машины артефакт перестать отвечать, выполнив следующие действия:

  1. Подключитесь к виртуальной машине лаборатории DevTest Labs.

  2. Откройте окно проводник и перейдите в папку с файлами журнала для виртуальной машины лаборатории, например C:\WindowsAzure\logs.

  3. Откройте файл WaAppAgent.log.

  4. В файле журнала найдите записи, показывающие запуск агента виртуальной машины, завершение инициализации и отправку первого пульса. Сканирование записей меток времени в течение времени, когда возникла проблема артефакта. В следующем фрагменте кода показаны некоторые примеры записей из файла журнала:

    [00000006] [11/14/2019 05:52:13.44] [INFO]  WindowsAzureGuestAgent starting. Version 2.7.41491.949
    ...
    [00000006] [11/14/2019 05:52:31.77] [WARN]  Waiting for OOBE to Complete ...
    ...
    [00000006] [11/14/2019 06:02:30.43] [WARN]  Waiting for OOBE to Complete ...
    [00000006] [11/14/2019 06:02:33.43] [INFO]  StateExecutor initialization completed.
    [00000020] [11/14/2019 06:02:33.43] [HEART] WindowsAzureGuestAgent Heartbeat.
    

    В этом примере для запуска агента виртуальной машины потребовалось 10 минут и 20 секунд. Задержка связана с тем, что служба OOBE занимает много времени. Длительное время начала для агента виртуальной машины привело к остановке ответа артефакта.

Общие сведения о расширениях виртуальных машин см. в Расширения и возможности виртуальных машин Azure. Дополнительные идеи по устранению неполадок см. в обзоре агента виртуальной машины Azure.

Исследование проблем с скриптом

Другая причина, по которой установка артефакта может завершиться ошибкой, связана с тем, как создается скрипт установки артефакта.

Ниже приведены некоторые примеры потенциальных проблем с скриптом:

  • Скрипт имеет обязательные параметры, но ожидаемое значение не передается во время выполнения скрипта. Этот сценарий может произойти, если пользователю разрешено оставить ожидаемый параметр пустым, а значение по умолчанию не указано в файле определения artifactfile.json . В результате скрипт перестает отвечать, так как он ожидает ввода пользователем. Если скрипту требуются значения параметров, рекомендуется определить значения по умолчанию и требовать, чтобы пользователь ввел значение.

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

Определите, вызывает ли скрипт артефакт перестать отвечать, выполнив следующие действия:

  1. Подключитесь к виртуальной машине лаборатории DevTest Labs.

  2. Откройте окно проводник.

  3. Перейдите в папку Download с скриптом установки артефактов для виртуальной машины, например C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Пример <версии> CSE.1.10.12

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

  4. Откройте окно командной строки с правами администратора на виртуальной машине.

  5. Запустите скрипт установки артефакта в окне командной строки.

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

  6. Определите, демонстрирует ли скрипт непредвиденное или проблематичное поведение.

  7. По мере необходимости исправьте скрипт на виртуальной машине лаборатории и снова запустите скрипт, чтобы подтвердить, что проблемы устранены.

Проверка структуры артефактов

Пользовательский артефакт должен иметь правильную структуру. Убедитесь, что пользовательские артефакты в скрипте установки артефактов реализуют правильную структуру. Следующие ресурсы содержат сведения, которые помогут вам выполнить эту проверку:

Обновление скрипта запроса

Вы можете отправить предлагаемые исправления скриптов для артефактов, размещенных в общедоступном репозитории DevTest Labs. См. раздел Внесение изменений в документе README.

Поддержка

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

  • Найдите ресурсы веб-сайта сообщества Майкрософт, чтобы получить сведения о Azure DevTest Labs и получить доступ к записям в Stack Overflow.

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