Cara mengelola pembaruan secara terprogram untuk server yang didukung Azure Arc

Artikel ini memandu Anda melalui proses menggunakan Azure REST API untuk memicu penilaian dan mengelola penggelaran pembaruan di server yang diaktifkan Azure Arc Anda dengan menggunakan Azure Update Manager di Azure. Jika Anda baru menggunakan Azure Update Manager dan ingin mempelajari selengkapnya, lihat gambaran umum Update Manager. Untuk menggunakan Azure REST API untuk mengelola komputer virtual Azure, lihat Cara bekerja secara terprogram dengan komputer virtual 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 server dengan dukungan Azure Arc tersedia melalui ekstensi komputer virtual Update Manager.

Pembaruan Penilaian

Untuk memicu penilaian pembaruan di server berkemampuan Azure Arc Anda, tentukan permintaan POST berikut:

Untuk menentukan permintaan POST, Anda dapat menggunakan perintah Azure CLI az rest .

az rest --method post --url https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview --body @body.json

Memperbarui penerapan

Untuk memicu penyebaran pembaruan ke server berkemampuan Azure Arc Anda, tentukan permintaan POST berikut:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`

Isi permintaan

Tabel berikut ini menjelaskan elemen isi permintaan:

Properti Deskripsi
maximumDuration Jumlah waktu maksimum dalam menit yang dapat diambil oleh operasi pembaruan OS. Ini harus berupa string durasi yang mematuhi ISO 8601 seperti PT100M.
rebootSetting Bendera untuk menyatakan apakah Anda harus me-reboot komputer, menunjukkan apakah Azure Update Manager (AUM) harus me-reboot komputer sebagai bagian dari pekerjaan pembaruan. Nilai yang dapat diterima adalah: IfRequired, NeverReboot, AlwaysReboot.
windowsParameters Opsi parameter untuk pembaruan OS Tamu pada komputer yang menjalankan sistem operasi Microsoft Windows Server yang didukung.
windowsParameters - classificationsToInclude Daftar kategori atau klasifikasi pembaruan OS yang akan diterapkan, seperti yang didukung dan disediakan oleh OS Windows Server. Nilai yang dapat diterima adalah: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update
windowsParameters - kbNumbersToInclude Daftar ID KB Windows Update yang tersedia untuk mesin dan yang perlu Anda instal. Jika Anda telah menyertakan 'classificationsToInclude', KB yang tersedia dalam kategori akan diinstal. 'kbNumbersToInclude' adalah opsi untuk memberikan daftar ID KB spesifik tambahan yang ingin Anda instal. Misalnya: 1234
windowsParameters - kbNumbersToExclude Daftar ID KB Windows Update yang tersedia untuk mesin dan yang seharusnya tidak diinstal. Jika Anda menyertakan 'classificationsToInclude', maka KB yang tersedia dalam kategori tersebut akan diinstal. 'kbNumbersToExclude' adalah opsi untuk menyediakan daftar ID KB tertentu yang ingin Anda pastikan tidak diinstal. Misalnya: 5678
maxPatchPublishDate Ini digunakan untuk menginstal patch yang diterbitkan pada atau sebelum tanggal publikasi maks yang diberikan ini.
linuxParameters Opsi parameter untuk pembaruan OS Tamu saat mesin menjalankan distribusi Linux yang didukung
linuxParameters - classificationsToInclude Daftar kategori atau klasifikasi pembaruan OS yang akan diterapkan, seperti yang didukung & disediakan oleh manajer paket OS Linux yang digunakan. Nilai yang dapat diterima adalah: Critical, Security, Others. Untuk informasi selengkapnya, lihat Manajer paket Linux dan dukungan OS.
linuxParameters - packageNameMasksToInclude Daftar paket Linux yang tersedia untuk komputer dan perlu diinstal. Jika Anda telah menyertakan 'klasifikasiUntukDisertakan', maka paket yang tersedia dalam kategori tersebut akan diinstal. 'packageNameMasksToInclude' adalah opsi untuk menyediakan daftar paket tambahan yang ingin Anda instal. Misalnya: mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Daftar paket Linux yang tersedia untuk komputer dan sebaiknya tidak diinstal. Jika Anda telah menyertakan 'klasifikasiUntukDisertakan', maka paket yang tersedia dalam kategori tersebut akan diinstal. 'packageNameMasksToExclude' adalah opsi untuk menyediakan daftar paket tertentu yang ingin Anda pastikan tidak diinstal. Misalnya: mysql, libc=1.0.1.1, kernel*

Untuk menentukan permintaan POST, Anda dapat menggunakan perintah Azure CLI az rest .

az rest --method post --url https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/Test/providers/Microsoft.HybridCompute/machines/WIN-8/installPatches?api-version=2020-08-15-preview @body.json

Format isi permintaan untuk versi 2020-08-15 adalah sebagai berikut:

{
        "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 Mengambil atau menetapkan extensionProperties dari maintenanceConfiguration
properties.maintenanceScope Mendapatkan atau menetapkan lingkup pemeliharaan konfigurasi
properties.maintenanceWindow.duration Durasi jendela pemeliharaan dalam format HH:mm. Jika tidak disediakan, nilai default akan 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. Anda harus mengatur tanggal kedaluwarsa ke tanggal yang akan datang. Jika tidak disediakan, akan disetel ke tanggal waktu 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. Anda dapat memformat jadwal harian 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(s)'] [Daftar hari Senin-Minggu yang terpisah koma opsional]. Contoh jadwal mingguan adalah recurEvery: 3Weeks, recurEvery: Week Saturday, Sunday. Anda dapat memformat jadwal bulanan 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)] [Hari dalam Seminggu (Senin-Minggu)]. Contoh jadwal bulanan adalah recurEvery: Bulan, recurEvery: 2Bulan, recurEvery: Bulanan hari ke-23, hari ke-24, recurEvery: Bulanan Minggu terakhir, recurEvery: Bulanan Senin keempat.
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. Anda dapat memperoleh daftar zona waktu 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
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"

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

Menghapus komputer dari jadwal

Untuk menghapus komputer dari jadwal, dapatkan semua nama penetapan konfigurasi untuk komputer yang telah Anda buat untuk mengaitkan komputer dengan jadwal saat ini dari Azure Resource Graph seperti yang tercantum:

az maintenance configuration delete \
   --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"

Langkah berikutnya