Dela via


Kontrollera uppdateringar med underhållskonfigurationer och Azure CLI

Gäller för: ✔️ Virtuella Linux-datorer ✔️ med virtuella Windows-datorer ✔️ – flexibla skalningsuppsättningar ✔️ Enhetliga skalningsuppsättningar

Du kan använda funktionen Underhållskonfigurationer för att styra när plattformsuppdateringar ska tillämpas på olika Azure-resurser. Den här artikeln beskriver Azure CLI-alternativen för att använda den här funktionen. Mer information om fördelarna med att använda underhållskonfigurationer, dess begränsningar och andra hanteringsalternativ finns i Hantera plattformsuppdateringar med underhållskonfigurationer.

Viktigt!

Specifika omfång stöder vissa datortyper och scheman. Se till att välja rätt omfång för den virtuella datorn (VM).

Skapa en underhållskonfiguration

Det första steget när du skapar en underhållskonfiguration är att skapa en resursgrupp som en container för din konfiguration. I det här exemplet skapas en resursgrupp med namnet myMaintenanceRG i eastus. Om du redan har en resursgrupp som du vill använda kan du hoppa över den här delen och ersätta resursgruppens namn med ditt eget i resten av exemplen.

az group create \
   --location eastus \
   --name myMaintenanceRG

När du har skapat resursgruppen använder az maintenance configuration create du för att skapa en underhållskonfiguration.

Host

Det här exemplet skapar en underhållskonfiguration med namnet myConfig som är begränsad till värddatorer, med ett schemalagt fönster på 5 timmar den fjärde måndagen i varje månad:

az maintenance configuration create \
   --resource-group myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope host \
   --location eastus \
   --maintenance-window-duration "05:00" \
   --maintenance-window-recur-every "Month Fourth Monday" \
   --maintenance-window-start-date-time "2020-12-30 08:00" \
   --maintenance-window-time-zone "Pacific Standard Time" 

Genom att använda --maintenance-scope host ser du till att underhållskonfigurationen används för att kontrollera uppdateringar av värdinfrastrukturen. Om du försöker skapa en konfiguration med samma namn men på en annan plats får du ett fel. Konfigurationsnamn måste vara unika för resursgruppen.

Om du vill kontrollera om du har skapat underhållskonfigurationen kan du fråga efter tillgängliga underhållskonfigurationer med hjälp az maintenance configuration listav :

az maintenance configuration list 
   --query "[].{Name:name, ID:id}" 
   --output table 

Du kan uttrycka återkommande underhåll som dagligen, varje vecka eller varje månad. Nedan följer några exempel:

  • Dagligen: Ett maintenance-window-recur-every värde av "Day" eller "3Days".
  • Varje vecka: Värdet maintenance-window-recur-every "3Weeks" eller "Week Saturday,Sunday".
  • Månatlig: Ett maintenance-window-recur-every värde av "Month day23,day24" eller "Month Last Sunday" Month Fourth Monday.

Skalningsuppsättningar för virtuella datorer

Det här exemplet skapar en underhållskonfiguration med namnet myConfig med os-avbildningsomfånget för vm-skalningsuppsättningar, med ett schemalagt fönster på 5 timmar den fjärde måndagen i varje månad:

az maintenance configuration create \
   --resource-group myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope osimage \
   --location eastus \
   --maintenance-window-duration "05:00" \
   --maintenance-window-recur-every "Month Fourth Monday" \
   --maintenance-window-start-date-time "2020-12-30 08:00" \
   --maintenance-window-time-zone "Pacific Standard Time" 

Virtuella gästdatorer

Det här exemplet skapar en underhållskonfiguration med namnet myConfig som är begränsad till gästdatorer (virtuella datorer och Azure Arc-aktiverade servrar), med ett schemalagt fönster på 2 timmar var 20:e dag. Läs mer om underhållskonfigurationer på virtuella gästdatorer.

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"

Tilldela konfigurationen

Använd az maintenance assignment create för att tilldela konfigurationen till datorn.

Isolerad virtuell dator

Använd konfigurationen på en isolerad virtuell värddator med hjälp av konfigurationens ID. Ange --resource-type virtualMachines. Ange namnet på den virtuella datorn för --resource-name, den virtuella datorns resursgrupp för och platsen för --resource-groupden virtuella datorn för --location.

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"

Dedikerad värd

Om du vill tillämpa en konfiguration på en dedikerad värd måste du inkludera --resource-type hosts, --resource-parent-name med namnet på värdgruppen och --resource-parent-type hostGroups.

Parametern --resource-id är värdens ID. Du kan använda az-vm-host-get-instance-view för att hämta ID:t för din dedikerade värd.

az maintenance assignment create \
   --resource-group myDHResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
   --location eastus \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups 

Skalningsuppsättningar för virtuella datorer

az maintenance assignment create \
   --resource-group myMaintenanceRG \
   --location eastus \
   --resource-name myVMSS \
   --resource-type virtualMachineScaleSets \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"

Virtuella gästdatorer

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"

Kontrollera konfigurationen

Du kan kontrollera att konfigurationen har tillämpats korrekt eller kontrollera vilken konfiguration som för närvarande tillämpas med hjälp az maintenance assignment listav .

Isolerad virtuell dator

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

Dedikerad värd

az maintenance assignment list \
   --resource-group myDHResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups \
   --query "[].{ResourceGroup:resourceGroup,configName:name}" \
   --output table

Skalningsuppsättningar för virtuella datorer

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVMSS \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

Virtuella gästdatorer

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

Sök efter väntande uppdateringar

Använd az maintenance update list för att se om det finns väntande uppdateringar. Uppdatera --subscription till ID för prenumerationen som innehåller den virtuella datorn.

Om det inte finns några uppdateringar returnerar kommandot ett felmeddelande som innehåller texten Resource not found...StatusCode: 404.

Om det finns uppdateringar returnerar kommandot bara en, även om flera uppdateringar väntar. Data för den här uppdateringen returneras i ett objekt:

[
  {
    "impactDurationInSec": 9,
    "impactType": "Freeze",
    "maintenanceScope": "Host",
    "notBefore": "2020-03-03T07:23:04.905538+00:00",
    "resourceId": "/subscriptions/9120c5ff-e78e-4bd0-b29f-75c19cadd078/resourcegroups/DemoRG/providers/Microsoft.Compute/hostGroups/demoHostGroup/hosts/myHost",
    "status": "Pending"
  }
]

Isolerad virtuell dator

Sök efter väntande uppdateringar för en isolerad virtuell dator. I det här exemplet formateras utdata som en tabell för läsbarhet:

az maintenance update list \
   --subscription {subscription ID} \
   --resource-group myMaintenanceRg \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --output table

Dedikerad värd

Sök efter väntande uppdateringar för en dedikerad värd. I det här exemplet formateras utdata som en tabell för läsbarhet. Ersätt värdena för resurserna med dina egna.

az maintenance update list \
   --subscription {subscription ID} \
   --resource-group myHostResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parentname myHostGroup \
   --resource-parent-type hostGroups \
   --output table

Tillämpa uppdateringar

Använd az maintenance apply update för att tillämpa väntande uppdateringar. Vid lyckat resultat returnerar det här kommandot JSON som innehåller information om uppdateringen. Anrop för att tillämpa uppdateringar kan ta upp till 2 timmar att slutföra.

Isolerad virtuell dator

Skapa en begäran om att tillämpa uppdateringar på en isolerad virtuell dator:

az maintenance applyupdate create \
   --subscription {subscriptionID} \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute

Dedikerad värd

Tillämpa uppdateringar på en dedikerad värd:

az maintenance applyupdate create \
   --subscription {subscriptionID} \
   --resource-group myHostResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups

Skalningsuppsättningar för virtuella datorer

Tillämpa uppdateringar på en skalningsuppsättning:

az maintenance applyupdate create \
   --subscription {subscriptionID} \
   --resource-group myMaintenanceRG \
   --resource-name myVMSS \
   --resource-type virtualMachineScaleSets \
   --provider-name Microsoft.Compute

Kontrollera statusen för att tillämpa uppdateringar

Du kan kontrollera förloppet för uppdateringarna med hjälp az maintenance applyupdate getav .

Om du vill se resultat för den senaste uppdateringen använder du default som uppdateringsnamn. Eller ersätt myUpdateName med namnet på uppdateringen som returnerades när du körde az maintenance applyupdate create.

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 är den tid då uppdateringen slutfördes, oavsett om du initierade uppdateringen eller plattformen initierade den eftersom du inte använde självunderhållsfönstret. Om en uppdatering aldrig tillämpades via underhållskonfigurationer visar LastUpdateTime standardvärdet.

Isolerad virtuell dator

az maintenance applyupdate get \
   --subscription {subscriptionID} \ 
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Dedikerad värd

az maintenance applyupdate get \
   --subscription {subscriptionID} \ 
   --resource-group myMaintenanceRG \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \ 
   --resource-parent-type hostGroups \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Skalningsuppsättningar för virtuella datorer

az maintenance applyupdate get \
   --subscription {subscriptionID} \ 
   --resource-group myMaintenanceRG \
   --resource-name myVMSS \
   --resource-type virtualMachineScaleSets \
   --provider-name Microsoft.Compute \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Ta bort en underhållskonfiguration

Om du vill ta bort en underhållskonfiguration använder du az maintenance configuration delete. Om du tar bort konfigurationen tas underhållskontrollen bort från de associerade resurserna.

az maintenance configuration delete \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
   -resource-group myResourceGroup \
   --resource-name myConfig

Nästa steg

Mer information finns i Underhåll för virtuella datorer i Azure.