Memecahkan Masalah Azure VM Image Builder

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Gunakan artikel ini untuk memecahkan masalah umum yang mungkin Anda temui saat menggunakan Azure VM Image Builder.

Prasyarat

Saat membuat build, lakukan hal berikut:

  • Layanan VM Image Builder berkomunikasi ke mesin virtual build menggunakan WinRM atau Secure Shell (SSH). Jangan* nonaktifkan pengaturan ini sebagai bagian dari build.
  • VM Image Builder membuat sumber daya dalam grup sumber daya penahapan sebagai bagian dari build. Pastikan untuk memverifikasi bahwa Azure Policy tidak mencegah VM Image Builder membuat atau menggunakan sumber daya yang diperlukan.
  • Verifikasi bahwa Azure Policy tidak menginstal fitur yang tidak diinginkan pada mesin virtual build, seperti Azure Extensions.
  • Pastikan bahwa VM Image Builder memiliki izin yang benar untuk membaca/menulis citra dan untuk menyambungkan ke akun penyimpanan. Untuk informasi selengkapnya, tinjau dokumentasi izin untuk Azure CLI atau Azure PowerShell.
  • VM Image Builder gagal membangun jika skrip atau perintah sebaris gagal dengan kesalahan (kode keluar bukan nol). Pastikan bahwa Anda telah menguji skrip kustom dan memverifikasi bahwa skrip tersebut berjalan tanpa kesalahan (kode keluar 0) atau memerlukan input pengguna. Untuk informasi selengkapnya, lihat Membuat citra Azure Virtual Desktop menggunakan VM Image Builder dan PowerShell.
  • Pastikan langganan Anda memiliki kuota Azure Container Instances yang memadai.
    • Setiap build gambar mungkin menyebarkan hingga satu sumber daya Azure Container Instance sementara (dari empat inti standar) dalam grup sumber daya penahapan. Sumber daya ini diperlukan untuk build gambar terisolasi.

Kegagalan VM Image Builder dapat terjadi di dua area:

  • Selama pengiriman template citra
  • Selama pembangunan citra

Catatan

Citra yang diperkuat CIS (Linux atau Windows) di marketplace Azure, yang dikelola oleh CIS, dapat menyebabkan kegagalan build dengan layanan Azure Image Builder karena konfigurasinya. Contohnya:

  • Citra Windows yang diperkeras CIS mungkin mengganggu konektivitas WinRM, prasyarat untuk build AIB.
  • Citra CIS Linux dapat gagal karena chmod +x masalah izin.

Memecahkan masalah kesalahan pengiriman template gambar

Kesalahan pengiriman template gambar dikembalikan saat pengiriman saja. Tidak ada log galat untuk kesalahan pengiriman template gambar. Apabila terdapat kesalahan selama pengiriman, Anda dapat mengembalikan kesalahan dengan memeriksa status templat, khususnya dengan meninjau ProvisioningState dan ProvisioningErrorMessage/provisioningError.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage

Catatan

Untuk PowerShell, Anda harus menginstal modul PowerShell VM Image Builder.

Penting

Versi API 2021-10-01 memperkenalkan perubahan pada skema kesalahan yang akan menjadi bagian dari setiap rilis API di masa mendatang. Jika Anda memiliki automasi Azure VM Image Builder, ketahui output kesalahan baru saat Anda beralih ke API versi 2021-10-01 atau yang lebih baru. Sebaiknya, setelah beralih ke versi API terbaru, Anda tidak kembali ke versi yang lebih lama, karena Anda harus mengubah automasi kembali untuk menghasilkan skema kesalahan sebelumnya. Kami tidak mengantisipasi perubahan skema kesalahan lagi di rilis mendatang.

Output kesalahan untuk versi 2020-02-14 dan yang lebih lama

{
  "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."
}

Output kesalahan untuk versi 2021-10-01 dan yang lebih baru

{
  "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."
  }
}

Bagian berikut menyajikan panduan resolusi masalah untuk kesalahan pengiriman templat citra umum.

Pembaruan atau peningkatan templat gambar saat ini tidak didukung

Kesalahan

'Conflict'. Details: Update/Upgrade of image templates is currently not supported

Penyebab

Template sudah ada.

Solusi

Jika Anda mengirimkan template konfigurasi gambar dan pengiriman gagal, artefak template yang gagal masih ada. Menghapus template yang gagal.

Menetapkan ulang MSI pada templat gambar

Kesalahan

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.

Penyebab

Ada kasus di mana Identitas Layanan Terkelola (MSI) yang ditetapkan ke templat gambar tidak dapat digunakan:

  • Templat Image Builder menggunakan grup sumber daya penahapan yang disediakan pelanggan dan MSI dihapus sebelum templat gambar dihapus (skenario grup sumber daya penahapan)
  • Identitas Layanan Terkelola (MSI) yang dibuat yang ditetapkan ke templat gambar tidak dapat digunakan

Solusi

Gunakan Azure CLI untuk mengatur ulang identitas pada templat gambar. Pastikan Anda memperbarui Azure CLI ke versi 2.45.0 atau yang lebih baru.

Menghapus identitas terkelola dari templat penyusun gambar target

az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>

Menetapkan ulang identitas ke templat penyusun gambar target

az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>

Operasi sumber daya selesai dengan status provisi terminal "Gagal"

Kesalahan

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

Penyebab

Dalam kebanyakan kasus, kesalahan kegagalan penyebaran sumber daya terjadi karena izin yang hilang. Kesalahan ini mungkin juga disebabkan oleh konflik dengan grup sumber daya penahapan.

Solusi

Tergantung pada skenario Anda, VM Image Builder mungkin memerlukan izin untuk:

  • Citra sumber atau grup sumber daya Azure Compute Gallery (sebelumnya dikenal sebagai Shared Image Gallery).
  • Citra distribusi atau sumber daya Azure Compute Gallery.
  • Akun penyimpanan, kontainer, atau blob yang diakses oleh penyesuai File.

Selain itu, pastikan nama grup sumber daya penahapan ditentukan secara unik untuk setiap templat gambar.

Untuk informasi lebih lanjut mengenai izin konfigurasi, lihat Mengonfigurasi izin VM Image Builder menggunakan Azure CLI atau Mengonfigurasi izin VM Image Builder menggunakan PowerShell.

Kesalahan dalam mendapatkan citra terkelola

Kesalahan

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

Penyebab

Izin tidak ada.

Solusi

Tergantung pada skenario Anda, VM Image Builder mungkin memerlukan izin untuk:

  • Citra sumber atau grup sumber daya Azure Compute Gallery.
  • Citra distribusi atau sumber daya Azure Compute Gallery.
  • Akun penyimpanan, kontainer, atau blob yang diakses oleh penyesuai File.

Untuk informasi lebih lanjut mengenai izin konfigurasi, lihat Mengonfigurasi izin VM Image Builder menggunakan Azure CLI atau Mengonfigurasi izin VM Image Builder menggunakan PowerShell.

Langkah pembangunan gagal untuk versi citra

Kesalahan

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

Penyebab

VM Image Builder tidak dapat menemukan citra sumber.

Solusi

Pastikan bahwa citra sumber sudah benar dan ada di lokasi VM Image Builder.

Mengunduh file eksternal ke file lokal

Kesalahan

Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..

Penyebab

Nama atau lokasi file salah, atau lokasinya tidak dapat dijangkau.

Solusi

Pastikan file tersebut dapat dijangkau. Pastikan nama dan lokasi sudah benar.

Kesalahan otorisasi saat membuat disk

Build Azure Image Builder gagal dengan kesalahan otorisasi yang terlihat seperti berikut ini:

Kesalahan

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

Penyebab

Kesalahan ini disebabkan saat mencoba menentukan grup sumber daya dan VNet yang sudah ada sebelumnya ke layanan Azure Image Builder dengan gambar sumber Windows.

Solusi

Anda harus menetapkan peran kontributor ke grup sumber daya untuk perwakilan layanan yang sesuai dengan aplikasi pihak pertama Azure Image Builder dengan menggunakan perintah CLI atau instruksi portal di bawah ini.

Pertama, validasi bahwa perwakilan layanan dikaitkan dengan aplikasi pihak pertama Azure Image Builder dengan menggunakan perintah CLI berikut:

az ad sp show --id {servicePrincipalName, or objectId}

Kemudian, untuk menerapkan solusi ini menggunakan CLI, gunakan perintah berikut:

az role assignment create -g {ResourceGroupName} --assignee {AibrpSpOid} --role Contributor

Untuk menerapkan solusi ini di portal, ikuti instruksi dalam dokumentasi ini: Tetapkan peran Azure menggunakan portal Azure - Azure RBAC.

Untuk Langkah 1: Identifikasi cakupan yang diperlukan: Cakupan yang diperlukan adalah grup sumber daya Anda.

Untuk Langkah 3: Pilih peran yang sesuai: Perannya adalah Kontributor.

Untuk Langkah 4: Pilih siapa yang memerlukan akses: Pilih anggota "Azure Virtual Machine Image Builder"

Kemudian lanjutkan ke Langkah 6: Tetapkan peran untuk menetapkan peran.

Memecahkan masalah kegagalan buat

Untuk kegagalan pembangunan citra, dapatkan kesalahan dari lastrunstatus, kemudian tinjau detail dalam file customization.log.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage

Log kustomisasi

Saat buat gambar berjalan, log dibuat dan disimpan di akun penyimpanan. VM Image Builder membuat akun penyimpanan di grup sumber daya sementara saat Anda membuat artefak templat citra.

Nama akun penyimpanan menggunakan pola IT_<ImageResourceGroupName><TemplateName><GUID> (misalnya, IT_aibmdi_helloImageTemplateLinux01).

Untuk melihat customization.log file di grup sumber daya, pilih Blobpackerlogs> Akun>Penyimpanan, pilih direktori, lalu pilih file customization.log.

Memahami log kustomisasi

Log adalah verbose. Log ini mencakup build citra, termasuk masalah apa pun dengan distribusi citra, seperti replikasi Azure Compute Gallery. Kesalahan ini muncul dalam pesan kesalahan status template gambar.

File customization.log ini mencakup tahapan berikut:

  1. Sebarkan mesin virtual build dan dependensi menggunakan templat ARM ke tahap grup sumber daya penahapan IT_. Tahap ini mencakup beberapa POST ke penyedia sumber daya VM Image Builder:

    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 ...
    ..
    
  2. Tahap Status penyebaran. Tahap ini mencakup status setiap penyebaran sumber daya:

    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=""
    
  3. Tahap Menyambungkan ke mesin virtual build.

    Di Windows, VM Image Builder menyambungkan menggunakan 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.
    

    Di Linux, VM Image Builder menyambungkan menggunakan 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!
    
  4. Tahap Jalankan kustomisasi. Saat kustomisasi berjalan, Anda dapat mengidentifikasinya dengan meninjau file customization.log. Cari (telemetri).

    (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 hasfinished
    
  5. Tahap Pembatalan provisi. VM Image Builder menambahkan penyesuai tersembunyi. Langkah pembatalan provisi ini bertanggung jawab atas penyiapan mesin virtual untuk pembatalan provisi. Di Windows, langkah ini menjalankan Sysprep (menggunakan c:\DeprovisioningScript.ps1). Di Linux, tahap ini menjalankan waagent-deprovision (menggunakan /tmp/DeprovisioningScript.sh).

    Contohnya:

    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."}
    
  6. Tahap Pembersihan. Setelah build selesai, sumber daya VM Image Builder dihapus.

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

Tips untuk memecahkan masalah skrip atau kustomisasi sebaris

  • Uji kode sebelum memberikannya ke VM Image Builder.
  • Pastikan Azure Policy dan Firewall memungkinkan konektivitas ke sumber daya jarak jauh.
  • Output menguraikan ke konsol menggunakan Write-Host atau echo. Hal ini memungkinkan Anda mencari file customization.log.

Pemecahan masalah kesalahan buat umum

Penyebaran templat gagal karena pelanggaran kebijakan

Kesalahan

{
  "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>"
}

Penyebab

Kesalahan pelanggaran kebijakan di atas adalah akibat dari penggunaan Azure Key Vault dengan akses publik dinonaktifkan. Saat ini, Azure Image Builder tidak mendukung konfigurasi ini.

Solusi

Azure Key Vault harus dibuat dengan akses publik diaktifkan.

Kegagalan perintah buat packer

Kesalahan

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

Penyebab

Kegagalan kustomisasi.

Solusi

Tinjau log untuk menemukan kegagalan penyesuai. Cari (telemetri).

Contohnya:

(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

Batas waktu terlampaui

Kesalahan

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'

Penyebab

Build melebihi batas waktu build. Kesalahan ini terlihat di 'lastrunstatus'.

Solusi

  1. Tinjau file customization.log. Identifikasi penyesuai terakhir yang akan dijalankan. Cari (telemetry), mulai dari bagian bawah log.

  2. Periksa kustomisasi skrip. Kustomisasi mungkin tidak menekan interaksi pengguna untuk perintah, seperti opsi quiet. Misalnya, apt-get install -y menghasilkan eksekusi skrip yang menunggu interaksi pengguna.

  3. Jika Anda menggunakan penyesuai File untuk mengunduh artefak yang lebih besar dari 20 MB, lihat bagian solusi.

  4. Tinjau kesalahan dan dependensi dalam skrip yang dapat menyebabkan skrip menunggu.

  5. Jika Anda mengharapkan bahwa kustomisasi membutuhkan lebih banyak waktu, tingkatkan nilai buildTimeoutInMinutes. Waktu default adalah 4 jam.

  6. Jika Anda memiliki tindakan intensif sumber daya, seperti mengunduh file berukuran gigabyte (GB), pertimbangkan ukuran mesin virtual build buat yang mendasar. Layanan ini menggunakan Standard_D1_v2 VM. Mesin virtual memiliki 1 vCPU dan memori 3,5 GB. Apabila Anda mengunduh 50 GB, kemungkinan besar Anda akan menghabiskan sumber daya mesin virtual dan menyebabkan kegagalan komunikasi antara VM Image Builder dan mesin virtual build. Coba kembali build dengan mesin virtual yang memiliki memori yang lebih besar dengan mengatur VM_Size.

Waktu pengunduhan file yang lama

Kesalahan

[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

Penyebab

Penyesuai File sedang mengunduh file yang besar.

Solusi

Penyesuai File hanya cocok untuk pengunduhan file kecil (kurang dari 20 MB). Untuk unduhan file yang lebih besar, gunakan skrip atau perintah sebaris. Misalnya, di Linux, Anda dapat menggunakan wget atau curl. Di Windows, Anda dapat menggunakan Invoke-WebRequest.

Penyusun terus gagal menjalankan Windows-Restart dengan kode kesalahan 1190

Kesalahan

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

Penyebab

Langkah pembaruan windows mendeklarasikan secara prematur dalam gambar berdasarkan Windows Server 2016.

Solusi

Tingkatkan restartTimeout dari 15 menit menjadi 30 menit.

Kesalahan

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}

Penyebab

VM Image Builder kehabisan waktu menunggu citra ditambahkan dan direplikasi ke Azure Compute Gallery. Apabila citra sedang dimasukkan ke dalam galeri, Anda dapat berasumsi bahwa build citra berhasil. Namun, proses keseluruhan gagal karena VM Image Builder sedang menunggu Azure Compute Gallery untuk menyelesaikan replikasi. Meskipun buat telah gagal, replikasi berlanjut. Anda bisa mendapatkan properti versi gambar dengan memeriksa runOutput distribusi.

$runOutputName=<distributionRunOutput>
az resource show \
    --ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName"  \
    --api-version=2020-02-14

Solusi

Tingkatkan nilai buildTimeoutInMinutes.

Peristiwa informasi sumber daya Windows rendah

Kesalahan

[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

Penyebab

Kelelahan sumber daya. Masalah ini biasanya terlihat dengan Windows Update yang berjalan menggunakan ukuran mesin virtual build default D1_V2.

Solusi

Memperbesar ukuran VM buat.

Build selesai tetapi tidak ada artefak yang dibuat

Peringatan

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

Solusi

Peringatan di atas dapat diabaikan dengan aman.

Melompati pembuatan gambar

Peringatan

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

Solusi

Peringatan di atas dapat diabaikan dengan aman.

Sumber daya tidak ditemukan

Kesalahan

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

Penyebab

Izin tidak ada.

Solusi

Periksa kembali untuk memastikan bahwa VM Image Builder memiliki semua izin yang diperlukan.

Untuk informasi lebih lanjut mengenai izin konfigurasi, lihat Mengonfigurasi izin VM Image Builder menggunakan Azure CLI atau Mengonfigurasi izin VM Image Builder menggunakan PowerShell.

Pengaturan waktu Sysprep

Kesalahan

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

Penyebab

Penyebabnya mungkin adalah masalah pengaturan waktu karena ukuran mesin virtual D1_V2. Apabila kustomisasi terbatas dan berjalan dalam waktu kurang dari tiga detik, perintah Sysprep dijalankan oleh VM Image Builder untuk membatalkan provisi. Saat VM Image Builder membatalkan provisi, perintah Sysprep memeriksa WindowsAzureGuestAgent, yang mungkin tidak sepenuhnya terinstal dan dapat menyebabkan masalah pengaturan waktu.

Solusi

Untuk menghindari masalah pengaturan waktu, Anda dapat meningkatkan ukuran mesin virtual atau Anda dapat menambahkan kustomisasi tidur PowerShell 60 detik.

Penyedia Azure Container Instances yang tidak terdaftar

Kesalahan

Azure Container Instances provider not registered for your subscription.

Penyebab

Langganan templat Anda tidak memiliki penyedia Azure Container Instances yang terdaftar.

Solusi

Daftarkan penyedia Azure Container Instances untuk langganan templat Anda dan tambahkan perintah Azure CLI atau PowerShell:

  • Azure CLI: az provider register -n Microsoft.ContainerInstance
  • PowerShell: Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

Kuota Azure Container Instances terlampaui

Kesalahan

Azure Container Instances quota exceeded"

Penyebab

Langganan Anda tidak memiliki cukup kuota Azure Container Instances (ACI) untuk Azure Image Builder agar berhasil membangun gambar.

Solusi

Anda dapat melakukan hal berikut untuk membuat kuota ACI tersedia untuk Azure Image Builder:

  • Cari penggunaan Lain dari Azure Container Instances di langganan Anda dan hapus instans yang tidak diperlukan untuk membuat kuota tersedia untuk Azure Image Builder.
  • Azure Image Builder menyebarkan ACI hanya untuk sementara saat build berlangsung. Instans ini dihapus setelah build selesai. Jika terlalu banyak build gambar bersamaan yang terjadi di langganan Anda, maka Anda dapat mempertimbangkan untuk menunda beberapa build gambar. Ini mengurangi penggunaan ACI secara bersamaan dalam langganan Anda. Jika templat gambar Anda disiapkan untuk build gambar otomatis menggunakan pemicu, build yang gagal tersebut akan secara otomatis dicoba ulang oleh Azure Image Builder.
  • Jika batas ACI saat ini untuk langganan Anda terlalu rendah untuk mendukung skenario pembuatan gambar Anda, maka Anda dapat meminta peningkatan kuota ACI Anda.

Catatan

Sumber daya ACI diperlukan untuk Build Gambar Terisolasi.

Terlalu banyak Azure Container Instances yang disebarkan dalam jangka waktu tertentu

Kesalahan

"Terlalu banyak Azure Container Instances yang disebarkan dalam jangka waktu tertentu"

Penyebab

Langganan Anda tidak memiliki cukup kuota Azure Container Instances (ACI) untuk Azure Image Builder agar berhasil membangun gambar secara bersamaan.

Solusi

Anda dapat melakukan tindakan berikut:

  • Coba lagi build Anda yang gagal dengan cara yang kurang bersamaan.
  • Jika batas ACI saat ini untuk langganan Anda terlalu rendah untuk mendukung skenario pembuatan gambar Anda, maka Anda dapat meminta peningkatan kuota ACI Anda.

Kegagalan Build Gambar Terisolasi

Kesalahan

Build Azure Image Builder gagal karena Build Gambar Terisolasi.

Penyebab

Build Azure Image Builder dapat gagal karena alasan yang tercantum di tempat lain dalam dokumen ini. Namun, ada kemungkinan kecil bahwa build gagal karena Build Gambar Terisolasi tergantung pada skenario, kuota langganan, atau beberapa kesalahan layanan yang tidak terduga. Untuk informasi selengkapnya, lihat Build Gambar Terisolasi.

Solusi

Jika Anda menentukan bahwa build gagal karena Build Gambar Terisolasi, Anda dapat melakukan hal berikut:

  • Pastikan tidak ada Azure Policy yang memblokir penyebaran sumber daya yang disebutkan di bagian Prasyarat, khususnya Azure Container Instances, Azure Virtual Networks, dan Azure Private Endpoints.
  • Pastikan langganan Anda memiliki kuota Azure Container Instances yang memadai untuk mendukung semua build gambar bersamaan Anda. Untuk informasi selengkapnya, lihat, kuota Azure Container Instances terlampaui.

Azure Image Builder saat ini sedang dalam proses penyebaran Build Gambar Terisolasi. Templat gambar tertentu tidak terkait dengan Build Gambar Terisolasi dan templat gambar yang sama mungkin atau mungkin tidak menggunakan Build Gambar Terisolasi selama build yang berbeda. Anda dapat melakukan hal berikut untuk menjalankan build Anda untuk sementara tanpa Build Gambar Terisolasi.

  • Coba lagi build Anda. Karena Templat Gambar tidak terikat dengan fitur Build Gambar Terisolasi, mencoba kembali build memiliki probabilitas tinggi untuk menjalankan ulang tanpa Build Gambar Terisolasi.

Jika tidak ada solusi ini yang mengurangi build gambar yang gagal, maka Anda dapat menghubungi dukungan Azure untuk sementara waktu memilih langganan Anda dari Build Gambar Terisolasi. Untuk informasi selengkapnya, lihat Membuat permintaan dukungan Azure.

Catatan

Build Gambar Terisolasi pada akhirnya akan diaktifkan di semua wilayah dan templat. Jadi, mitigasi di atas harus dianggap sementara dan penyebab mendasar kegagalan build harus ditangani.

Build dibatalkan setelah konteks pembatalan konteks dibatalkan

Kesalahan

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

Penyebab

VM Image Builder menggunakan port 22 (Linux) atau 5986 (Windows) untuk menyambungkan ke mesin virtual build. Hal ini terjadi saat layanan diputus dari mesin virtual build selama pembangunan citra. Alasan pemutusan dapat bervariasi, tetapi mengaktifkan atau mengonfigurasi firewall dalam skrip dapat memblokir port yang disebutkan sebelumnya.

Solusi

Tinjau skrip Anda untuk perubahan atau pengaktifan firewall, atau perubahan pada SSH atau WinRM, dan pastikan setiap perubahan memungkinkan konektivitas konstan antara layanan dan mesin virtual build pada port yang disebutkan sebelumnya. Untuk informasi selengkapnya, lihat Opsi jaringan VM Image Builder.

Kesalahan JWT dalam log di awal build

Kesalahan

Di awal proses build, build gagal dan log menunjukkan kesalahan 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:

Penyebab

Nilai buildTimeoutInMinutes dalam templat diatur menjadi mulai 1 hingga 5 menit.

Solusi

Seperti yang dijelaskan dalam Membuat templat VM Image Builder, batas waktu harus diatur ke 0 untuk menggunakan default atau di atas 5 menit untuk mengambil alih default. Ubah batas waktu dalam templat Anda menjadi 0 untuk menggunakan default atau minimal 6 menit.

Kesalahan penghapusan sumber daya

Kesalahan

Sumber daya perantara dibersihkan menjelang akhir build dan log kustomisasi mungkin menunjukkan beberapa kesalahan penghapusan sumber daya:

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

Penyebab

Pesan log kesalahan ini sebagian besar tidak berbahaya karena penghapusan sumber daya dicoba kembali beberapa kali dan,secara umum, berhasil pada akhirnya. Anda dapat memverifikasi ini dengan terus mengikuti log penghapusan hingga Anda mengamati pesan berhasil. Atau, Anda dapat memeriksa sumber daya penahapan untuk mengonfirmasi apakah sumber daya telah dihapus.

Membuat pengamatan ini sangat penting dalam kegagalan build, yang mana pesan kesalahan ini dapat mengarahkan Anda untuk menyimpulkan bahwa itu adalah alasan kegagalan, bahkan ketika kesalahan aktual mungkin berasal dari tempat lain.

Kesalahan

Saat gambar terjebak dalam penghapusan templat, log kustomisasi mungkin menunjukkan kesalahan di bawah ini:

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=[]

Penyebab

Kesalahan terjadi karena antarmuka jaringan saat ini sedang digunakan dengan titik akhir privat.

Solusi

Untuk mengatasi masalah ini, hapus sumber daya di bawah ini satu per satu dalam urutan tertentu:

  1. Koneksi titik akhir privat. Anda dapat menemukan ini di sumber daya layanan tautan privat dengan masuk ke tab "koneksi titik akhir privat" di halaman sumber daya layanan tautan privat.
  2. Layanan private link.
  3. Antarmuka jaringan dan load balancer.
  4. Grup Sumber Daya.
  5. Templat gambar.

Untuk bantuan tambahan, Anda dapat menghubungi dukungan Azure untuk mengatasi kesalahan penghapusan yang macet.

Mendistribusikan target tidak ditemukan dalam permintaan pembaruan

Kesalahan

Validation failed: Distribute target with Runoutput name <runoutputname> not found in the update request. Deleting a distribution target is not allowed.

Penyebab

Kesalahan ini terjadi ketika target distribusi yang ada tidak ditemukan di isi permintaan Patch.

Solusi

Array distribusi harus berisi semua target distribusi yaitu, target baru (jika ada), target yang ada tanpa target perubahan dan yang diperbarui. Jika Anda ingin menghapus target distribusi yang ada, hapus dan buat ulang templat gambar karena menghapus target distribusi saat ini tidak didukung melalui API Patch.

Bidang yang diperlukan tidak ada

Kesalahan

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.

Penyebab

Kesalahan ini terjadi ketika bidang yang diperlukan hilang dari target distribusi.

Solusi

Saat membuat permintaan, harap berikan setiap bidang yang diperlukan dalam target distribusi meskipun tidak ada perubahan.

Tugas DevOps

Memecahkan masalah tugas

Tugas gagal hanya jika terjadi kesalahan selama kustomisasi. Ketika ini terjadi, tugas melaporkan kegagalan dan meninggalkan grup sumber daya penahapan, beserta log, sehingga Anda dapat mengidentifikasi masalah.

Untuk menemukan log, Anda perlu mengetahui nama templat. Buka build yang>gagal alur, lalu telusuri paling detail ke tugas VM Image Builder DevOps.

Anda akan melihat log dan nama templat:

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
  1. Buka portal Azure, cari nama templat di grup sumber daya, kemudian cari grup sumber daya dengan mengetik IT_*.
  2. Pilih nama akun penyimpanan >blob>kontainer>log.

Memecahkan masalah build yang berhasil

Terkadang Anda mungkin perlu menyelidiki build yang berhasil dan meninjau lognya. Seperti disebutkan sebelumnya, apabila build citra berhasil, grup sumber daya penahapan yang mencakup log akan dihapus sebagai bagian dari pembersihan. Namun, untuk mencegah pembersihan otomatis, Anda dapat memperkenalkan sleep setelah perintah sebaris, kemudian melihat log saat build dijeda. Untuk melakukannya, lakukan hal berikut:

  1. Perbarui perintah sebaris dengan menambahkan Write-Host / Echo "Sleep". Ini memberi Anda waktu untuk mencari di log.
  2. Tambahkan nilai sleep sebesar setidaknya 10 menit menggunakan perintah Start-Sleep atau Sleep Linux.
  3. Gunakan metode ini untuk mengidentifikasi lokasi log, kemudian terus mengunduh atau memeriksa log hingga mencapai sleep.

Operasi dibatalkan

Kesalahan

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

Penyebab

Jika build tidak dibatalkan oleh pengguna, build tersebut dibatalkan oleh Agen Pengguna Azure DevOps. Kemungkinan besar batas waktu 1 jam telah terjadi karena kemampuan Azure DevOps. Apabila Anda menggunakan proyek dan agen privat, Anda mendapatkan 60 menit waktu build. Jika build melebihi batas waktu, DevOps membatalkan tugas yang sedang berjalan.

Untuk informasi selengkapnya tentang kemampuan dan batasan Azure DevOps, lihat Agen yang dihosting Microsoft.

Solusi

Anda dapat menghosting agen DevOps Anda sendiri atau mencari cara mengurangi waktu build Anda. Misalnya, jika Anda mendistribusikan ke Azure Compute Gallery, Anda dapat mereplikasinya ke satu wilayah atau mereplikasinya secara asinkron.

Log masuk Windows lambat

Kesalahan

Kesalahan ini mungkin terjadi saat Anda membuat citra Windows 10 menggunakan VM Image Builder, membuat mesin virtual dari citra, kemudian menggunakan Protokol Desktop Jauh (RDP). Anda menunggu beberapa menit di layar masuk pertama, kemudian layar biru menampilkan pesan berikut:

Please wait for the Windows Modules Installer

Solusi

  1. Dalam build citra, periksa untuk memastikan bahwa:

    • Tidak ada boot ulang tertunda yang diperlukan dengan menambahkan penyesuai Hidupkan Ulang Windows sebagai kustomisasi terakhir.
    • Semua penginstalan perangkat lunak selesai.
  2. Tambahkan opsi /mode:vm ke Sysprep default yang digunakan oleh VM Image Builder. Untuk informasi selengkapnya, buka bagian "Mengambil alih perintah" pada "Mesin virtual yang dibuat dari citra VM Image Builder gagal dibuat."

Mesin virtual yang dibuat dari citra VM Image Builder gagal dibuat

Secara default, VM Image Builder menjalankan kode pembatalan provisi di akhir setiap fase kustomisasi citra untuk membuat generalisasi citra. Membuat generalisasi citra adalah mengatur citra untuk digunakan kembali guna membuat beberapa mesin virtual. Sebagai bagian dari proses, Anda dapat meneruskan pengaturan mesin virtual, seperti nama host, nama pengguna, dan sebagainya. Di Windows, VM Image Builder menjalankan Sysprep, dan di Linux, VM Image Builder menjalankan waagent -deprovision.

Di Windows, VM Image Builder menggunakan perintah Sysprep generik. Namun, perintah ini mungkin tidak cocok untuk setiap generalisasi Windows yang berhasil. Dengan VM Image Builder, Anda dapat mengkustomisasi perintah Sysprep. Perhatikan bahwa VM Image Builder adalah alat otomatisasi citra yang bertanggung jawab atas eksekusi perintah Sysprep dengan sukses. Namun, Anda mungkin memerlukan perintah Sysprep yang berbeda untuk membuat citra Anda dapat digunakan kembali. Di Linux, VM Image Builder menggunakan perintah waagent -deprovision+user generik. Untuk informasi selengkapnya, lihat Dokumentasi Agen Microsoft Azure.

Apabila Anda memigrasikan kustomisasi yang ada dan menggunakan berbagai perintah Sysprep atau waagent, Anda dapat mencoba perintah generik VM Image Builder. Apabila pembuatan mesin virtual gagal, gunakan perintah Sysprep atau waagent sebelumnya.

Anggap saja Anda telah berhasil menggunakan VM Image Builder untuk membuat citra kustom Windows, tetapi Anda telah gagal membuat mesin virtual dengan sukses dari citra. Misalnya, pembuatan mesin virtual gagal diselesaikan atau waktu habis. Dalam kejadian ini, lakukan salah satu hal berikut:

  • Tinjau dokumentasi Sysprep Windows Server.
  • Ajukan permintaan dukungan dengan tim Dukungan Layanan Pelanggan Sysprep Windows Server. Mereka dapat membantu memecahkan masalah Anda dan memberi tahu Anda perintah Sysprep yang benar.

Lokasi perintah dan nama file

Di Windows:

c:\DeprovisioningScript.ps1

Pada Linux:

/tmp/DeprovisioningScript.sh

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

Perintah -deprovision : Linux

sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync

Mengambil alih perintah

Untuk mengambil alih perintah, gunakan pembuat provisi skrip PowerShell atau shell untuk membuat file perintah dengan nama file yang tepat dan meletakkannya di direktori yang dicantumkan sebelumnya. VM Image Builder membaca perintah lalu menuliskan output ke file customization.log.

Mendapatkan dukungan

Apabila Anda telah merujuk ke panduan dan masih mengalami masalah, Anda dapat membuka kasus dukungan. Pastikan untuk memilih topik produk dan dukungan yang benar. Melakukan hal ini akan memastikan bahwa Anda tersambung dengan tim dukungan Azure VM Image Builder.

Memilih produk kasus:

Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder

Langkah berikutnya

Untuk informasi selengkapnya, lihat Ikhtisar Pembuat Gambar VM.