Ekstensi dan fitur komputer virtual untuk Windows

Ekstensi komputer virtual (VM) Azure adalah aplikasi kecil yang menyediakan konfigurasi pasca-penyebaran dan tugas otomatisasi pada Azure VM. Misalnya, jika komputer virtual memerlukan penginstalan perangkat lunak, perlindungan antivirus, atau kemampuan untuk menjalankan skrip di dalam VM, Anda dapat menggunakan ekstensi VM.

Anda dapat menjalankan ekstensi Azure VM dengan menggunakan templat Azure CLI, PowerShell, Azure Resource Manager (ARM), dan portal Microsoft Azure. Anda dapat menggabungkan ekstensi dengan penyebaran VM baru atau menjalankannya terhadap sistem yang ada.

Artikel ini menyediakan gambaran umum ekstensi Azure VM, termasuk prasyarat dan panduan tentang cara mendeteksi, mengelola, dan menghapus ekstensi. Artikel ini menyediakan informasi umum karena banyak ekstensi VM yang tersedia. Setiap ekstensi memiliki konfigurasi yang berpotensi unik dan dokumentasinya sendiri.

Nota

Coba bantuan VM untuk diagnostik yang lebih cepat. Kami menyarankan agar Anda menjalankan VM assist untuk Windows atau VM assist untuk Linux. Alat diagnostik berbasis skrip ini membantu Anda mengidentifikasi masalah umum yang memengaruhi Agen Tamu Azure VM dan kesehatan VM secara keseluruhan.

Jika Anda mengalami masalah performa dengan komputer virtual, sebelum menghubungi dukungan, jalankan alat-alat ini.

Kasus penggunaan dan contoh

Setiap ekstensi Azure VM memiliki kasus penggunaan tertentu. Berikut adalah beberapa contoh:

Selain ekstensi khusus proses, Ekstensi Skrip Kustom tersedia untuk komputer virtual Windows dan Linux. Ekstensi Skrip Kustom untuk Windows memungkinkan skrip PowerShell berjalan pada VM. Skrip kustom berguna untuk merancang penyebaran Azure yang memerlukan konfigurasi di luar alat Azure asli apa yang dapat disediakan.

Prasyarat

Tinjau prasyarat berikut untuk bekerja dengan ekstensi Azure VM.

Agen VM Azure

Untuk menangani ekstensi pada VM, Anda memerlukan Azure Virtual Machine Agent untuk Windows terinstal. Agen ini juga disebut sebagai Agen Azure VM atau Agen Tamu Windows. Saat Anda bersiap untuk menginstal ekstensi, perlu diingat bahwa beberapa ekstensi memiliki prasyarat individual, seperti akses ke sumber daya atau dependensi.

Agen Azure VM mengelola interaksi antara Azure VM dan pengontrol fabric Azure. Agen bertanggung jawab atas banyak aspek fungsional penyebaran dan pengelolaan Azure VM, termasuk menjalankan ekstensi VM.

Azure VM Agent telah diinstal sebelumnya pada citra Azure Marketplace. Agen juga dapat diinstal secara manual pada sistem operasi yang didukung.

Agen berjalan pada beberapa sistem operasi. Namun, kerangka kerja ekstensi memiliki batasan untuk sistem operasi yang digunakan ekstensi. Beberapa ekstensi tidak didukung di semua sistem operasi dan mungkin memancarkan kode kesalahan 51 ("OS yang tidak didukung"). Silakan periksa dokumentasi setiap ekstensi untuk kemampuan dukungannya.

Akses jaringan

Paket ekstensi diunduh dari repositori ekstensi Azure Storage. Unggahan status ekstensi diposting ke Azure Storage.

Jika Anda menggunakan versi Agen Azure VM yang didukung, Anda tidak perlu mengizinkan akses ke Azure Storage di wilayah VM. Anda dapat menggunakan Agen VM untuk mengalihkan komunikasi ke pengontrol fabric Azure untuk komunikasi agen (menggunakan fitur HostGAPlugin melalui saluran istimewa pada alamat IP privat 168.63.129.16). Jika Anda menggunakan versi Agen VM yang tidak didukung, Anda perlu mengizinkan akses keluar ke Azure Storage di wilayah tersebut dari VM.

Penting

Jika Anda memblokir akses ke alamat IP 168.63.129.16 dengan menggunakan firewall tamu atau melalui proksi, ekstensi gagal. Kegagalan terjadi bahkan jika Anda menggunakan versi Agen VM yang didukung atau Anda mengonfigurasi akses keluar. Port 80 dan 32526 diperlukan.

Agen hanya dapat digunakan untuk mengunduh paket ekstensi dan melaporkan status. Misalnya, jika penginstalan ekstensi perlu mengunduh skrip dari GitHub (Ekstensi Skrip Kustom) atau memerlukan akses ke Azure Storage (Azure Backup), maka Anda perlu membuka port firewall atau kelompok keamanan jaringan (NSG) lainnya. Ekstensi yang berbeda memiliki persyaratan yang berbeda karena mereka adalah aplikasi dengan hak mereka sendiri. Untuk ekstensi yang memerlukan akses ke Azure Storage atau ID Microsoft Entra, Anda dapat mengizinkan akses dengan menggunakan tag layanan Azure NSG.

Agen Azure VM tidak menyediakan dukungan server proksi untuk mengaktifkan pengalihan permintaan lalu lintas agen. Agen VM bergantung pada proksi kustom Anda (jika Anda memilikinya) untuk mengakses sumber daya di internet atau di host melalui alamat IP 168.63.129.16.

Menemukan ekstensi VM

Banyak ekstensi VM tersedia untuk digunakan dengan Azure VM. Untuk melihat daftar lengkap, gunakan Get-AzVMExtensionImage cmdlet PowerShell.

Perintah berikut mencantumkan semua ekstensi VM yang tersedia di lokasi wilayah US Barat:

Get-AzVmImagePublisher -Location "West US" |
Get-AzVMExtensionImageType |
Get-AzVMExtensionImage | Select Type, Version

Perintah ini menyediakan output yang mirip dengan contoh berikut:

Type                Version
----                -------
AcronisBackup       1.0.33
AcronisBackup       1.0.51
AcronisBackupLinux  1.0.33
AlertLogicLM        1.3.0.1
AlertLogicLM        1.3.0.0
AlertLogicLM        1.4.0.1

Menjalankan ekstensi VM

Ekstensi Azure VM berjalan pada VM yang ada, yang berguna saat Anda perlu membuat perubahan konfigurasi atau memulihkan konektivitas pada VM yang sudah disebarkan. Ekstensi VM juga dapat dibundel dengan penyebaran templat ARM. Dengan menggunakan ekstensi dengan templat ARM, Anda dapat menyebarkan dan mengonfigurasi Azure VM tanpa intervensi pasca-penyebaran.

Anda dapat menggunakan metode berikut untuk menjalankan ekstensi terhadap VM yang ada.

Nota

Beberapa contoh berikut menggunakan "<placeholder>" nilai parameter dalam perintah. Sebelum Anda menjalankan setiap perintah, pastikan untuk mengganti nilai apa pun "<placeholder>" dengan nilai tertentu untuk konfigurasi Anda.

PowerShell

Beberapa perintah PowerShell ada untuk menjalankan ekstensi individual. Untuk melihat daftar, gunakan perintah Get-Command dan filter pada Ekstensi:

Get-Command Set-Az*Extension* -Module Az.Compute

Perintah ini menyediakan output yang mirip dengan contoh berikut:

CommandType     Name                                          Version    Source
-----------     ----                                          -------    ------
Cmdlet          Set-AzVMAccessExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMADDomainExtension                     4.5.0      Az.Compute
Cmdlet          Set-AzVMAEMExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMBackupExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMBginfoExtension                       4.5.0      Az.Compute
Cmdlet          Set-AzVMChefExtension                         4.5.0      Az.Compute
Cmdlet          Set-AzVMCustomScriptExtension                 4.5.0      Az.Compute
Cmdlet          Set-AzVMDiagnosticsExtension                  4.5.0      Az.Compute
Cmdlet          Set-AzVMDiskEncryptionExtension               4.5.0      Az.Compute
Cmdlet          Set-AzVMDscExtension                          4.5.0      Az.Compute
Cmdlet          Set-AzVMExtension                             4.5.0      Az.Compute
Cmdlet          Set-AzVMSqlServerExtension                    4.5.0      Az.Compute
Cmdlet          Set-AzVmssDiskEncryptionExtension             4.5.0      Az.Compute

Contoh berikut menggunakan Ekstensi Skrip Kustom untuk mengunduh skrip dari repositori GitHub ke komputer virtual target lalu menjalankan skrip.

Set-AzVMCustomScriptExtension -ResourceGroupName "<myResourceGroup>" `
    -VMName "<myVM>" -Name "<myCustomScript>" `
    -FileUri "https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/windows-custom-script-simple/support-scripts/Create-File.ps1" `
    -Run "Create-File.ps1" -Location "<myVMregion>"

Contoh berikut menggunakan ekstensi VMAccess untuk mengatur ulang kata sandi administratif VM Windows ke kata sandi sementara. Setelah menjalankan kode ini, Anda harus mengatur ulang kata sandi pada saat pertama kali masuk.

$cred=Get-Credential

Set-AzVMAccessExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myVMAccess" `
    -Location "myVMregion" -UserName $cred.GetNetworkCredential().Username `
    -Password $cred.GetNetworkCredential().Password -typeHandlerVersion "2.0"

Anda dapat menggunakan perintah Set-AzVMExtension untuk memulai ekstensi VM apa pun.

portal Azure

Anda dapat menerapkan ekstensi VM ke VM yang ada melalui portal Microsoft Azure. Pilih VM di portal, pilih Ekstensi + Aplikasi, lalu pilih + Tambahkan. Pilih ekstensi yang Anda inginkan dari daftar ekstensi yang tersedia, dan ikuti instruksi dalam wizard.

Contoh berikut menunjukkan penginstalan ekstensi Microsoft Antimalware dari portal Microsoft Azure:

Cuplikan layar dialog untuk menginstal ekstensi Microsoft Antimalware.

Template Manajer Sumber Daya Azure

Anda dapat menambahkan ekstensi VM ke templat ARM dan menjalankannya dengan proses penyebaran templat. Saat Anda menyebarkan ekstensi dengan templat, Anda dapat membuat penyebaran Azure yang dikonfigurasi sepenuhnya.

Contoh JSON berikut berasal dari templat ARM yang menyebarkan sekumpulan VM seimbang beban dan database Azure SQL, lalu menginstal aplikasi .NET Core pada setiap VM. Ekstensi VM mengurus penginstalan perangkat lunak.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

Untuk informasi selengkapnya tentang membuat templat ARM, lihat Komputer virtual dalam templat ARM.

Membantu mengamankan data ekstensi VM

Saat Anda menjalankan ekstensi VM, mungkin perlu menyertakan informasi sensitif seperti kredensial, nama akun penyimpanan, dan kunci akses. Banyak ekstensi VM menyertakan konfigurasi terlindungi yang mengenkripsi data dan hanya mendekripsinya di dalam VM target. Setiap ekstensi memiliki skema konfigurasi tertentu yang dilindungi, dan setiap skema dirinci dalam dokumentasi khusus ekstensi.

Contoh JSON berikut menunjukkan instans Ekstensi Skrip Kustom untuk Windows. Perintah yang akan dijalankan menyertakan sekumpulan kredensial. Dalam contoh ini, perintah yang akan dijalankan tidak dienkripsi.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ],
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

commandToExecute Memindahkan properti ke protected konfigurasi membantu mengamankan string eksekusi, seperti yang ditunjukkan dalam contoh berikut:

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
    "[variables('musicstoresqlName')]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 -user ',parameters('adminUsername'),' -password ',parameters('adminPassword'),' -sqlserver ',variables('musicstoresqlName'),'.database.windows.net')]"
    }
    }
}

Pada infrastruktur sebagai layanan (IaaS) VM Azure yang menggunakan ekstensi, di konsol sertifikat, Anda mungkin melihat sertifikat yang memiliki subjek Windows Azure CRP Certificate Generator. Pada VM RedDog Front End (RDFE) klasik, sertifikat ini memiliki nama subjek Windows Azure Service Management for Extensions.

Sertifikat ini mengamankan komunikasi antara VM dan hostnya selama transfer pengaturan yang dilindungi (kata sandi dan kredensial lainnya) yang digunakan ekstensi. Pengontrol fabric Azure membangun sertifikat dan meneruskannya ke Azure VM Agent. Jika Anda menghentikan dan memulai VM setiap hari, pengendali fabric mungkin membuat sertifikat baru. Sertifikat disimpan di penyimpanan sertifikat pribadi komputer. Sertifikat ini dapat dihapus. Agen Azure VM membuat ulang sertifikat jika diperlukan.

Bagaimana agen dan ekstensi diperbarui

Agen dan ekstensi berbagi mekanisme pembaruan otomatis yang sama.

Saat pembaruan tersedia dan pembaruan otomatis diaktifkan, pembaruan diinstal pada VM hanya setelah ekstensi atau model VM lainnya berubah. Perubahan dapat mencakup:

  • Disk data
  • Extensions
  • Tag Ekstensi
  • Kontainer diagnostik untuk boot
  • Rahasia OS Tamu
  • Ukuran VM
  • Profil jaringan

Penerbit membuat pembaruan tersedia untuk wilayah di berbagai waktu. Ada kemungkinan Anda dapat memiliki VM di berbagai wilayah pada versi yang berbeda.

Nota

Beberapa pembaruan mungkin memerlukan aturan firewall tambahan. Untuk informasi selengkapnya, lihat Akses jaringan.

Mencantumkan ekstensi yang disebarkan ke VM

Anda dapat menggunakan perintah berikut untuk mencantumkan ekstensi yang disebarkan ke VM:

$vm = Get-AzVM -ResourceGroupName "<myResourceGroup>" -VMName "<myVM>"
$vm.Extensions | select Publisher, VirtualMachineExtensionType, TypeHandlerVersion

Perintah ini menghasilkan output yang mirip dengan contoh berikut:

Publisher             VirtualMachineExtensionType          TypeHandlerVersion
---------             ---------------------------          ------------------
Microsoft.Compute     CustomScriptExtension                1.9

Pembaruan agen

Agen Azure VM hanya berisi kode penanganan ekstensi. Kode provisi Windows terpisah. Anda dapat menghapus instalan Azure VM Agent. Anda tidak dapat menonaktifkan pembaruan otomatis Agen Azure VM.

Kode penanganan ekstensi bertanggung jawab atas tugas-tugas berikut:

  • Berkomunikasi dengan infrastruktur Azure.
  • Tangani operasi ekstensi VM, seperti penginstalan, status pelaporan, memperbarui ekstensi individual, dan menghapus ekstensi. Pembaruan berisi perbaikan keamanan, perbaikan bug, dan penyempurnaan pada kode penanganan ekstensi.

Untuk memeriksa versi apa yang Anda jalankan, lihat Mendeteksi Agen Azure VM.

Pembaruan ekstensi

Saat pembaruan ekstensi tersedia dan pembaruan otomatis diaktifkan, jika model VM berubah, Agen Azure VM mengunduh dan meningkatkan ekstensi.

Pembaruan ekstensi otomatis adalah kecil atau hotfix. Anda dapat ikut serta atau menolak pembaruan kecil saat menyediakan ekstensi. Contoh berikut menunjukkan cara meningkatkan versi minor secara otomatis dalam templat ARM dengan menggunakan "autoUpgradeMinorVersion": true, parameter :

    "properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.9",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1"
        ]
    },

Untuk mendapatkan perbaikan bug rilis minor terbaru, kami sangat menyarankan Agar Anda selalu memilih pembaruan otomatis dalam penyebaran ekstensi Anda. Anda tidak dapat menolak pembaruan darurat yang membawa perbaikan bug keamanan atau perbaikan bug kritis.

Jika Anda menonaktifkan pembaruan otomatis atau perlu meningkatkan versi utama, gunakan perintah Set-AzVMExtension dan tentukan versi target.

Periksa Versi Ekstensi

Nota

Model vs. Tampilan Instans

Di Azure, tampilan model menangkap konfigurasi yang Anda tentukan untuk ekstensi (penerbit, jenis, dan versi yang diminta), sementara tampilan instans menunjukkan status langsung dan versi handler aktual yang berjalan pada setiap VM atau instans set skala—gunakan tampilan instans sebagai sumber kebenaran saat memverifikasi apa yang benar-benar diinstal.

Periksa satu VM

Azure CLI

az vm get-instance-view -g <rg> -n <vm> \
  --query "extensions[].{name:name,type:type,version:typeHandlerVersion,status:statuses[0].displayStatus}" \
  -o table

Membaca tampilan instans VM untuk menunjukkan versi dan status handler yang benar-benar diinstal.

PowerShell

Get-AzVM -ResourceGroupName <rg> -Name <vmName> -Status |
  Select-Object -ExpandProperty Extensions

Periksa TypeHandlerVersion dan Statuses untuk setiap ekstensi untuk mengonfirmasi versi dan kesehatan yang sedang berjalan.

Periksa sekumpulan skala (Seragam atau Fleksibel)

Azure CLI

# Scale set summary (health)
az vmss get-instance-view -g <rg> -n <vmss>

# Per-instance extension versions
az vmss list-instances -g <rg> -n <vmss> --expand instanceView \
  --query "[].{instanceId:instanceId, extVers:instanceView.extensions[].typeHandlerVersion}"

# Specific instance
az vmss vm get-instance-view -g <rg> -n <vmss> --instance-id <id>

Gunakan tampilan instans di tingkat set skala atau per instans untuk memvalidasi versi handler aktual.

PowerShell

Get-AzVmssVM -ResourceGroupName <rg> -VMScaleSetName <vmss> -InstanceView

Mengembalikan status runtime per instans, termasuk versi dan status ekstensi.

Cara mengidentifikasi pembaruan ekstensi

Ada beberapa cara untuk mengidentifikasi pembaruan untuk ekstensi.

Identifikasi apakah ekstensi diatur dengan autoUpgradeMinorVersion pada VM

Anda dapat melihat model VM untuk menentukan apakah ekstensi disediakan dengan autoUpgradeMinorVersion parameter . Untuk memeriksa model VM, gunakan perintah Get-AzVm dan berikan grup sumber daya dan nama VM sebagai berikut:

 $vm = Get-AzVm -ResourceGroupName "myResourceGroup" -VMName "myVM"
 $vm.Extensions

Contoh output berikut menunjukkan autoUpgradeMinorVersion parameter diatur ke true:

ForceUpdateTag              :
Publisher                   : Microsoft.Compute
VirtualMachineExtensionType : CustomScriptExtension
TypeHandlerVersion          : 1.9
AutoUpgradeMinorVersion     : True

Identifikasi kapan peristiwa autoUpgradeMinorVersion terjadi

Untuk melihat kapan pembaruan pada ekstensi terjadi, Anda dapat meninjau log agen pada VM di C:\WindowsAzure\Logs\WaAppAgent.log.

Contoh berikut menunjukkan VM dengan Microsoft.Compute.CustomScriptExtension versi terinstal 1.8 , dan perbaikan tersedia untuk versi 1.9.

[INFO]  Getting plugin locations for plugin 'Microsoft.Compute.CustomScriptExtension'. Current Version: '1.8', Requested Version: '1.9'
[INFO]  Auto-Upgrade mode. Highest public version for plugin 'Microsoft.Compute.CustomScriptExtension' with requested version: '1.9', is: '1.9'

Izin agen

Untuk melakukan tugasnya, Azure VM Agent perlu berjalan sebagai Sistem Lokal.

Memecahkan masalah ekstensi VM

Setiap ekstensi VM mungkin memiliki langkah-langkah pemecahan masalah tertentu. Misalnya, saat Menggunakan Ekstensi Skrip Kustom, Anda dapat menemukan detail eksekusi skrip secara lokal pada VM tempat ekstensi dijalankan.

Tindakan pemecahan masalah berikut berlaku untuk semua ekstensi VM:

  • Untuk memeriksa Log Agen Azure VM, lihat aktivitas saat ekstensi Anda diprovisikan di C:\WindowsAzure\Logs\WaAppAgent.log.

  • Periksa log ekstensi untuk detail selengkapnya di C:\WindowsAzure\Logs\Plugins<extensionName>.

  • Periksa bagian pemecahan masalah dalam dokumentasi khusus ekstensi untuk kode kesalahan, masalah yang diketahui, dan informasi khusus ekstensi lainnya.

  • Lihatlah log sistem. Periksa operasi lain yang mungkin telah mengganggu ekstensi, seperti penginstalan aplikasi lain yang berjalan lama yang memerlukan akses eksklusif ke manajer paket.

  • Dalam VM, jika ada ekstensi yang ada dengan status provisi yang gagal, ekstensi baru lainnya gagal diinstal.

Alasan umum kegagalan ekstensi

Berikut adalah beberapa alasan umum ekstensi dapat gagal:

  • Ekstensi memiliki waktu 20 menit untuk dijalankan. (Pengecualian adalah Skrip Kustom, Chef, dan DSC, yang memiliki waktu 90 menit.) Jika penyebaran Anda melebihi waktu ini, akan ditandai sebagai kedaluwarsa. Penyebab masalah ini dapat berupa VM sumber daya rendah, atau konfigurasi VM atau tugas startup lainnya mengonsumsi sumber daya dalam jumlah besar saat ekstensi mencoba menyediakan.

  • Prasyarat minimum tidak terpenuhi. Beberapa ekstensi memiliki dependensi pada SKU VM, seperti gambar HPC. Ekstensi mungkin memiliki persyaratan akses jaringan tertentu, seperti berkomunikasi dengan Azure Storage atau layanan publik. Contoh lain mungkin akses ke repositori paket, kehabisan ruang disk, atau pembatasan keamanan.

  • Akses manajer paket bersifat eksklusif. Dalam beberapa kasus, konfigurasi VM dan penginstalan ekstensi yang berjalan lama mungkin bertentangan karena keduanya membutuhkan akses eksklusif ke manajer paket.

Lihat status ekstensi

Setelah ekstensi VM dijalankan terhadap VM, gunakan perintah Get-AzVM untuk mengembalikan status ekstensi. Hasil Substatuses[0] menunjukkan bahwa penyediaan ekstensi berhasil, yang berarti berhasil diterapkan ke VM. Jika Anda melihat hasilnya Substatuses[1] , maka eksekusi ekstensi di dalam VM gagal.

Get-AzVM -ResourceGroupName "myResourceGroup" -VMName "myVM" -Status

Outputnya mirip dengan contoh berikut:

Extensions[0]           :
  Name                  : CustomScriptExtension
  Type                  : Microsoft.Compute.CustomScriptExtension
  TypeHandlerVersion    : 1.9
  Substatuses[0]        :
    Code                : ComponentStatus/StdOut/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : Windows PowerShell \nCopyright (C) Microsoft Corporation. All rights reserved.\n
  Substatuses[1]        :
    Code                : ComponentStatus/StdErr/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : The argument 'cseTest%20Scriptparam1.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the

-File parameter.
  Statuses[0]           :
    Code                : ProvisioningState/failed/-196608
    Level               : Error
    DisplayStatus       : Provisioning failed
    Message             : Finished executing command

Anda juga dapat menemukan status eksekusi ekstensi di portal Microsoft Azure. Pilih VM, pilih Ekstensi, lalu pilih ekstensi yang diinginkan.

Menjalankan ulang ekstensi VM

Dalam kasus tertentu, Anda mungkin perlu menjalankan ulang ekstensi VM. Anda dapat menjalankan ulang ekstensi dengan menghapus ekstensi, lalu menjalankan ulang ekstensi dengan metode eksekusi pilihan Anda. Untuk menghapus ekstensi, gunakan perintah Remove-AzVMExtension sebagai berikut:

Remove-AzVMExtension -ResourceGroupName "myResourceGroup" -VMName "myVM" -Name "myExtensionName"

Anda juga dapat menghapus ekstensi di portal Microsoft Azure. Pilih VM, pilih Ekstensi, lalu pilih ekstensi yang diinginkan. Pilih Hapus instalan.

Referensi ekstensi VM umum

Tabel berikut ini menyediakan beberapa referensi umum untuk ekstensi VM.

Nama ekstensi Description
Ekstensi Skrip Kustom untuk Windows Jalankan skrip terhadap komputer virtual Azure.
Ekstensi Azure Diagnostics Mengelola Diagnostik Azure.
Ekstensi VMAccess Mengelola pengguna dan kredensial.

Langkah selanjutnya

Untuk informasi selengkapnya tentang ekstensi Mesin Virtual, lihat Ekstensi dan fitur mesin virtual Azure.