Cara mengelola pembaruan untuk Azure VM secara terprogram
Artikel ini memandikan Anda melalui proses penggunaan Azure REST API untuk memicu penilaian dan penyebaran pembaruan di komputer virtual Azure Anda dengan Azure Update Manager di Azure. Jika Anda baru menggunakan Update Manager dan ingin mempelajari selengkapnya, lihat gambaran umum Azure Update Manager. Untuk menggunakan Azure REST API untuk mengelola server yang didukung Arc, lihat Cara bekerja secara terprogram dengan server yang diaktifkan Arc.
Azure Update Manager di Azure memungkinkan Anda menggunakan Azure REST API untuk akses secara terprogram. Selain itu, Anda dapat menggunakan perintah REST yang sesuai dari Azure PowerShell dan Azure CLI.
Dukungan untuk Azure REST API untuk mengelola Azure VM tersedia melalui ekstensi komputer virtual Update Manager.
Penilaian Pembaruan
Untuk memicu penilaian pembaruan di Azure VM Anda, tentukan permintaan POST berikut:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/assessPatches?api-version=2020-12-01`
Untuk menentukan permintaan POST, Anda dapat menggunakan perintah Azure CLI az vm assess-patchs .
az vm assess-patches -g MyResourceGroup -n MyVm
Memperbarui penyebaran
Untuk memicu penyebaran pembaruan ke Azure VM Anda, tentukan permintaan POST berikut:
POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/virtualMachineName/installPatches?api-version=2020-12-01`
Isi permintaan
Tabel berikut ini menjelaskan elemen isi permintaan:
Properti | Deskripsi |
---|---|
maximumDuration |
Jumlah waktu maksimum operasi berjalan. Ini harus berupa string durasi yang mematuhi ISO 8601 seperti PT4H (4 jam). |
rebootSetting |
Bendera untuk menyatakan apakah komputer harus di-boot ulang dan jika penginstalan pembaruan OS Tamu memerlukannya untuk penyelesaian. Nilai yang dapat diterima adalah: IfRequired, NeverReboot, AlwaysReboot . |
windowsParameters |
Opsi parameter untuk pembaruan OS Tamu pada Azure VM yang menjalankan sistem operasi Microsoft Windows Server yang didukung. |
windowsParameters - classificationsToInclude |
Daftar kategori/klasifikasi yang akan digunakan untuk memilih pembaruan yang akan diinstal pada komputer. Nilai yang dapat diterima adalah: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Updates |
windowsParameters - kbNumbersToInclude |
Daftar Id KB Windows Update yang harus diinstal. Semua pembaruan milik klasifikasi yang disediakan dalam classificationsToInclude daftar akan diinstal. kbNumbersToInclude adalah daftar opsional KB tertentu yang akan diinstal selain klasifikasi. Misalnya: 1234 |
windowsParameters - kbNumbersToExclude |
Daftar Id KB Windows Update yang seharusnya tidak diinstal. Parameter ini mengambil alih windowsParameters - classificationsToInclude , yang berarti ID KB Pembaruan Windows yang ditentukan di sini tidak akan diinstal meskipun termasuk dalam klasifikasi yang disediakan di bawah classificationsToInclude parameter. |
maxPatchPublishDate |
Ini digunakan untuk menginstal patch yang diterbitkan pada atau sebelum tanggal publikasi maks yang diberikan ini. |
linuxParameters |
Opsi parameter untuk pembaruan OS Tamu pada Azure VM yang menjalankan sistem operasi server Linux yang didukung. |
linuxParameters - classificationsToInclude |
Daftar kategori/klasifikasi yang akan digunakan untuk memilih pembaruan yang akan diinstal pada komputer. Nilai yang dapat diterima adalah: Critical, Security, Other |
linuxParameters - packageNameMasksToInclude |
Daftar paket Linux yang harus diinstal. Semua pembaruan milik klasifikasi yang disediakan dalam classificationsToInclude daftar akan diinstal. packageNameMasksToInclude adalah daftar opsional nama paket yang akan diinstal selain klasifikasi. Misalnya: mysql, libc=1.0.1.1, kernel* |
linuxParameters - packageNameMasksToExclude |
Daftar pembaruan yang seharusnya tidak diinstal. Parameter ini mengambil alih linuxParameters - packageNameMasksToExclude , yang berarti paket yang ditentukan di sini tidak akan diinstal meskipun termasuk dalam klasifikasi yang disediakan di bawah classificationsToInclude parameter. |
Untuk menentukan permintaan POST, Anda dapat menggunakan panggilan Azure REST API berikut dengan parameter dan nilai yang valid.
POST on 'subscriptions/{subscriptionId}/resourceGroups/acmedemo/providers/Microsoft.Compute/virtualMachines/ameacr/installPatches?api-version=2020-12-01
{
"maximumDuration": "PT120M",
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"UpdateRollup",
"FeaturePack",
"ServicePack"
],
"kbNumbersToInclude": [
"11111111111",
"22222222222222"
],
"kbNumbersToExclude": [
"333333333333",
"55555555555"
]
}
}'
Membuat jadwal konfigurasi pemeliharaan
Untuk membuat jadwal konfigurasi pemeliharaan, tentukan permintaan PUT berikut:
PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`
Isi permintaan
Tabel berikut ini menjelaskan elemen isi permintaan:
Properti | Deskripsi |
---|---|
id |
Pengidentifikasi sumber daya yang sepenuhnya memenuhi syarat |
location |
Mendapatkan atau mengatur lokasi sumber daya |
name |
Nama sumber daya |
properties.extensionProperties |
Mendapatkan atau mengatur extensionProperties dari maintenanceConfiguration |
properties.maintenanceScope |
Mendapatkan atau mengatur maintenanceScope konfigurasi |
properties.maintenanceWindow.duration |
Durasi jendela pemeliharaan dalam format HH:MM. Jika tidak disediakan, nilai default digunakan berdasarkan cakupan pemeliharaan yang disediakan. Contoh: 05:00. |
properties.maintenanceWindow.expirationDateTime |
Tanggal kedaluwarsa efektif jendela pemeliharaan dalam format YYYY-MM-DD hh:mm. Jendela dibuat di zona waktu yang disediakan untuk penghematan siang hari sesuai dengan zona waktu tersebut. Tanggal kedaluwarsa harus diatur ke tanggal mendatang. Jika tidak disediakan, ini diatur ke tanggalwaktu maksimum 9999-12-31 23:59:59. |
properties.maintenanceWindow.recurEvery |
Laju di mana jendela pemeliharaan diharapkan berulang. Tarif dapat dinyatakan sebagai jadwal harian, mingguan, atau bulanan. Jadwal harian diformat sebagai recurEvery: [Frekuensi sebagai bilangan bulat]['Hari']. Jika tidak ada frekuensi yang disediakan, frekuensi defaultnya adalah 1. Contoh jadwal harian adalah recurEvery: Day, recurEvery: 3Days. Jadwal mingguan diformat sebagai recurEvery: [Frekuensi sebagai bilangan bulat]['Minggu'] [Daftar terpisah koma opsional hari kerja Senin-Minggu]. Contoh jadwal mingguan adalah recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Jadwal bulanan diformat sebagai [Frekuensi sebagai bilangan bulat]['Bulan'] [Daftar hari bulan yang dipisahkan koma] atau [Frekuensi sebagai bilangan bulat]['Bulan'] [Minggu Dalam Bulan (Pertama, Kedua, Ketiga, Keempat, Terakhir)] [Mingguan Senin-Minggu]. Contoh jadwal bulanan adalah recurEvery: Month, recurEvery: 2Months, recurEvery: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday. |
properties.maintenanceWindow.startDateTime |
Tanggal mulai efektif jendela pemeliharaan dalam format YYYY-MM-DD hh:mm. Anda dapat mengatur tanggal mulai ke tanggal saat ini atau tanggal mendatang. Jendela akan dibuat di zona waktu yang disediakan dan disesuaikan dengan penghematan siang hari sesuai dengan zona waktu tersebut. |
properties.maintenanceWindow.timeZone |
Nama zona waktu. Daftar zona waktu dapat diperoleh dengan mengeksekusi [System.TimeZoneInfo]:GetSystemTimeZones() di PowerShell. Contoh: Waktu Standar Pasifik, UTC, W. Waktu Standar Eropa, Waktu Standar Korea, Cen. Waktu Standar Australia. |
properties.namespace |
Mendapatkan atau mengatur namespace sumber daya |
properties.visibility |
Mendapatkan atau mengatur visibilitas konfigurasi. Nilai defaultnya adalah 'Kustom' |
systemData |
Metadata Azure Resource Manager yang berisi informasi createBy dan modifiedBy. |
tags |
Mendapatkan atau mengatur tag sumber daya |
type |
Jenis sumber daya |
Untuk menentukan permintaan POST, Anda dapat menggunakan panggilan Azure REST API berikut dengan parameter dan nilai yang valid.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview
{
"location": "eastus2euap",
"properties": {
"namespace": null,
"extensionProperties": {
"InGuestPatchMode" : "User"
},
"maintenanceScope": "InGuestPatch",
"maintenanceWindow": {
"startDateTime": "2021-08-21 01:18",
"expirationDateTime": "2221-05-19 03:30",
"duration": "01:30",
"timeZone": "India Standard Time",
"recurEvery": "Day"
},
"visibility": "Custom",
"installPatches": {
"rebootSetting": "IfRequired",
"windowsParameters": {
"classificationsToInclude": [
"Security",
"Critical",
"UpdateRollup"
]
},
"linuxParameters": {
"classificationsToInclude": [
"Other"
]
}
}
}
}'
Mengaitkan VM dengan jadwal
Untuk mengaitkan VM dengan jadwal konfigurasi pemeliharaan, tentukan permintaan PUT berikut:
PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Untuk menentukan permintaan PUT, Anda dapat menggunakan panggilan Azure REST API berikut dengan parameter dan nilai yang valid.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview
{
"properties": {
"maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
},
"location": "eastus2euap"
}'
Menghapus komputer dari jadwal
Untuk menghapus komputer dari jadwal, dapatkan semua nama penetapan konfigurasi untuk komputer yang dibuat untuk mengaitkan komputer dengan jadwal saat ini dari Azure Resource Graph seperti yang tercantum:
maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id
Setelah Anda mendapatkan nama dari atas, hapus penetapan konfigurasi dengan mengikuti permintaan DELETE -
DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
Langkah berikutnya
- Untuk melihat penilaian pembaruan dan log penyebaran yang dihasilkan oleh Update Manager, lihat log kueri.
- Untuk memecahkan masalah, lihat Memecahkan Masalah Manajer Pembaruan.