Bagikan melalui


Mengontrol pembaruan dengan Konfigurasi Pemiliharaan dan Azure PowerShell

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 PowerShell untuk host khusus dan komputer virtual (VM) terisolasi. Untuk informasi selengkapnya tentang manfaat menggunakan fitur Konfigurasi Pemeliharaan, batasannya, dan opsi manajemen lainnya, lihat Mengelola pembaruan platform dengan Konfigurasi Pemeliharaan.

Jika Anda mencari informasi tentang menggunakan Konfigurasi Pemeliharaan untuk set skala, lihat Kontrol pemeliharaan untuk Azure Virtual Machine Scale Sets.

Penting

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

Mengaktifkan modul Azure PowerShell

Pastikan bahwa PowerShellGet sudah diperbarui:

Install-Module -Name PowerShellGet -Repository PSGallery -Force

Az.Maintenance Instal modul Azure PowerShell:

Install-Module -Name Az.Maintenance

Periksa apakah Anda menjalankan versi Az.Maintenance terbaru (versi 1.2.0):

Get-Module -ListAvailable -Name Az.Maintenance

Pastikan Anda menjalankan versi yang sesuai dari Az.Maintenance:

Import-Module -Name Az.Maintenance -RequiredVersion 1.2.0

Jika Anda menginstal secara lokal, pastikan untuk membuka perintah Azure PowerShell Anda sebagai administrator.

Anda mungkin diminta untuk mengonfirmasi bahwa Anda ingin menginstal dari repositori yang tidak tepercaya. Masukkan Y atau pilih Ya untuk Semua untuk menginstal modul.

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.

New-AzResourceGroup `
   -Location eastus `
   -Name myMaintenanceRG

Anda dapat mendeklarasikan jendela terjadwal saat Azure akan menerapkan pembaruan secara berulang pada sumber daya Anda. Setelah membuat jendela terjadwal, Anda tidak perlu lagi menerapkan pembaruan secara manual.

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

  • Harian: Nilai RecurEvery "Day" atau "3Days".
  • Mingguan"3Weeks": Nilai RecurEvery atau "Week Saturday,Sunday".
  • Bulanan: Nilai RecurEvery "Month day23,day24" atau "Month Last Sunday" atau "Month Fourth Monday".

Host

Contoh ini membuat konfigurasi pemeliharaan bernama myConfig yang dilingkup ke Host, dengan jendela terjadwal 5 jam pada hari Senin keempat setiap bulan. Nilai duration jadwal untuk cakupan ini harus setidaknya dua jam. Untuk memulai, tentukan parameter untuk New-AzMaintenanceConfiguration:

$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "Host"
$location = "eastus"
$timeZone = "Pacific Standard Time" 
$duration = "05:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "Month Fourth Monday"

Setelah menentukan parameter, Anda dapat menggunakan New-AzMaintenanceConfiguration cmdlet untuk membuat konfigurasi:

New-AzMaintenanceConfiguration
   -ResourceGroup $RGName `
   -Name $configName `
   -MaintenanceScope $scope `
   -Location $location `
   -StartDateTime $startDateTime `
   -TimeZone $timeZone `
   -Duration $duration `
   -RecurEvery $recurEvery

Menggunakan $scope = "Host" memastikan bahwa konfigurasi pemeliharaan digunakan untuk mengontrol pembaruan pada komputer host. Pastikan untuk membuat konfigurasi untuk cakupan tertentu dari komputer yang Anda targetkan. Pelajari selengkapnya tentang cakupan.

Gambar OS

Contoh ini membuat konfigurasi pemeliharaan bernama myConfig yang dilingkup ke osimage, dengan jendela terjadwal 8 jam setiap 5 hari. Nilai duration jadwal untuk cakupan ini harus setidaknya 5 jam. Cakupan ini memungkinkan maksimum 7 hari untuk pengulangan jadwal.

$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "osimage"
$location = "eastus"
$timeZone = "Pacific Standard Time" 
$duration = "08:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "5days"

Setelah menentukan parameter, Anda dapat menggunakan New-AzMaintenanceConfiguration cmdlet untuk membuat konfigurasi:

New-AzMaintenanceConfiguration
   -ResourceGroup $RGName `
   -Name $configName `
   -MaintenanceScope $scope `
   -Location $location `
   -StartDateTime $startDateTime `
   -TimeZone $timeZone `
   -Duration $duration `
   -RecurEvery $recurEvery

Tamu

Tambahan terbaru untuk fitur Konfigurasi Pemeliharaan adalah InGuestPatch cakupannya. Contoh ini menunjukkan cara membuat konfigurasi pemeliharaan untuk cakupan tamu dengan menggunakan Azure PowerShell. Untuk informasi selengkapnya tentang cakupan ini, lihat Tamu.

$RGName = "myMaintenanceRG"
$configName = "myConfig"
$scope = "InGuestPatch"
$location = "eastus"
$timeZone = "Pacific Standard Time" 
$duration = "04:00"
$startDateTime = "2022-11-01 00:00"
$recurEvery = "Week Saturday, Sunday"
$WindowsParameterClassificationToInclude = "FeaturePack","ServicePack";
$WindowParameterKbNumberToInclude = "KB123456","KB123466";
$WindowParameterKbNumberToExclude = "KB123456","KB123466";
$RebootOption = "IfRequired";
$LinuxParameterClassificationToInclude = "Other";
$LinuxParameterPackageNameMaskToInclude = "apt","httpd";
$LinuxParameterPackageNameMaskToExclude = "ppt","userpk";

Setelah menentukan parameter, Anda dapat menggunakan New-AzMaintenanceConfiguration cmdlet untuk membuat konfigurasi:

New-AzMaintenanceConfiguration
   -ResourceGroup $RGName `
   -Name $configName `
   -MaintenanceScope $scope `
   -Location $location `
   -StartDateTime $startDateTime `
   -TimeZone $timeZone `
   -Duration $duration `
   -RecurEvery $recurEvery `
   -WindowParameterClassificationToInclude $WindowsParameterClassificationToInclude `
   -WindowParameterKbNumberToInclude $WindowParameterKbNumberToInclude `
   -WindowParameterKbNumberToExclude $WindowParameterKbNumberToExclude `
   -InstallPatchRebootSetting $RebootOption `
   -LinuxParameterPackageNameMaskToInclude $LinuxParameterPackageNameMaskToInclude `
   -LinuxParameterClassificationToInclude $LinuxParameterClassificationToInclude `
   -LinuxParameterPackageNameMaskToExclude $LinuxParameterPackageNameMaskToExclude `
   -ExtensionProperty @{"InGuestPatchMode"="User"}

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.

Anda dapat memeriksa apakah Anda berhasil membuat konfigurasi pemeliharaan dengan menggunakan Get-AzMaintenanceConfiguration:

Get-AzMaintenanceConfiguration | Format-Table -Property Name,Id

Menetapkan konfigurasi

Setelah membuat konfigurasi, Anda mungkin juga ingin menetapkan komputer ke konfigurasi tersebut dengan menggunakan Azure PowerShell. Anda dapat menggunakan cmdlet New-AzConfigurationAssignment .

Komputer virtual terisolasi

Tetapkan konfigurasi ke VM dengan menggunakan ID konfigurasi. Tentukan -ResourceType VirtualMachines. Berikan nama VM untuk -ResourceName, dan berikan grup sumber daya VM untuk -ResourceGroupName.

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVM" `
   -ResourceType "VirtualMachines" `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Host khusus

Untuk menerapkan konfigurasi ke host khusus, Anda perlu menyertakan -ResourceType hosts, -ResourceParentName dengan nama grup host, dan -ResourceParentType hostGroups:

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName myHostGroup `
   -ResourceParentType hostGroups `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Kumpulan skala komputer virtual

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Tamu

New-AzConfigurationAssignment `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myGuest" `
   -ResourceType "VirtualMachines" `
   -ProviderName "Microsoft.Compute" `
   -ConfigurationAssignmentName "configName" `
   -MaintenanceConfigurationId "configID"

Memeriksa pembaruan yang tertunda

Pemeriksaan pembaruan yang tertunda, gunakan Get-AzMaintenanceUpdate. Gunakan -subscription untuk menentukan langganan Azure VM, jika berbeda dari langganan yang Anda gunakan untuk masuk.

Jika tidak ada pembaruan untuk ditampilkan, perintah ini tidak mengembalikan apa pun. Jika tidak, objek akan PSApplyUpdate mengembalikan objek:

{
   "maintenanceScope": "Host",
   "impactType": "Freeze",
   "status": "Pending",
   "impactDurationInSec": 9,
   "notBefore": "2020-02-21T16:47:44.8728029Z",
   "properties": {
      "resourceId": "/subscriptions/39c6cced-4d6c-4dd5-af86-57499cd3f846/resourcegroups/Ignite2019/providers/Microsoft.Compute/virtualMachines/MCDemo3"
} 

Komputer virtual terisolasi

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

Get-AzMaintenanceUpdate `
  -ResourceGroupName "myResourceGroup" `
  -ResourceName "myVM" `
  -ResourceType "VirtualMachines" `
  -ProviderName "Microsoft.Compute" | Format-Table

Host khusus

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

Get-AzMaintenanceUpdate `
   -ResourceGroupName "myResourceGroup" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName "myHostGroup" `
   -ResourceParentType "hostGroups" `
   -ProviderName "Microsoft.Compute" | Format-Table

Kumpulan skala komputer virtual

Get-AzMaintenanceUpdate `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute" | Format-Table

Terapkan pemutakhiran

Gunakan New-AzApplyUpdate untuk menerapkan pembaruan yang tertunda. Menerapkan panggilan pembaruan dapat memakan waktu hingga 2 jam untuk diselesaikan.

Cmdlet ini hanya berfungsi untuk cakupan gambar host dan OS. Ini tidak berfungsi untuk cakupan tamu.

Komputer virtual terisolasi

Buat permintaan untuk menerapkan pembaruan ke VM terisolasi:

New-AzApplyUpdate `
  -ResourceGroupName "myResourceGroup" `
  -ResourceName "myVM" `
  -ResourceType "VirtualMachines" `
  -ProviderName "Microsoft.Compute"

Setelah berhasil, perintah ini mengembalikan PSApplyUpdate objek. Anda dapat menggunakan Name atribut dalam Get-AzApplyUpdate perintah untuk memeriksa status pembaruan, seperti yang dijelaskan nanti di artikel ini.

Host khusus

Terapkan pembaruan ke host khusus:

New-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName "myHostGroup" `
   -ResourceParentType "hostGroups" `
   -ProviderName Microsoft.Compute

Kumpulan skala komputer virtual

New-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute"

Periksa status pembaruan

Untuk memeriksa status pembaruan, gunakan Get-AzApplyUpdate. Perintah berikut menunjukkan status pembaruan terbaru dengan menggunakan default untuk -ApplyUpdateName parameter . Anda dapat mengganti nama pembaruan (dihasilkan oleh perintah New-AzApplyUpdate) untuk mendapatkan status pembaruan tertentu.

Cmdlet ini hanya berfungsi untuk cakupan gambar host dan OS. Ini tidak berfungsi untuk cakupan tamu.

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

Periksa pembaruan untuk komputer virtual tertentu:

Get-AzApplyUpdate `
  -ResourceGroupName "myResourceGroup" `
  -ResourceName "myVM" `
  -ResourceType "VirtualMachines" `
  -ProviderName "Microsoft.Compute" `
  -ApplyUpdateName "applyUpdateName"

Host khusus

Periksa pembaruan untuk host khusus:

Get-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -ResourceName "myHost" `
   -ResourceType "hosts" `
   -ResourceParentName "myHostGroup" `
   -ResourceParentType "hostGroups" `
   -ProviderName "Microsoft.Compute" `
   -ApplyUpdateName "applyUpdateName"

Kumpulan skala komputer virtual

New-AzApplyUpdate `
   -ResourceGroupName "myResourceGroup" `
   -Location "eastus" `
   -ResourceName "myVMSS" `
   -ResourceType "VirtualMachineScaleSets" `
   -ProviderName "Microsoft.Compute" `
   -ApplyUpdateName "applyUpdateName"

Menghapus konfigurasi pemeliharaan

Untuk menghapus konfigurasi pemeliharaan, gunakan Remove-AzMaintenanceConfiguration:

Remove-AzMaintenanceConfiguration `
   -ResourceGroupName "myResourceGroup" `
   -Name "configName"

Langkah berikutnya

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