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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Когда параметр "Применить артефакты" отображается неактивным, вы не можете применить артефакты к виртуальной машине лаборатории, а на странице появится сообщение уведомления:

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

Использование команды PowerShell

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

GET Следующая команда возвращает canApplyArtifacts флаг со значением True или False. Чтобы выполнить команду, замените $SubscriptionId параметр идентификатором подписки, $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), запрашивающий применение расширения Custom Script (CSE). Ошибка на этом уровне отображается в журналах действий для подписки и группы ресурсов, содержащей виртуальную машину лаборатории.

Note

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

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

  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. Наведите указатель мыши на ресурс аккаунт хранения, переместите указатель на значок i, чтобы отобразить всплывающее меню, а затем выберите «Вид».

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

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

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

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

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

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

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

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

Подробные сведения об устранении неполадок см. в разделе "Настройка брандмауэров службы хранилища Azure" и виртуальных сетей.

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

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

Проверка файла журнала CSE

Просмотрите файл журнала 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 CSE версии 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. Дополнительные идеи по устранению неполадок см. в обзоре агента виртуальной машины 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 .

Get support

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

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

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