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/0f55bb56-6089-4c7e-9306-41fb78fc5844/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/0f55bb56-6089-4c7e-9306-41fb78fc5844/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview

{
  "properties": {
    "maintenanceConfigurationId": "/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/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.