Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
Используйте эту статью для устранения распространенных проблем, которые могут возникнуть при использовании построителя образов виртуальных машин Azure.
Сбои Конструктора образов виртуальных машин Azure могут произойти в двух областях.
- Во время отправки шаблона образа
- Во время сборки образа
Предварительные условия
Эти предварительные требования предназначены для создания сборки:
Служба создания образов виртуальных машин взаимодействует с виртуальной машиной для сборки с помощью удаленного управления Windows (WinRM) или Secure Shell (SSH). Не отключать эти параметры в рамках сборки.
Создатель образов виртуальных машин создает ресурсы в промежуточной группе ресурсов во время сборки. Точный список ресурсов зависит от конфигурации сети , указанной шаблоном образа. Обязательно убедитесь, что Политика Azure не запрещает Конструктору образов виртуальных машин Azure создавать или использовать необходимые ресурсы.
- Создайте группу
IT_
ресурсов. - Создайте учетную запись хранения без брандмауэра.
- Разверните экземпляры контейнеров Azure.
- Разверните ресурсы виртуальной сети Azure (и подсети в них).
- Разверните ресурсы частной конечной точки Azure.
- Разверните Файлы Azure.
- Создайте группу
Убедитесь, что политика Azure не устанавливает непреднамеренные функции на виртуальной машине сборки или других промежуточных ресурсах, таких как расширения Azure или изменения тегов.
Убедитесь, что Конструктор образов виртуальных машин имеет необходимые разрешения для чтения/записи образов и подключения к учетной записи хранения. Дополнительные сведения см. в документации по разрешениям для Azure CLI или Azure PowerShell.
Конструктор образов виртуальной машины завершается ошибкой сборки, если скрипты или встроенные команды завершаются ошибками (коды выхода ненулевого типа). Убедитесь, что вы проверили пользовательские скрипты и проверили, что они выполняются без ошибки (кода
0
выхода) или требуют ввода пользователем. Дополнительные сведения см. на странице Создание образа Виртуального рабочего стола Azure с помощью Конструктора образов виртуальных машин Azure и PowerShell.Убедитесь, что подписка имеет достаточную квоту для экземпляров контейнеров Azure.
Каждая сборка образа может развернуть до одного временного ресурса экземпляров контейнеров Azure (из четырех стандартных ядер) в промежуточной группе ресурсов. Эти ресурсы необходимы для изолированных сборок образов.
Примечание.
Защищенные образы CIS (Linux или Windows) в Azure Marketplace, управляемые Центром безопасности Интернета (CIS), могут привести к сбоям сборки со службой построителя образов виртуальных машин из-за их конфигураций. Например:
- Защищенные образы CIS для Windows могут нарушить подключение WinRM, что является предварительным условием для создания образов виртуальных машин.
- Образы CIS с усиленной защитой для Linux могут завершиться ошибкой
chmod +x
из-за проблем с разрешениями.
Устранение ошибок отправки шаблона образа
Ошибки при отправке шаблонов образов возвращаются только при отправке. Журнал ошибок не существует для ошибок отправки шаблона изображения. Если во время отправки возникла ошибка, можно вернуть ошибку, проверив состояние шаблона. В частности, просмотрите ProvisioningState
и ProvisioningErrorMessage
/provisioningError
.
Ниже приведена команда для Azure CLI:
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Ниже приведена команда Для Azure PowerShell. Чтобы использовать Azure PowerShell, необходимо установить модули PowerShell построителя образов виртуальных машин.
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Ниже приведены выходные данные об ошибке для версии 2020-02-14 и более ранних версий:
{
"code": "ValidationFailed",
"message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review http://aka.ms/azvmimagebuildertmplref for details on fields requirements in the Image Builder Template."
}
Ниже приведены выходные данные ошибок для версии 2021-10-01 и более поздних версий:
{
"error": {
"code": "ValidationFailed",
"message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review http://aka.ms/azvmimagebuildertmplref for details on fields requirements in the Image Builder Template."
}
}
Внимание
В API версии 2021-10-01 внесены изменения в схему ошибок, которая станет часть каждого будущего выпуска API. При наличии автоматизаций Конструктора образов виртуальных машин Azure обратите внимание на новый вывод ошибок при переходе на API версии 2021-10-01 или более поздней.
После перехода на последнюю версию API рекомендуется не вернуться к более ранней версии. Если вы вернетесь, вам придется снова изменить автоматизацию, чтобы создать более раннюю схему ошибок. Мы не ожидаем, что схема ошибок снова изменится в будущих выпусках.
В следующих разделах приведены рекомендации по устранению распространенных проблем, возникающих при отправке шаблона образа.
В настоящий момент обновление шаблонов образов не поддерживается
Ошибка
'Conflict'. Details: Update/Upgrade of image templates is currently not supported
Причина
Шаблон уже существует.
Решение
Если вы отправите шаблон конфигурации образа, и отправка завершается сбоем, по-прежнему присутствует неудачный артефакт шаблона. Удалите шаблон, который не удалось отправить.
Назначенное управляемое удостоверение в шаблоне образа не может использоваться
Ошибка
The assigned managed identity cannot be used. Please remove the existing one and re-assign a new identity. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts.
Причина
Существуют случаи, когда созданное управляемое удостоверение, привязанное к шаблону образа, нельзя использовать.
Одна из возможных причин заключается в том, что шаблон построителя образов виртуальных машин использует предоставленную клиентом промежуточную группу ресурсов, а управляемое удостоверение удаляется перед удалением шаблона образа. (Это сценарий группы ресурсов для тестирования.)
Решение
Используйте Azure CLI, чтобы сбросить управляемую личность в шаблоне образа. Обязательно обновите Azure CLI до версии 2.45.0 или более поздней.
Подтвердите управляемую идентичность в шаблоне построителя образа целевой виртуальной машины.
az image builder identity show -g <template resource group> -n <template name>
Удалите управляемое удостоверение из шаблона построителя образов целевой виртуальной машины:
az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>
Присвойте новую идентичность шаблону Создателя изображений целевой виртуальной машины.
az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>
Дополнительные сведения о настройке разрешений см. в статьях Настройка разрешений Конструктора образов виртуальных машин с помощью Azure CLI и Настройка разрешений Конструктора образов виртуальных машин с помощью PowerShell.
Назначенное управляемое удостоверение не авторизовано для доступа к ресурсу
Ошибка
Not authorized to access the resource: <resource-not-able-to-access>. Please check the user assigned identity has the correct permissions. For more details, go to https://aka.ms/azvmimagebuilderts.
Причина
Созданное управляемое удостоверение, назначенное для шаблона образа, не имеет всех разрешений для доступа к ресурсу, упомянутому в сообщении об ошибке.
Решение
Подтвердите управляемую идентификацию из шаблона построителя образов для целевой виртуальной машины.
az image builder identity show -g <template resource group> -n <template name>
Просмотрите назначения ролей для удостоверения:
az role assignment list --assignee <identity_client_id_or_principal_id>
Назначьте требуемую роль. При необходимости создайте свою роль с соответствующими разрешениями.
Дополнительные сведения о настройке разрешений см. в статьях Настройка разрешений Конструктора образов виртуальных машин с помощью Azure CLI и Настройка разрешений Конструктора образов виртуальных машин с помощью PowerShell.
Операция ресурсов завершена с состоянием подготовки терминала "Сбой"
Ошибка
Microsoft.VirtualMachineImages/imageTemplates 'helloImageTemplateforSIG01' failed with message '{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "InternalOperationError",
"message": "Internal error occurred."
Причина
В большинстве случаев ошибка при развертывании ресурсов возникает из-за отсутствия разрешений. Конфликт с промежуточной группой ресурсов также может вызвать эту ошибку.
Решение
В зависимости от вашего сценария для Конструктора образов виртуальных машин могут потребоваться следующие разрешения:
- получение образа или группы ресурсов из Коллекции вычислений Azure (ранее она называлась "Общая коллекция образов");
- распространение образа или ресурса Коллекции вычислений Azure.
- Учетная запись хранения, контейнер или объект BLOB, к которому обращается кастомизатор
File
.
Кроме того, убедитесь, что имя промежуточной группы ресурсов уникально задано для каждого шаблона образа.
Дополнительные сведения о настройке разрешений см. в статьях Настройка разрешений Конструктора образов виртуальных машин с помощью Azure CLI и Настройка разрешений Конструктора образов виртуальных машин с помощью PowerShell.
Ошибка при получении управляемого образа
Ошибка
Build (Managed Image) step failed: Error getting Managed Image '/subscriptions/.../providers/Microsoft.Compute/images/mymanagedmg1': Error getting managed image (...): compute.
ImagesClient#Get: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error.
Status=403 Code="AuthorizationFailed" Message="The client '......' with object id '......' doesn't have authorization to perform action 'Microsoft.Compute/images/read' over scope
Причина
Отсутствуют разрешения.
Решение
В зависимости от вашего сценария для Конструктора образов виртуальных машин могут потребоваться следующие разрешения:
- получение образа или группы ресурсов из Коллекции вычислений Azure;
- распространение образа или ресурса Коллекции вычислений Azure.
- Учетная запись хранения, контейнер или объект BLOB, к которому обращается кастомизатор
File
.
Дополнительные сведения о настройке разрешений см. в статьях Настройка разрешений Конструктора образов виртуальных машин с помощью Azure CLI и Настройка разрешений Конструктора образов виртуальных машин с помощью PowerShell.
Сбой шага сборки для версии образа
Ошибка
Build (Shared Image Version) step failed for Image Version '/subscriptions/.../providers/Microsoft.Compute/galleries/.../images/... /versions/0.23768.4001': Error getting Image Version '/subscriptions/.../resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001': Error getting image version '... :0.23768.4001': compute.GalleryImageVersionsClient#Get: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error.
Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001' under resource group '<rgName>' was not found."
Причина
Конструктор образов виртуальных машин не может найти исходный образ.
Решение
Убедитесь, что образ источника указан правильно и существует в директории VM Image Builder.
Ошибка при скачивании внешнего файла в локальный файл
Ошибка
Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..
Причина
Неверное имя или расположение файла, или расположение недоступно.
Решение
Убедитесь, что файл достижим. Проверьте правильность имени и расположения.
Некоторые репозитории файлов могут использовать неподдерживаемые наборы шифров и вызвать ошибки загрузки с помощью построителя образов виртуальной машины. Сохраните файлы и скрипты в учетной записи хранения Azure, чтобы обеспечить безопасные комплекты шифрования и доступ для построителя образов виртуальных машин. Дополнительные сведения о хранении файлов в учетных записях хранения Azure см. в обзоре учетной записи хранения.
Ошибка авторизации возникает при создании диска
Сборка построителя образов виртуальной машины завершается ошибкой авторизации, которая выглядит следующим образом.
Ошибка
Attempting to deploy created Image template in Azure fails with an 'The client '6df325020-fe22-4e39-bd69-10873965ac04' with object id '6df325020-fe22-4e39-bd69-10873965ac04' does not have authorization to perform action 'Microsoft.Compute/disks/write' over scope '/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/disks/proxyVmDiskWin_<timestamp>' or the scope is invalid. If access was recently granted, please refresh your credentials.'
Причина
Эта ошибка возникает при попытке указать предварительную группу ресурсов и виртуальную сеть для службы построителя образов виртуальных машин с исходным образом Windows.
Решение
Необходимо назначить роль содействия группе ресурсов для служебного элемента, соответствующего встроенному приложению конструктора образов виртуальных машин. Используйте следующие команды Azure CLI или инструкции портала Azure.
Сначала убедитесь, что служебный принципал связан с приложением, поддерживаемым самой платформой, построителя образов виртуальных машин, с помощью следующей команды Azure CLI:
az ad sp show --id {servicePrincipalName, or objectId}
Затем для реализации этого решения с помощью Azure CLI используйте следующую команду:
az role assignment create -g {ResourceGroupName} --assignee {AibrpSpOid} --role Contributor
Чтобы реализовать это решение на портале, следуйте инструкциям в статье "Назначение ролей Azure" с помощью портала Azure:
Для шага 1: определите необходимую область, необходимая область — это ваша группа ресурсов.
На шаге 3. Выберите соответствующую роль, роль — участник.
На Шаге 4: выберите, кто нуждается в доступе, выберите параметр Azure Virtual Machine Image Builder.
Устранение ошибок сборки
Для устранения сбоев сборки образа получите сообщение об ошибке из lastRunStatus
, а затем просмотрите детали в файле customization.log
.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage
Журнал настройки
Доступ к динамическим журналам во время сборки образа
Чтобы эффективно отслеживать ход сборки образа, можно получить доступ к динамическим журналам, создаваемым построителем образов виртуальных машин в экземплярах контейнеров Azure. Эти журналы предоставляют аналитические сведения о процессе сборки в режиме реального времени. Они помогают определить все проблемы или подтвердить, что сборка продолжается должным образом.
Чтобы найти и просмотреть динамические журналы, выполните следующие действия.
Запустите процесс сборки образа.
Перейдите на портал Azure и выберите группы ресурсов. Фильтруйте по подписке, в которой вы инициировали сборку образа.
Найдите и выберите промежуточную группу ресурсов, связанную со сборкой образа. Эта группа ресурсов содержит ресурсы сборки для службы построителя образов виртуальных машин. Дополнительные сведения о промежуточной группе ресурсов см. в разделе Properties: stagingResourceGroup.
В этой группе ресурсов найдите ресурс с именем
vmimagebuilder-build-container-**********
. Если он не отображается, подождите несколько минут и обновите страницу.На левой панели в разделе "Параметры" выберите "Контейнеры".
Перейдите на вкладку "Журналы" , чтобы просмотреть динамические журналы во время процесса сборки образа.
Если журналы не отображаются, попробуйте обновить контейнер через несколько минут.
Скачайте журнал настройки и (или) проверки после сборки образа
После завершения сборки образа журналы настройки и проверки хранятся в контейнере в учетной записи хранения в промежуточной группе ресурсов, созданной службой построителя образов виртуальных машин. Дополнительные сведения о промежуточной группе ресурсов см. в разделе Properties: stagingResourceGroup.
Чтобы найти и скачать файл customization.log
или validation.log
:
На портале Azure перейдите к соответствующей учетной записи хранения, отфильтровав учетные записи хранения в промежуточной группе ресурсов, созданной службой построителя образов виртуальных машин.
В учетной записи хранения перейдите в хранилище данных.
Выберите параметр "Контейнер " и выберите
packerlogs
контейнер.В контейнере несколько папок отображаются, если сборка
packerlogs
образа выполняется несколько раз. Эти папки упорядочены от самой старой сборки до самой новой. Выберите папку, соответствующую нужной сборке.В выбранной папке выберите
customization.log
файл и(или)validation.log
и нажмите кнопку "Скачать ", чтобы скачать его содержимое.
Этапы журнала настройки
Журнал содержит подробную информацию. Он охватывает создание образа, включая любые проблемы с распространением образа, такие как репликация в галерее вычислений Azure. Эти проблемы проявляются в сообщении об ошибке состояния шаблона изображения.
Файл customization.log
включает следующие этапы:
Разверните виртуальную машину сборки и зависимости с помощью шаблонов Azure Resource Manager в промежуточной
IT_
группе ресурсов. Этот этап включает несколькоPOST
запросов к поставщику ресурсов построителя образов виртуальных машин:Azure request method="POST" request="https://management.azure.com/subscriptions/<subID>/resourceGroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-cccc-cccc-ccccccc/providers/Microsoft.Storage/storageAccounts .. PACKER OUT ==> azure-arm: Deploying deployment template ... ..
Получите состояние развертываний. Этот этап содержит информацию о состоянии развертывания каждого ресурса:
PACKER ERR 2020/04/30 23:28:50 packer: 2020/04/30 23:28:50 Azure request method="GET" request="https://management.azure.com/subscriptions/<subID>/resourcegroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-4505-ae28-6661e43fac48/providers/Microsoft.Resources/deployments/pkrdp51lc0339jg/operationStatuses/08586133176207523519?[REDACTED]" body=""
Подключитесь к виртуальной машине сборки.
В Windows Конструктор образов виртуальных машин подключается с помощью WinRM:
PACKER ERR 2020/04/30 23:30:50 packer: 2020/04/30 23:30:50 Waiting for WinRM, up to timeout: 10m0s .. PACKER OUT azure-arm: WinRM connected.
В Linux Конструктор образов виртуальных машин подключается с помощью SSH:
PACKER OUT ==> azure-arm: Waiting for SSH to become available... PACKER ERR 2019/12/10 17:20:51 packer: 2020/04/10 17:20:51 [INFO] Waiting for SSH, up to timeout: 20m0s PACKER OUT ==> azure-arm: Connected to SSH!
Запустите настройки. При выполнении настроек их можно определить, просмотрив
customization.log
файл. Поиск для(telemetry)
:(telemetry) Starting provisioner windows-update (telemetry) ending windows-update (telemetry) Starting provisioner powershell (telemetry) ending powershell (telemetry) Starting provisioner file (telemetry) ending file (telemetry) Starting provisioner windows-restart (telemetry) ending windows-restart (telemetry) Finalizing. - This means the build has finished
Дезактивация В Конструкторе образов виртуальных машин добавлен скрытый настройщик. Этот этап отвечает за подготовку виртуальной машины к выведению из эксплуатации. В Windows он выполняется
Sysprep
(с помощьюc:\DeprovisioningScript.ps1
). В Linux он выполняетсяwaagent-deprovision
(с помощью/tmp/DeprovisioningScript.sh
).Например:
PACKER ERR 2020/03/04 23:05:04 [INFO] (telemetry) Starting provisioner powershell PACKER ERR 2020/03/04 23:05:04 packer: 2020/03/04 23:05:04 Found command: if( TEST-PATH c:\DeprovisioningScript.ps1 ){cat c:\DeprovisioningScript.ps1} else {echo "Deprovisioning script [c:\DeprovisioningScript.ps1] could not be found. Image build may fail or the VM created from the Image may not boot. Please make sure the deprovisioning script is not accidentally deleted by a Customizer in the Template."}
Очистить. После завершения сборки ресурсы построителя образов виртуальных машин удаляются:
PACKER ERR ==> azure-arm: Deleting individual resources ... ... PACKER ERR 2020/02/04 02:04:23 packer: 2020/02/04 02:04:23 Azure request method="DELETE" request="https://management.azure.com/subscriptions/<subId>/resourceGroups/IT_aibDevOpsImg_t_vvvvvvv_yyyyyy-de5f-4f7c-92f2-xxxxxxxx/providers/Microsoft.Network/networkInterfaces/pkrnijamvpo08eo?[REDACTED]" body="" ... PACKER ERR ==> azure-arm: The resource group was not created by Packer, not deleting ...
Устранение неполадок со скриптом или встроенной настройкой
Следующие советы помогут вам устранить неполадки с скриптом или встроенной настройкой.
- Протестируйте код перед его передачей в Конструктор образов виртуальных машин.
- Убедитесь, что политика Azure и брандмауэр Azure позволяют подключаться к удаленным ресурсам.
- Отправка выходных комментариев в консоль с помощью
Write-Host
илиecho
. Это позволяет выполнять поиск по файлуcustomization.log
.
Устранение распространенных ошибок сборки
Сбой развертывания шаблона из-за нарушения политики
Ошибка
{
"statusCode": "BadRequest",
"serviceRequestId": null,
"statusMessage": "{\"error\":{\"code\":\"InvalidTemplateDeployment\",\"message\":\"The template deployment failed because of policy violation. Please see details for more information.\",\"details\":[{\"code\":\"RequestDisallowedByPolicy\",\"target\":\"<target_name>\",\"message\":\"Resource '<resource_name>' was disallowed by policy. Policy identifiers: '[{\\\"policyAssignment\\\":{\\\"name\\\":\\\"[Initiative] KeyVault (Microsoft.KeyVault)\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policyAssignments/Microsoft.KeyVault\\\"},\\\"policyDefinition\\\":{\\\"name\\\":\\\"Azure Key Vault should disable public network access\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policyDefinitions/KeyVault.disablePublicNetworkAccess_deny_deny\\\"},\\\"policySetDefinition\\\":{\\\"name\\\":\\\"[Initiative] KeyVault (Microsoft.KeyVault)\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policySetDefinitions/Microsoft.KeyVault\\\"}}]'.\",\"additionalInfo\":[{\"type\":\"PolicyViolation\"}]}]}}",
"eventCategory": "Administrative",
"entity": "/subscriptions/<subscription_ID>/<resourcegroups>/<resourcegroupname>/providers/Microsoft.Resources/deployments/<deployment_name>",
"message": "Microsoft.Resources/deployments/validate/action",
"hierarchy": "<subscription_ID>/<resourcegroupname>/<policy_name>/<managementGroup_name>/<deployment_ID>"
}
Причина
Предыдущая ошибка нарушения политики является результатом использования хранилища ключей Azure с отключенным общедоступным доступом. В настоящее время построитель образов виртуальных машин не поддерживает эту конфигурацию.
Решение
Необходимо создать хранилище ключей с включенным общедоступным доступом.
Не удается выполнить команду сборки Packer
Ошибка
"provisioningState": "Succeeded",
"lastRunStatus": {
"startTime": "2020-04-30T23:24:06.756985789Z",
"endTime": "2020-04-30T23:39:14.268729811Z",
"runState": "Failed",
"message": "Failed while waiting for packerizer: Microservice has failed: Failed while processing request: Error when executing packerizer: Packer build command has failed: exit status 1. During the image build, a failure has occurred, please review the build log to identify which build/customization step failed. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts. Image Build log location: https://xxxxxxxxxx.blob.core.windows.net/packerlogs/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/customization.log. OperationId: xxxxxx-5a8c-4379-xxxx-8d85493bc791. Use this operationId to search packer logs."
Причина
Сбой команды сборки упаковщика — это сбой настройки.
Решение
Проверьте журнал для обнаружения сбоев настройщика. Найдите (telemetry)
.
Например:
(telemetry) Starting provisioner windows-update
(telemetry) ending windows-update
(telemetry) Starting provisioner powershell
(telemetry) ending powershell
(telemetry) Starting provisioner file
(telemetry) ending file
(telemetry) Starting provisioner windows-restart
(telemetry) ending windows-restart
(telemetry) Finalizing. - This means the build has finished
Сбой развертывания из-за тайм-аута
Ошибка
Deployment failed. Correlation ID: xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx. Failed in building/customizing image: Failed while waiting for packerizer: Timeout waiting for microservice to complete: 'context deadline exceeded'
Причина
Процесс сборки превысил лимит времени. Эта ошибка отображается в lastRunStatus
.
Решение
Просмотрите
customization.log
файл. Найдите последнего настройщика для запуска. Выполните поиск(telemetry)
, начиная с нижней части журнала.Проверьте настройки сценария. Настройки не могут подавить работу пользователя с командами, такими как параметры
quiet
. Например, результатыapt-get install -y
приводит к приостановке выполнения сценария с ожиданием вмешательства пользователя.Если вы используете
File
настройщик для скачивания артефактов размером более 20 МБ, см. раздел альтернативных решений.Просмотрите ошибки и зависимости в скрипте, которые могут вызвать ожидание скрипта.
Если вы ожидаете, что настройки требуют больше времени, увеличьте значение
buildTimeoutInMinutes
. По умолчанию — 4 часа.Если у вас есть ресурсоемкие действия, например скачивание гигабайт файлов, рассмотрите размер базовой виртуальной машины сборки.
Служба использует виртуальную машину Standard_D1_v2. Виртуальная машина имеет один виртуальный ЦП и 3,5 ГБ памяти. Если вы скачиваете файл размером 50 ГБ, вероятно, это приведет к исчерпанию ресурсов виртуальных машин и сбою передачи данных между Конструктором образов виртуальных машин и виртуальной машиной сборки. Повторите сборку с помощью виртуальной машины с большим объемом памяти, задав параметр
VM_size
.
Время загрузки файла долгое
Ошибка
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 826 B / 826000 B 1.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 1652 B / 826000 B 2.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
..
hours later...
..
myBigFile.zip 826000 B / 826000 B 100.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
Причина
Настройщик File
загружает большой файл.
Решение
Настройщик File
подходит только для загрузки небольших (менее 20 МБ) файлов. Для загрузки больших файлов используйте сценарий или встроенную команду. Например, в Linux можно использовать wget
или curl
. В Windows можно использовать Invoke-WebRequest
.
Перезапуск Windows постоянно завершаетcя сбоем с кодом ошибки 1190.
Ошибка
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] (telemetry) Starting provisioner windows-restart
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] starting remote command: shutdown /r /f /t 10
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] command 'shutdown /r /f /t 10' exited with code: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> azure-arm: A system shutdown has already been scheduled.(1190)
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC client: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] RPC client: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: Check if machine is rebooting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] starting remote command: shutdown /r /f /t 60 /c "packer restart test"
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] command 'shutdown /r /f /t 60 /c "packer restart test"' exited with code: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 52 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC client: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 52 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] RPC client: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: Reboot already in progress, waiting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:08 packer-provisioner-windows-restart plugin: Check if machine is rebooting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: Waiting for machine to reboot with timeout: 15m0s
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: Waiting for machine to become available...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> Some builds didn't complete successfully and had errors:
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:46:26 machine readable: azure-arm,error []string{"Timeout waiting for machine to restart."}
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT --> azure-arm: Timeout waiting for machine to restart.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR ==> Builds finished but no artifacts were created.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:46:26 [INFO] (telemetry) Finalizing.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> Builds finished but no artifacts were created.
Причина
Шаг обновления Windows объявляется преждевременно в образах на основе Windows Server 2016.
Решение
Увеличьте restartTimeout
, с 15 минут до 30 минут.
Ошибка возникает при ожидании Галереи вычислений Azure
Ошибка
Deployment failed. Correlation ID: XXXXXX-XXXX-XXXXXX-XXXX-XXXXXX. Failed in distributing 1 images out of total 1: {[Error 0] [Distribute 0] Error publishing MDI to Azure Compute Gallery:/subscriptions/<subId>/resourceGroups/xxxxxx/providers/Microsoft.Compute/galleries/xxxxx/images/xxxxxx, Location:eastus. Error: Error returned from SIG client while publishing MDI to Azure Compute Gallery for dstImageLocation: eastus, dstSubscription: <subId>, dstResourceGroupName: XXXXXX, dstGalleryName: XXXXXX, dstGalleryImageName: XXXXXX. Error: Error waiting on Azure Compute Gallery future for resource group: XXXXXX, gallery name: XXXXXX, gallery image name: XXXXXX.Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded}
Причина
Время ожидания добавления и репликации образа виртуальной машины в коллекцию вычислений Azure истекло.
Если изображение внедряется в галерею, можно предположить, что построение образа прошло успешно. Однако общий процесс завершился сбоем, так как построитель образов виртуальных машин ждал завершения репликации коллекции вычислений Azure.
Несмотря на сбой сборки, репликация продолжается. Свойства версии образа можно получить, проверив распределение runOutput
:
$runOutputName=<distributionRunOutput>
az resource show \
--ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName" \
--api-version=2020-02-14
Решение
Увеличьте значение buildTimeoutInMinutes
.
Информационные события показывают низкие ресурсы Windows
Ошибка
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 1% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 51% cpu; 35% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 21% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 21% cpu; 36% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 90% cpu; 32% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for the Windows Modules Installer to exit...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'PowerShell -ExecutionPolicy Bypass -OutputFormat Text -File C:/Windows/Temp/packer-windows-update-elevated.ps1' exited with code: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Restarting the machine...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Waiting for machine to become available...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] starting remote command: shutdown.exe -f -r -t 0 -c "packer restart"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'shutdown.exe -f -r -t 0 -c "packer restart"' exited with code: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: A system shutdown is in progress.(1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] starting remote command: shutdown.exe -f -r -t 60 -c "packer restart test"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] command 'shutdown.exe -f -r -t 60 -c "packer restart test"' exited with code: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 Retryable error: Machine not yet available (exit status 1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT Build 'azure-arm' errored: unexpected EOF
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT
Причина
Причина заключается в исчерпании ресурсов. Эта проблема часто возникает при запуске Центра обновления Windows с размером виртуальной машины сборки по умолчанию, D1_V2.
Решение
Увеличьте размер виртуальной машины сборки.
Сборка завершена, но артефакты не были созданы
Предупреждение
[<log_id>] PACKER 2023/09/14 19:01:18 ui: Build 'azure-arm' finished after 3 minutes 13 seconds.
[<log_id>] PACKER 2023/09/14 19:01:18 ui:
[<log_id>] PACKER ==> Wait completed after 3 minutes 13 seconds
[<log_id>] PACKER 2023/09/14 19:01:18 ui:
[<log_id>] PACKER ==> Builds finished but no artifacts were created.
[<log_id>] PACKER 2023/09/14 19:01:18 [INFO] (telemetry) Finalizing.
[<log_id>] PACKER 2023/09/14 19:01:19 waiting for all plugin processes to complete...
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer-plugin-azure: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER Done exporting Packer logs to Azure Storage.
Решение
Вы можете безопасно игнорировать предыдущее предупреждение.
Процесс создания изображения был пропущен
Предупреждение
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm: -> Snapshot ID : '/subscriptions/<subscription_id>/resourceGroups/<resourcegroup_name>/providers/Microsoft.Compute/snapshots/<snapshot_name>'
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm: Skipping image creation...
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm:
[<log_id>] PACKER ==> azure-arm: Deleting individual resources ...
[<log_id>] PACKER 2023/09/14 19:00:18 packer-plugin-azure plugin: 202
Решение
Вы можете безопасно игнорировать предыдущее предупреждение.
Ресурс не найден
Ошибка
"provisioningState": "Succeeded",
"lastRunStatus": {
"startTime": "2020-05-01T00:13:52.599326198Z",
"endTime": "2020-05-01T00:15:13.62366898Z",
"runState": "Failed",
"message": "network.InterfacesClient#UpdateTags: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code=\"ResourceNotFound\" Message=\"The Resource 'Microsoft.Network/networkInterfaces/aibpls7lz2e.nic.4609d697-be0a-4cb0-86af-49b6fe877fe1' under resource group 'IT_aibImageRG200_window2019VnetTemplate01_9988723b-af56-413a-9006-84130af0e9df' was not found.\""
},
Причина
Отсутствуют разрешения.
Решение
Проверьте, что построитель образов виртуальной машины имеет все необходимые разрешения.
Дополнительные сведения о настройке разрешений см. в статьях Настройка разрешений Конструктора образов виртуальных машин с помощью Azure CLI и Настройка разрешений Конструктора образов виртуальных машин с помощью PowerShell.
Возникла проблема с синхронизацией Sysprep.
Ошибка
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service RdAgent) -and ((Get-Service RdAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Sysprepping VM ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: & $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while($true) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output $imageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Start-Sleep -s 5
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Sysprep complete ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (RdAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Sysprepping VM ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_COMPLETE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: Get-Service : Cannot find any service with service name 'WindowsAzureGuestAgent'.
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: At C:\DeprovisioningScript.ps1:6 char:9
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service Window ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + CategoryInfo : ObjectNotFound: (WindowsAzureGuestAgent:String) [Get-Service], ServiceCommandException
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 Cancelling builder after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT Cancelling build after receiving terminated
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling provisioning due to context cancellation: context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling hook after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
Причина
Размер виртуальной машины D1_V2 может быть причиной проблемы с временем. Если кастомизации ограничены и выполняются менее чем за три секунды, построитель образов виртуальных машин выполняет Sysprep
команды для подготовки к отключению. При отмене подготовки построителя образов виртуальной машины Sysprep
команда проверяет WindowsAzureGuestAgent
, которая может быть установлена не полностью и вызвать временную проблему.
Решение
Чтобы избежать проблемы с временными интервалами, можно увеличить размер виртуальной машины или добавить настройку задержки PowerShell на 60 секунд.
Поставщик экземпляров контейнеров Azure не зарегистрирован
Ошибка
Azure Container Instances provider not registered for your subscription.
Причина
У вашей подписки на шаблон не зарегистрирован поставщик Экземпляров контейнеров Azure.
Решение
Зарегистрируйте провайдера Azure Container Instances для вашей шаблонной подписки и добавьте одну из следующих команд.
- Azure CLI:
az provider register -n Microsoft.ContainerInstance
- Azure PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
Подписка превысила квоту на контейнеры Azure
Ошибка
Azure Container Instances quota exceeded
Причина
У вашей подписки недостаточно квоты экземпляров контейнеров Azure для построителя образов виртуальных машин для успешного создания образа.
Решение
Чтобы сделать квоту экземпляров контейнеров Azure доступной для построителя образов виртуальных машин, выполните следующие действия.
Найдите другие способы использования экземпляров контейнеров Azure в вашей подписке. Удалите ненужные экземпляры, чтобы сделать квоту доступной для построителя образов виртуальных машин.
Построитель образов виртуальных машин развертывает экземпляры контейнеров Azure только временно во время сборки. Эти экземпляры удаляются после завершения компиляции.
Если в подписке выполняется слишком много одновременных сборок образов, можно отложить некоторые из них. Эта задержка снижает одновременное использование экземпляров контейнеров Azure в вашей подписке.
Если шаблоны образов настроены для автоматической сборки образов с помощью триггеров, построитель образов виртуальных машин автоматически повторяет такие неудачные сборки.
Если текущие ограничения экземпляров контейнеров Azure для подписки слишком низки для поддержки сценариев создания образов, вы можете запросить увеличение квоты экземпляров контейнеров Azure.
Примечание.
Ресурсы экземпляров контейнеров Azure необходимы для изолированных сборок образов.
Слишком много ресурсов экземпляров контейнеров Azure развертываются за короткое время.
Ошибка
Слишком много экземпляров контейнеров Azure развернуто за короткий период времени.
Причина
У вашей подписки недостаточно квоты Azure Container Instances для построителя образов виртуальных машин для успешного одновременного построения образов.
Решение
Эти решения можно попробовать:
- Повторите неудачные сборки менее параллельно.
- Если текущие ограничения Azure Container Instances для вашей подписки недостаточны для обеспечения сценариев создания образов, вы можете запросить увеличение квоты Azure Container Instances.
Функция "Изолированная сборка образов" приводит к сбою
Ошибка
Сборки построителя образов виртуальных машин завершаются сбоем из-за изолированных сборок образов.
Причина
Сборки инструмента построения образов виртуальных машин могут выйти из строя по причинам, перечисленным в другой части этой статьи. Однако существует небольшая вероятность сбоя сборки из-за изолированных сборок образов в зависимости от вашего сценария, квот подписки или непредвиденной ошибки службы. Дополнительные сведения см. в разделе "Изолированные сборки образов".
Решение
Если вы определите, что сборка завершается ошибкой из-за изолированных сборок образов, убедитесь, что:
- Политика Azure не блокирует развертывание ресурсов, упомянутых в разделе Предварительных Требований этой статьи (в частности, Azure Container Instances).
- Ваша подписка имеет достаточную квоту для экземпляров контейнеров Azure, чтобы поддержать все ваши одновременные сборки образов. Дополнительные сведения см. в разделе "Подписка" с превышением квоты экземпляров контейнеров Azure этой статьи.
Построитель образов виртуальных машин в настоящее время находится в процессе развертывания изолированных сборок образов. Определенные шаблоны изображений не привязаны к изолированным сборкам изображений, и один и тот же шаблон изображений может использовать или не использовать изолированные сборки изображений во время различных сборок.
Чтобы временно запустить сборку без изолированных сборок образов, повторите выполнение сборки. Так как шаблоны изображений не привязаны к функции "Изолированные сборки изображений", при повторной попытке сборки велика вероятность запуска без использования изолированных сборок.
Если ни одно из этих решений не устраняет неудачные сборки образов, обратитесь в службу поддержки Azure, чтобы временно отказаться от подписки на изолированные сборки образов. Дополнительные сведения см. в статье Создание запроса на поддержку для Azure.
Примечание.
Если функция "Изолированные сборки образов" в конечном итоге включена во всех регионах и шаблонах, предыдущие меры будут временными. Лучше всего устранить основную причину сбоев сборки.
Сборка отменена после аннулирования контекста
Ошибка
PACKER ERR 2020/03/26 22:11:23 Cancelling builder after context cancellation context canceled
PACKER OUT Cancelling build after receiving terminated
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling hook after context cancellation context canceled
..
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling provisioning due to context cancellation: context canceled
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [ERROR] Remote command exited without exit status or exit signal.
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [INFO] RPC endpoint: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] 148974 bytes written for 'stdout'
PACKER ERR 2020/03/26 22:11:25 [INFO] 0 bytes written for 'stderr'
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC client: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC endpoint: Communicator ended with: 2300218
Причина
Конструктор образов виртуальных машин использует порт 22 (Linux) или 5986 (Windows) для подключения к виртуальной машине сборки. Эта проблема возникает при отключении службы от виртуальной машины сборки во время сборки образа. Причины отключения могут быть разными, но включение или настройка брандмауэра в сценарии может заблокировать ранее упомянутые порты.
Решение
Просмотрите скрипты на изменения брандмауэра или их включение, а также изменения на SSH или WinRM. Убедитесь, что любые изменения позволяют постоянно подключаться между службой и виртуальной машиной сборки на ранее упомянутых портах. Дополнительные сведения см. в статье Параметры сети Конструктора образов виртуальных машин.
Ошибки JWT отображаются в журнале в начале сборки
Ошибка
В начале процесса сборки происходит сбой сборки, и в журнале отображается ошибка JSON Web Token (JWT):
PACKER OUT Error: Failed to prepare build: "azure-arm"
PACKER ERR
PACKER OUT
PACKER ERR * client_jwt will expire within 5 minutes, please use a JWT that is valid for at least 5 minutes
PACKER OUT 1 error(s) occurred:
Причина
Значение buildTimeoutInMinutes
в шаблоне задается в диапазоне от 1 до 5 минут.
Решение
Как описано в шаблоне создания построителя образов виртуальных машин, время ожидания должно иметь значение 0 минут, чтобы использовать значение по умолчанию или задать значение более 5 минут, чтобы переопределить значение по умолчанию. Измените время ожидания в шаблоне на 0 минут, чтобы использовать значение по умолчанию или измените его как минимум на 6 минут.
Отображаются ошибки удаления ресурсов
Ошибка
В конце компиляции очищаются промежуточные ресурсы и журнал настройки может содержать несколько ошибок удаления ресурсов:
PACKER OUT ==> azure-arm: Error deleting resource. Will retry.
...
PACKER OUT ==> azure-arm: Error: network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message=...
...
PACKER ERR 2022/03/07 18:43:06 packer-plugin-azure plugin: 2022/03/07 18:43:06 Retryable error: network.SecurityGroupsClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="InUseNetworkSecurityGroupCannotBeDeleted"...
Причина
Эти сообщения журнала ошибок в основном безвредны, так как удаление ресурсов выполняется несколько раз. Как правило, они в конечном итоге преуспевают. Это поведение можно проверить, продолжая следовать журналам удаления, пока не будет отображаться сообщение об успешном выполнении. Кроме того, можно проверить промежуточную группу ресурсов, чтобы убедиться, что ресурс был удален.
Выполнение этих наблюдений особенно важно при сбоях сборки. Эти сообщения об ошибках могут привести к выводу о том, что они причина сбоев, даже если фактические ошибки могут находиться в другом месте.
Ошибка
Если изображения застряли в удалении шаблона, журнал настройки может показать следующую ошибку:
error deleting resource id /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<networkInterfacName>: resources.Client#DeleteByID: Failure sending request: StatusCode=400 --
Original Error: Code="NicInUseWithPrivateEndpoint"
Message="Network interface /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<networkInterfacName> cannot be deleted because it is currently in use with an private endpoint (/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/privateEndpoints/<pIname>)." Details=[]
Причина
Ошибка возникает, так как сетевой интерфейс в настоящее время используется с частной конечной точкой.
Решение
Чтобы устранить проблему, удалите следующие ресурсы по одному в указанном порядке:
- Подключение к частной конечной точке. Это подключение можно найти в ресурсе службы Приватного канала Azure, перейдя на вкладку "Подключения частной конечной точки " на странице ресурса службы приватного канала.
- Служба Private Link.
- Сетевой интерфейс и подсистема балансировки нагрузки.
- Группа ресурсов.
- Шаблон изображения.
Для получения дополнительной помощи вы можете обратиться в службу поддержки Azure , чтобы устранить зависшие ошибки удаления.
Целевой объект распространения не найден в запросе на обновление
Ошибка
Validation failed: Distribute target with Runoutput name <runoutputname> not found in the update request. Deleting a distribution target is not allowed.
Причина
Эта ошибка возникает, когда существующий целевой объект распространения не найден в тексте запроса исправления.
Решение
Массив рассылки должен содержать все целевые объекты распространения: новые целевые объекты (если таковые есть), существующие целевые объекты без изменений и обновленные целевые объекты. Если вы хотите удалить существующий целевой объект распространения, удалите и повторно создадите шаблон образа. Удаление целевого объекта распространения в настоящее время не поддерживается через API исправлений.
Обязательные поля отсутствуют
Ошибка
Validation failed: 'ImageTemplate.properties.distribute[<index>]': Missing field <fieldname>. Please review http://aka.ms/azvmimagebuildertmplref for details on fields required in the Image Builder Template.
Причина
Эта ошибка возникает, когда необходимое поле отсутствует из целевого объекта распространения.
Решение
При создании запроса обязательно укажите каждое необходимое поле в целевом объекте распространения, даже если изменения отсутствуют.
Устранение неполадок Azure DevOps
Задача Azure DevOps выполняется с ошибкой, только если во время кастомизации возникает ошибка. При возникновении этой ошибки задача сообщает о сбое и оставляет промежуточную группу ресурсов со своими журналами, чтобы вы могли определить проблему.
Чтобы найти журнал, выполните следующие действия.
Найдите имя шаблона. Перейдите к Pipeline>Failed build и подробно изучите задачу Azure DevOps в билдере образов виртуальных машин. Обратите внимание на значение
template name
.start reading task parameters... found build at: /home/vsts/work/r1/a/_ImageBuilding/webapp end reading parameters getting storage account details for aibstordot1556933914 created archive /home/vsts/work/_temp/temp_web_package_21475337782320203.zip Source for image: { type: 'SharedImageVersion', imageVersionId: '/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<galleryName>/images/<imageDefName>/versions/<imgVersionNumber>' } template name: t_1556938436xxx
Перейдите на портал Azure, найдите имя шаблона в группе ресурсов и найдите группу ресурсов, введя IT_.
Выберите имя учетной записи хранения, а затем выберите объекты>контейнеры>журналы.
Возможно, вам нужно будет изучить успешно выполненные сборки и просмотреть их журналы. Как упоминалось ранее, если сборка образа выполнена успешно, промежуточная группа ресурсов, содержащая журналы, удаляется в рамках очистки. Чтобы предотвратить автоматическую очистку, можно ввести sleep
после встроенной команды и просмотреть журналы при приостановке сборки:
- Обновите встроенную команду, добавив
Write-Host / Echo "Sleep"
. Это дополнение дает время для поиска в журнале. - Добавьте значение не менее 10 минут, используя команду Linux
Start-Sleep
илиSleep
. - Используйте этот метод, чтобы найти расположение журнала, а затем продолжайте скачивать или проверять журнал, пока он не перейдет в режим
sleep
.
Операция отменена
Ошибка
2020-05-05T18:28:24.9280196Z ##[section]Starting: Azure VM Image Builder Task
2020-05-05T18:28:24.9609966Z ==============================================================================
2020-05-05T18:28:24.9610739Z Task : Azure VM Image Builder Test
2020-05-05T18:28:24.9611277Z Description : Build images using Azure Image Builder resource provider.
2020-05-05T18:28:24.9611608Z Version : 1.0.18
2020-05-05T18:28:24.9612003Z Author : Microsoft Corporation
2020-05-05T18:28:24.9612718Z Help : For documentation, and end to end example, please visit: http://aka.ms/azvmimagebuilderdevops
2020-05-05T18:28:24.9613390Z ==============================================================================
2020-05-05T18:28:26.0651512Z start reading task parameters...
2020-05-05T18:28:26.0673377Z found build at: d:\a\r1\a\_AppsAndImageBuilder\webApp
2020-05-05T18:28:26.0708785Z end reading parameters
2020-05-05T18:28:26.0745447Z getting storage account details for aibstagstor1565047758
2020-05-05T18:28:29.8812270Z created archive d:\a\_temp\temp_web_package_09737279437949953.zip
2020-05-05T18:28:33.1568013Z Source for image: { type: 'PlatformImage',
2020-05-05T18:28:33.1584131Z publisher: 'MicrosoftWindowsServer',
2020-05-05T18:28:33.1585965Z offer: 'WindowsServer',
2020-05-05T18:28:33.1592768Z sku: '2016-Datacenter',
2020-05-05T18:28:33.1594191Z version: '14393.3630.2004101604' }
2020-05-05T18:28:33.1595387Z template name: t_1588703313152
2020-05-05T18:28:33.1597453Z starting put template...
2020-05-05T18:28:52.9278603Z put template: Succeeded
2020-05-05T18:28:52.9281282Z starting run template...
2020-05-05T19:33:14.3923479Z ##[error]The operation was canceled.
2020-05-05T19:33:14.3939721Z ##[section]Finishing: Azure VM Image Builder Task
Причина
Если пользователь не отменил сборку, агент пользователя Azure DevOps отменил его. Скорее всего, одночасовой таймаут произошел из-за особенностей Azure DevOps. Если вы используете частный проект и агента, у вас будет 60 минут на сборку. Если сборка превышает время ожидания, Azure DevOps отменяет выполняемую задачу.
Дополнительные сведения о возможностях и ограничениях Azure DevOps см. в разделе Агенты, размещаемые Майкрософт.
Решение
Вы можете разместить собственные агенты Azure DevOps или попытаться сократить время сборки. Например, если вы распространяете через Azure Compute Gallery, вы можете реплицировать их в один регион или асинхронно.
Вход в Систему Windows медленно
Ошибка
Эта ошибка может возникнуть, если вы создаете образ Windows 10 с помощью Конструктор образов виртуальных машин, создаете виртуальную машину из образа, а затем используете протокол удаленного рабочего стола (RDP). Подождите несколько минут на первом экране входа в систему, а затем на синем экране отобразится следующее сообщение:
Please wait for the Windows Modules Installer
Решение
В сборке образа убедитесь, что:
- При добавлении настройщика перезапуска Windows в качестве последней настройки не остаётся ожидающих перезагрузок.
- Установка всего программного обеспечения завершена.
Добавьте параметр
/mode:vm
в команду по умолчаниюSysprep
, которую использует построитель образов виртуальной машины. Дополнительные сведения см. в разделе "Переопределение команд " далее в этой статье.
Устранение неполадок виртуальных машин, неудачно созданных с помощью построителя образов виртуальных машин
По умолчанию построитель образов виртуальных машин выполняет код депровизирования в конце каждого этапа настройки образа, чтобы обобщить образ. Обобщение образа настраивает его для повторного использования при создании нескольких виртуальных машин. В рамках процесса можно передать параметры виртуальной машины, например имя узла и имя пользователя.
В Windows построитель образов виртуальных машин выполняет одну универсальную Sysprep
команду. Однако эта команда может не подходить для каждой успешной генерализации Windows. С помощью Конструктора образов виртуальных машин вы можете настроить команду Sysprep
. VM Image Builder — это инструмент автоматизации создания образов, отвечающий за успешное выполнение команд Sysprep
. Однако для повторного использования образа могут потребоваться различные команды Sysprep
.
В Linux построитель образов виртуальных машин выполняет универсальную waagent -deprovision+user
команду. Дополнительные сведения см. в документации по агенту Microsoft Azure Linux.
Если вы переносите существующую настройку и используете различные команды Sysprep
или waagent
, можно испробовать общие команды Конструктора образов виртуальных машин. В случае сбоя создания виртуальной машины используйте предыдущие команды Sysprep
или waagent
.
Предположим, что вы успешно использовали построителе образов виртуальных машин для создания пользовательского образа Windows, но не удалось создать виртуальную машину из образа. Например, создание виртуальной машины завершается сбоем или истекает время ожидания. В этом случае выполните одну из следующих задач:
- Ознакомьтесь с документацией по Windows Server
Sysprep
. - Создайте запрос на поддержку с помощью группы поддержки клиентов Windows Server
Sysprep
. Эта команда поможет устранить проблему и сообщить вам о правильнойSysprep
команде.
Расположение команд и имена файлов
В Windows:
c:\DeprovisioningScript.ps1
В Linux:
/tmp/DeprovisioningScript.sh
Команда Sysprep для Windows
Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
while ((Get-Service RdAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
while ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Sysprepping VM ...'
if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
}
& $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
while($true) {
$imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
Write-Output $imageState
if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
Start-Sleep -s 5
}
Write-Output '>>> Sysprep complete ...'
Команда deprovision для Linux
sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync
Переопределение команд
Чтобы переопределить команды, используйте средства подготовки скриптов PowerShell или оболочки для создания файлов команд с точным именем файла. Поместите их в ранее перечисленные каталоги. Построитель образов виртуальной машины считывает эти команды и записывает выходные данные в customization.log
файл.
Получить поддержку
Если вы следовали рекомендациям в этой статье и по-прежнему имеете проблемы, вы можете обратиться в службу поддержки.
Используйте следующий код, чтобы выбрать правильный продукт и раздел поддержки. Это гарантирует, что вы подключены к группе поддержки Конструктора образов виртуальных машин Azure.
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder