Mengontrol pembaruan dengan Konfigurasi Pemeliharaan dan Azure CLI

Berlaku untuk: ✔️ Mesin virtual Linux ✔️ Mesin virtual Windows ✔️ Set skala fleksibel ✔️ Set skala seragam

Anda dapat menggunakan fitur Konfigurasi Pemeliharaan untuk mengontrol kapan harus menerapkan pembaruan platform ke berbagai sumber daya Azure. Artikel ini membahas opsi Azure CLI untuk menggunakan fitur ini. Untuk informasi selengkapnya tentang manfaat menggunakan Konfigurasi Pemeliharaan, batasannya, dan opsi manajemen lainnya, lihat Mengelola pembaruan platform dengan Konfigurasi Pemeliharaan.

Penting

Cakupan tertentu mendukung jenis dan jadwal komputer tertentu. Pastikan untuk memilih cakupan yang tepat untuk komputer virtual (VM) Anda.

Buat konfigurasi pemeliharaan

Langkah pertama dalam membuat konfigurasi pemeliharaan adalah membuat grup sumber daya sebagai kontainer untuk konfigurasi Anda. Contoh ini membuat grup sumber daya bernama myMaintenanceRG di eastus. Jika sudah memiliki grup sumber daya yang ingin digunakan, Anda dapat melewati bagian ini dan mengganti nama grup sumber daya dengan milik Anda di contoh lainnya.

az group create \
   --location eastus \
   --name myMaintenanceRG

Setelah Anda membuat grup sumber daya, gunakan az maintenance configuration create untuk membuat konfigurasi pemeliharaan.

Host

Contoh ini membuat konfigurasi pemeliharaan bernama myConfig yang dilingkup ke komputer host, dengan jendela terjadwal 5 jam pada hari Senin keempat setiap bulan:

az maintenance configuration create \
   --resource-group myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope host \
   --location eastus \
   --maintenance-window-duration "05:00" \
   --maintenance-window-recur-every "Month Fourth Monday" \
   --maintenance-window-start-date-time "2020-12-30 08:00" \
   --maintenance-window-time-zone "Pacific Standard Time" 

Menggunakan --maintenance-scope host memastikan bahwa konfigurasi pemeliharaan digunakan untuk mengontrol pembaruan pada infrastruktur host. Jika Anda mencoba membuat konfigurasi dengan nama yang sama tetapi di lokasi yang berbeda, Anda akan mendapatkan kesalahan. Nama konfigurasi harus unik untuk grup sumber daya Anda.

Untuk memeriksa apakah Anda berhasil membuat konfigurasi pemeliharaan, Anda dapat mengkueri konfigurasi pemeliharaan yang tersedia dengan menggunakan az maintenance configuration list:

az maintenance configuration list 
   --query "[].{Name:name, ID:id}" 
   --output table 

Anda dapat mengekspresikan pengulangan pemeliharaan sebagai harian, mingguan, atau bulanan. Berikut adalah beberapa contoh:

  • Harian: Nilai maintenance-window-recur-every"Day" atau "3Days".
  • Mingguan"3Weeks": Nilai maintenance-window-recur-every atau "Week Saturday,Sunday".
  • Bulanan: Nilai maintenance-window-recur-every"Month day23,day24" atau "Month Last Sunday" atau Month Fourth Monday.

Kumpulan skala komputer virtual

Contoh ini membuat konfigurasi pemeliharaan bernama myConfig dengan cakupan gambar OS untuk set skala komputer virtual, dengan jendela terjadwal 5 jam pada hari Senin keempat setiap bulan:

az maintenance configuration create \
   --resource-group myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope osimage \
   --location eastus \
   --maintenance-window-duration "05:00" \
   --maintenance-window-recur-every "Month Fourth Monday" \
   --maintenance-window-start-date-time "2020-12-30 08:00" \
   --maintenance-window-time-zone "Pacific Standard Time" 

VM Tamu

Contoh ini membuat konfigurasi pemeliharaan bernama myConfig yang dicakup ke komputer tamu (VM dan server dengan dukungan Azure Arc), dengan jendela terjadwal 2 jam setiap 20 hari. Pelajari selengkapnya tentang konfigurasi pemeliharaan pada VM tamu.

az maintenance configuration create \
   --resource-group myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope InGuestPatch \
   --location eastus \
   --maintenance-window-duration "02:00" \
   --maintenance-window-recur-every "20days" \
   --maintenance-window-start-date-time "2022-12-30 07:00" \
   --maintenance-window-time-zone "Pacific Standard Time" \
   --install-patches-linux-parameters package-name-masks-to-exclude="ppt" package-name-masks-to-include="apt" classifications-to-include="Other" \
   --install-patches-windows-parameters kb-numbers-to-exclude="KB123456" kb-numbers-to-include="KB123456" classifications-to-include="FeaturePack" \
   --reboot-setting "IfRequired" \
   --extension-properties InGuestPatchMode="User"

Menetapkan konfigurasi

Gunakan az maintenance assignment create untuk menetapkan konfigurasi ke komputer Anda.

Komputer virtual terisolasi

Terapkan konfigurasi ke VM host terisolasi dengan menggunakan ID konfigurasi. Tentukan --resource-type virtualMachines. Berikan nama VM untuk --resource-name, grup sumber daya VM untuk --resource-group, dan lokasi VM untuk --location.

az maintenance assignment create \
   --resource-group myMaintenanceRG \
   --location eastus \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"

Host khusus

Untuk menerapkan konfigurasi ke host khusus, Anda perlu menyertakan --resource-type hosts, --resource-parent-name dengan nama grup host, dan --resource-parent-type hostGroups.

Parameter --resource-id adalah ID dari host. Anda dapat menggunakan az-vm-host-get-instance-view untuk mendapatkan ID host khusus.

az maintenance assignment create \
   --resource-group myDHResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
   --location eastus \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups 

Kumpulan skala komputer virtual

az maintenance assignment create \
   --resource-group myMaintenanceRG \
   --location eastus \
   --resource-name myVMSS \
   --resource-type virtualMachineScaleSets \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"

VM Tamu

az maintenance assignment create \
   --resource-group myMaintenanceRG \
   --location eastus \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"

Periksa konfigurasi

Anda dapat memverifikasi bahwa konfigurasi diterapkan dengan benar, atau memeriksa untuk melihat konfigurasi apa yang saat ini diterapkan, dengan menggunakan az maintenance assignment list.

Komputer virtual terisolasi

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

Host khusus

az maintenance assignment list \
   --resource-group myDHResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups \
   --query "[].{ResourceGroup:resourceGroup,configName:name}" \
   --output table

Kumpulan skala komputer virtual

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVMSS \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

VM Tamu

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

Memeriksa pembaruan yang tertunda

Gunakan az maintenance update list untuk melihat apakah ada pembaruan yang tertunda. Pembaruan --subscription menjadi ID untuk langganan yang berisi VM.

Jika tidak ada pembaruan, perintah mengembalikan pesan kesalahan yang berisi teks Resource not found...StatusCode: 404.

Jika ada pembaruan, perintah hanya mengembalikan satu, bahkan jika beberapa pembaruan tertunda. Data untuk pembaruan ini dikembalikan dalam objek:

[
  {
    "impactDurationInSec": 9,
    "impactType": "Freeze",
    "maintenanceScope": "Host",
    "notBefore": "2020-03-03T07:23:04.905538+00:00",
    "resourceId": "/subscriptions/9120c5ff-e78e-4bd0-b29f-75c19cadd078/resourcegroups/DemoRG/providers/Microsoft.Compute/hostGroups/demoHostGroup/hosts/myHost",
    "status": "Pending"
  }
]

Komputer virtual terisolasi

Periksa pembaruan tertunda untuk VM yang terisolasi. Dalam contoh ini, output diformat sebagai tabel untuk keterbacaan:

az maintenance update list \
   --subscription {subscription ID} \
   --resourcegroup myMaintenanceRg \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --output table

Host khusus

Periksa pembaruan yang tertunda untuk host khusus. Dalam contoh ini, output diformat sebagai tabel untuk keterbacaan. Ganti nilai untuk sumber daya dengan nilai Anda sendiri.

az maintenance update list \
   --subscription {subscription ID} \
   --resourcegroup myHostResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parentname myHostGroup \
   --resource-parent-type hostGroups \
   --output table

Terapkan pemutakhiran

Gunakan az maintenance apply update untuk menerapkan pembaruan yang tertunda. Setelah berhasil, perintah ini mengembalikan JSON yang berisi detail pembaruan. Panggilan untuk menerapkan pembaruan dapat memakan waktu hingga 2 jam untuk diselesaikan.

Komputer virtual terisolasi

Buat permintaan untuk menerapkan pembaruan ke VM terisolasi:

az maintenance applyupdate create \
   --subscription {subscriptionID} \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute

Host khusus

Terapkan pembaruan ke host khusus:

az maintenance applyupdate create \
   --subscription {subscriptionID} \
   --resource-group myHostResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups

Kumpulan skala komputer virtual

Terapkan pembaruan ke set skala:

az maintenance applyupdate create \
   --subscription {subscriptionID} \
   --resource-group myMaintenanceRG \
   --resource-name myVMSS \
   --resource-type virtualMachineScaleSets \
   --provider-name Microsoft.Compute

Memeriksa status penerapan pembaruan

Anda dapat memeriksa kemajuan pembaruan dengan menggunakan az maintenance applyupdate get.

Untuk melihat hasil pembaruan terakhir, gunakan default sebagai nama pembaruan. Atau ganti myUpdateName dengan nama pembaruan yang dikembalikan saat Anda menjalankan az maintenance applyupdate create.

Status         : Completed
ResourceId     : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso
LastUpdateTime : 1/1/2020 12:00:00 AM
Id             : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso/providers/Microsoft.Maintenance/applyUpdates/default
Name           : default
Type           : Microsoft.Maintenance/applyUpdates

LastUpdateTime adalah waktu ketika pembaruan selesai, apakah Anda memulai pembaruan atau platform memulainya karena Anda tidak menggunakan jendela pemeliharaan mandiri. Jika pembaruan tidak pernah diterapkan melalui Konfigurasi Pemeliharaan, LastUpdateTime menunjukkan nilai default.

Komputer virtual terisolasi

az maintenance applyupdate get \
   --subscription {subscriptionID} \ 
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Host khusus

az maintenance applyupdate get \
   --subscription {subscriptionID} \ 
   --resource-group myMaintenanceRG \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \ 
   --resource-parent-type hostGroups \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Kumpulan skala komputer virtual

az maintenance applyupdate get \
   --subscription {subscriptionID} \ 
   --resource-group myMaintenanceRG \
   --resource-name myVMSS \
   --resource-type virtualMachineScaleSets \
   --provider-name Microsoft.Compute \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Menghapus konfigurasi pemeliharaan

Untuk menghapus konfigurasi pemeliharaan, gunakan az maintenance configuration delete. Menghapus konfigurasi akan menghapus kontrol pemeliharaan dari sumber daya terkait.

az maintenance configuration delete \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
   -resource-group myResourceGroup \
   --resource-name myConfig

Langkah berikutnya

Untuk mempelajari selengkapnya, lihat Pemeliharaan untuk komputer virtual di Azure.