Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описаны возможные причины и устранение неполадок при сбоях артефактов в ресурсах виртуальной машины Azure DevTest Labs.
Артефакты — это инструменты, действия или программное обеспечение, которые можно установить на виртуальных машинах лаборатории во время или после создания виртуальной машины. Владельцы лабораторий могут предварительно выбрать обязательные артефакты для применения ко всем виртуальным машинам лаборатории при создании, а пользователи лаборатории могут применять артефакты к виртуальным машинам , принадлежащим им. Несколько возможных проблем могут привести к неудаче в установке и применении артефактов к лаборатории или корректному запуску на виртуальной машине лаборатории.
Когда артефакт, как представляется, перестает отвечать, первым шагом является попытка определить, почему процесс застрял. Установка артефактов может быть заблокирована во время первоначального запроса или завершиться сбоем во время выполнения запроса. Вы можете устранить неполадки артефактов на портале Azure или на виртуальной машине, в которой происходит сбой артефакта.
Устранение неполадок с помощью портала Azure
Если артефакт не успешно применяется к виртуальной машине лаборатории, можно начать с изучения состояния виртуальной машины на портале Azure. Вы можете найти сведения о состоянии виртуальной машины, подтвердить, что она работает, и убедиться, что артефакты могут быть применены. Данные журнала действий для виртуальной машины лаборатории отображают записи о процессах установки. Вы можете проверить записи, чтобы найти сведения о сбоях артефактов.
Проверка состояния виртуальной машины
Проверьте состояние виртуальной машины на портале Azure, выполнив следующие действия:
Перейдите на страницу обзора для виртуальной машины лаборатории DevTest Labs и убедитесь, что состояние компьютера запущено:
Выберите артефакты , чтобы открыть список артефактов для виртуальной машины лаборатории:
Проверьте параметр Apply artifacts и убедитесь, что виртуальная машина лаборатории готова принять примененные артефакты:
Когда параметр "Применить артефакты" отображается неактивным, вы не можете применить артефакты к виртуальной машине лаборатории, а на странице появится сообщение уведомления:
Использование команды 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
Исследование сведений о неудавшемся артефакте
Артефакт может перестать отвечать и в конечном итоге отображаться как "Не удалось " в списке артефактов для виртуальной машины лаборатории.
Исследуйте провальные артефакты, выполнив следующие шаги:
Перейдите на страницу списка артефактов для виртуальной машины лаборатории и выберите артефакт с состоянием failed :
Откроется представление сведений об артефакте . Ниже приведены сведения о сбое артефакта, включая сообщение развертывания и сообщение расширения.
Проверка журналов действий
Чтобы установить артефакты, DevTest Labs создает и развертывает шаблон Azure Resource Manager (ARM), запрашивающий применение расширения Custom Script (CSE). Ошибка на этом уровне отображается в журналах действий для подписки и группы ресурсов, содержащей виртуальную машину лаборатории.
Note
При просмотре журналов действий может потребоваться развернуть записи процесса установки, чтобы просмотреть сводки об ошибках сбоя.
Проверьте записи журнала действий для сбоев, связанных с установкой или применением артефакта на виртуальной машине лаборатории, выполнив следующие действия:
Перейдите на страницу журнала действий для виртуальной машины лаборатории и найдите артефакт с состоянием сбоя :
Выберите запись, чтобы открыть область сведений и просмотреть сведения о журнале:
Если вы пытаетесь применить артефакт непосредственно к виртуальной машине лаборатории, поищите ошибки, связанные со сбоем в процессе установки создания или обновления расширения виртуальной машины.
Если вы создаете виртуальную машину и применяете артефакт во время процесса, найдите ошибки сбоя, сообщаемые для процесса установки создания или обновления виртуальной машины .
Заголовок области соответствует заголовку записи, например применение артефактов к виртуальной машине:
В панели сведений выберите 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, выполнив следующие действия.
Проверьте наличие добавленных групп безопасности сети (NSG). Если политикой подписки предусмотрена автоматическая настройка ГБС во всех виртуальных сетях, это может повлиять на виртуальную сеть, используемую для создания виртуальных машин лаборатории.
Проверьте все правила NSG:
Используйте IP flow verify, чтобы определить, блокирует ли правило NSG трафик на или от виртуальной машины.
Просмотрите действующие правила группы безопасности, чтобы убедиться, что существует правило входящего трафика Разрешить NSG. Дополнительные сведения см. в разделе "Использование эффективных правил безопасности для устранения неполадок потока трафика виртуальной машины".
Проверьте учетную запись хранения по умолчанию для лаборатории.
Учетная запись хранения по умолчанию — это первая учетная запись хранения, созданная во время создания лаборатории. Имя обычно начинается с буквы "a" и заканчивается многозначным числом:
a<labname>#Перейдите на страницу "Обзор " для лаборатории DevTest Labs и выберите визуализатор ресурсов.
На схеме найдите учетную запись хранения с именем, соответствующим описанному соглашению об именовании.
a<labname>#Наведите указатель мыши на ресурс аккаунт хранения, переместите указатель на значок i, чтобы отобразить всплывающее меню, а затем выберите «Вид».
На странице обзора учетной записи хранения разверните раздел "Безопасность и сеть" в меню слева и выберите "Сеть".
На вкладке "Брандмауэры и виртуальные сети " проверьте конфигурацию параметра доступа к общедоступной сети :
Если выбрано Включено для выбранных виртуальных сетей и IP-адресов, убедитесь, что список разрешенных IP-адресов показывает виртуальные сети лаборатории, которые можно использовать для создания виртуальных машин лаборатории:
В противном случае убедитесь, что включено для всех сетей:
Подробные сведения об устранении неполадок см. в разделе "Настройка брандмауэров службы хранилища Azure" и виртуальных сетей.
Устранение неполадок на компьютере лаборатории
Вы можете подключиться к виртуальной машине лаборатории, где произошёл сбой артефакта, и вы сможете изучить проблему.
Проверка файла журнала CSE
Просмотрите файл журнала CSE для виртуальной машины Windows, выполнив следующие действия:
Подключитесь к виртуальной машине лаборатории DevTest Labs.
В проводнике перейдите в раздел C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. Пример версии CSE - это<>
1.10.12.
Откройте и проверьте файл STATUS , например 1.status, чтобы просмотреть ошибку.
Инструкции по поиску файлов журналов на виртуальной машине Linux см. в статье "Использование Azure CSE версии 2 с виртуальными машинами Linux".
Проверка агента виртуальной машины Azure
Убедитесь, что агент виртуальной машины Azure (агент виртуальной машины) для виртуальной машины лаборатории установлен и готов.
При первом запуске виртуальной машины лаборатории или при первой установке CSE для обслуживания запроса на применение артефактов может потребоваться обновить агент виртуальной машины или дождаться инициализации агента виртуальной машины. Агент виртуальной машины может зависеть от служб, которые занимают много времени для инициализации.
Определите, является ли агент виртуальной машины причиной, по которой артефакт перестаёт отвечать, выполнив следующие действия:
Подключитесь к виртуальной машине лаборатории DevTest Labs.
В проводнике и перейдите в папку, содержащую файлы журналов для виртуальной машины лаборатории, например C:\WindowsAzure\logs.
Откройте файл WaAppAgent.log .
В файле журнала найдите записи, показывающие запуск агента виртуальной машины, завершение инициализации и отправку первого пульса. Сканируйте записи с метками времени на момент, когда возникла проблема с артефактом. В следующем фрагменте кода показаны некоторые примеры записей из файла журнала:
[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 . В результате скрипт перестает отвечать, так как он ожидает ввода пользователем. Если скрипту требуются значения параметров, рекомендуется определить значения по умолчанию и требовать, чтобы пользователь ввел значение.
Сценарий требует действия пользователя во время выполнения скрипта. Этот сценарий может произойти, если при выполнении скрипта возникает задержка при ожидании принятия пользователем действий. Рекомендуется писать скрипты, которые могут работать автоматически, не требуя вмешательства пользователя.
Определите, вызывает ли скрипт прекращение ответа артефакта, выполнив следующие действия:
Подключитесь к виртуальной машине лаборатории DevTest Labs.
Откройте Проводник файлов.
Перейдите в папку Download со скриптом установки артефактов для виртуальной машины, например, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Пример версии CSE - это<>
1.10.12.Для последующих действий вы можете работать со скриптом в этой папке или скопировать скрипт в рабочую папку на виртуальной машине.
Откройте окно командной строки с правами администратора на виртуальной машине.
Запустите скрипт установки артефакта в окне командной строки.
Следуйте инструкциям скрипта и введите необходимые значения параметров. Чтобы выяснить, является ли причиной проблемы отсутствие пользовательского входа или задержка в действиях пользователя, попытайтесь воспроизвести это конкретное поведение.
Определите, демонстрирует ли скрипт непредвиденное или проблематичное поведение.
По мере необходимости исправьте скрипт на виртуальной машине лаборатории и снова запустите скрипт, чтобы убедиться, что проблемы устранены.
Проверка структуры артефактов
Артефакт с настраиваемыми параметрами должен иметь правильную структуру. Убедитесь, что пользовательские артефакты в сценарии установки артефактов имеют правильную структуру. Следующие ресурсы содержат сведения, которые помогут вам выполнить эту проверку:
- Сведения о правильном создании артефакта см. в разделе "Создание настраиваемых артефактов".
- Пример правильно структурированного артефакта см. в артефакте типов параметров test .
- Дополнительные сведения о написании и исправлении скриптов артефактов см. в разделе "Создание артефактов".
Запрос обновления скрипта
Вы можете отправить предлагаемые исправления скрипта для артефактов, размещенных в общедоступном репозитории DevTest Labs. Дополнительные сведения см. в разделе " Вклады " в документе README .
Get support
Если вам нужна дополнительная помощь, попробуйте один из следующих каналов поддержки:
Выполните поиск в ресурсах сообщества Майкрософт для получения сведений об Azure DevTest Labs и просмотрите записи в Stack Overflow.
Подключитесь к @AzureSupport, официальной учетной записи Microsoft Azure для улучшения взаимодействия с клиентами. Служба поддержки Azure взаимодействует с сообществом Azure, предоставляя ответы, поддержку и советы экспертов.