Controllare gli aggiornamenti con le configurazioni di manutenzione e l'interfaccia della riga di comando di Azure

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi

È possibile usare la funzionalità Configurazioni di manutenzione per controllare quando applicare gli aggiornamenti della piattaforma a varie risorse di Azure. Questo articolo illustra le opzioni dell'interfaccia della riga di comando di Azure per l'uso di questa funzionalità. Per altre informazioni sui vantaggi dell'uso delle configurazioni di manutenzione, delle relative limitazioni e di altre opzioni di gestione, vedere Gestione degli aggiornamenti della piattaforma con configurazioni di manutenzione.

Importante

Gli ambiti specifici supportano determinati tipi di computer e pianificazioni. Assicurarsi di selezionare l'ambito corretto per la macchina virtuale.Be sure to select the right scope for your virtual machine (VM).

Creare una configurazione della manutenzione

Il primo passaggio per la creazione di una configurazione di manutenzione consiste nel creare un gruppo di risorse come contenitore per la configurazione. Questo esempio crea un gruppo di risorse denominato myMaintenanceRG in eastus. Se si ha già un gruppo di risorse che si vuole usare, è possibile ignorare questa parte e sostituire il nome del gruppo di risorse con il proprio nel resto degli esempi.

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

Dopo aver creato il gruppo di risorse, usare az maintenance configuration create per creare una configurazione di manutenzione.

Host

Questo esempio crea una configurazione di manutenzione denominata myConfig con ambito computer host, con una finestra pianificata di 5 ore il quarto lunedì di ogni mese:

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" 

L'uso di --maintenance-scope host assicura che la configurazione di manutenzione venga usata per controllare gli aggiornamenti all'infrastruttura host. Se si tenta di creare una configurazione con lo stesso nome ma in un percorso diverso, verrà visualizzato un errore. I nomi di configurazione devono essere univoci per il gruppo di risorse.

Per verificare se la configurazione di manutenzione è stata creata correttamente, è possibile eseguire una query per le configurazioni di manutenzione disponibili usando az maintenance configuration list:

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

È possibile esprimere la ricorrenza della manutenzione come giornaliera, settimanale o mensile. Di seguito sono riportati alcuni esempi.

  • Giornaliero: maintenance-window-recur-every valore di "Day" o "3Days".
  • Settimanale: maintenance-window-recur-every valore di "3Weeks" o "Week Saturday,Sunday".
  • Mensile: maintenance-window-recur-every valore o "Month day23,day24""Month Last Sunday" .Month Fourth Monday

set di scalabilità di macchine virtuali

Questo esempio crea una configurazione di manutenzione denominata myConfig con ambito immagine del sistema operativo per i set di scalabilità di macchine virtuali, con una finestra pianificata di 5 ore il quarto lunedì di ogni mese:

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" 

VM guest

Questo esempio crea una configurazione di manutenzione denominata myConfig con ambito per i computer guest (macchine virtuali e server abilitati per Azure Arc), con una finestra pianificata di 2 ore ogni 20 giorni. Altre informazioni sulle configurazioni di manutenzione nelle macchine virtuali guest.

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"

Assegnare la configurazione

Usare az maintenance assignment create per assegnare la configurazione al computer.

Macchina virtuale isolata

Applicare la configurazione a una macchina virtuale host isolata usando l'ID della configurazione. Specificare --resource-type virtualMachines. Specificare il nome della macchina virtuale per --resource-name, il gruppo di risorse della macchina virtuale per --resource-groupe il percorso della macchina virtuale per --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"

Host dedicato

Per applicare una configurazione a un host dedicato, è necessario includere --resource-type hosts, --resource-parent-name con il nome del gruppo host e --resource-parent-type hostGroups.

Il parametro --resource-id è l'ID dell'host. È possibile usare az-vm-host-get-instance-view per ottenere l'ID dell'host dedicato.

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 

set di scalabilità di macchine virtuali

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"

VM guest

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"

Controllare la configurazione

È possibile verificare che la configurazione sia stata applicata correttamente oppure verificare quale configurazione è attualmente applicata tramite az maintenance assignment list.

Macchina virtuale isolata

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

Host dedicato

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

set di scalabilità di macchine virtuali

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

VM guest

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

Verificare la presenza di aggiornamenti in sospeso

Usare az maintenance update list per verificare se sono presenti aggiornamenti in sospeso. Aggiornare --subscription in modo che sia l'ID della sottoscrizione che contiene la macchina virtuale.

Se non sono presenti aggiornamenti, il comando restituisce un messaggio di errore contenente il testo Resource not found...StatusCode: 404.

Se sono presenti aggiornamenti, il comando restituisce solo uno, anche se sono in sospeso più aggiornamenti. I dati per questo aggiornamento vengono restituiti in un oggetto :

[
  {
    "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"
  }
]

Macchina virtuale isolata

Verificare la presenza di aggiornamenti in sospeso per una macchina virtuale isolata. In questo esempio l'output viene formattato come tabella per la leggibilità:

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

Host dedicato

Verificare la presenza di aggiornamenti in sospeso per un host dedicato. In questo esempio l'output viene formattato come tabella per la leggibilità. Sostituire i valori per le risorse con i propri.

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

Applica aggiornamenti

Usare az maintenance apply update per applicare gli aggiornamenti in sospeso. In caso di esito positivo, questo comando restituisce JSON che contiene i dettagli dell'aggiornamento. Il completamento delle chiamate per l'applicazione degli aggiornamenti può richiedere fino a 2 ore.

Macchina virtuale isolata

Creare una richiesta per applicare gli aggiornamenti a una macchina virtuale isolata:

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

Host dedicato

Applicare gli aggiornamenti a un host dedicato:

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

set di scalabilità di macchine virtuali

Applicare gli aggiornamenti a un set di scalabilità:

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

Controllare lo stato dell'applicazione degli aggiornamenti

È possibile controllare lo stato degli aggiornamenti usando az maintenance applyupdate get.

Per visualizzare i risultati dell'ultimo aggiornamento, usare default come nome di aggiornamento. In alternativa, sostituire myUpdateName con il nome dell'aggiornamento restituito durante l'esecuzione di 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 è l'ora in cui l'aggiornamento è terminato, indipendentemente dal fatto che sia stato avviato dall'aggiornamento o dalla piattaforma perché non è stata usata la finestra di manutenzione automatica. Se un aggiornamento non è mai stato applicato tramite configurazioni di manutenzione, LastUpdateTime mostra il valore predefinito.

Macchina virtuale isolata

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

Host dedicato

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

set di scalabilità di macchine virtuali

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

Eliminare una configurazione della manutenzione

Per eliminare una configurazione di manutenzione, usare az maintenance configuration delete. L'eliminazione della configurazione rimuove il controllo di manutenzione dalle risorse associate.

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

Passaggi successivi

Per altre informazioni, vedere Manutenzione per le macchine virtuali in Azure.