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"
: NilaiRecurEvery
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.