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

Configurazioni di manutenzione consente di decidere quando applicare gli aggiornamenti della piattaforma a varie risorse di Azure. Questo argomento illustra le opzioni dell'interfaccia della riga di comando di Azure per l'uso di questo servizio. 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

Esistono diversi ambiti che supportano determinati tipi di computer e pianificazioni, quindi assicurarsi di selezionare l'ambito appropriato per la macchina virtuale.

Creare una configurazione della manutenzione

Il primo passaggio per creare una configurazione di manutenzione consiste nel creare un gruppo di risorse come contenitore per la configurazione. In questo esempio viene creato 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.

È possibile verificare se la configurazione di manutenzione è stata creata correttamente eseguendo una query per le configurazioni di manutenzione disponibili tramite az maintenance configuration list.

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

Nota

La ricorrenza di manutenzione può essere espressa come giornaliera, settimanale o mensile. Alcuni esempi sono:

  • giornaliera- maintenance-window-recur-every: "Day" o "3Days"
  • settimanale- maintenance-window-recur-every: "3Weeks" o "Week Saturday,Sunday"
  • mensile- maintenance-window-recur-every: "Month day23,day24" o "Month Last Sunday" o "Month Fourth Monday"

Set di scalabilità di macchine virtuali

Questo esempio crea una configurazione di manutenzione denominata myConfig con l'ambito osimage 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 computer guest (macchine virtuali e server con abilitazione di Arc) con una finestra pianificata di 2 ore ogni 20 giorni. Per altre informazioni su queste configurazioni di manutenzione nelle macchine virtuali guest, vedere 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 e specificare il nome della macchina virtuale per --resource-name, il gruppo di risorse per la macchina virtuale in --resource-group e 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"

Verifica configurazione

È possibile verificare che la configurazione sia stata applicata correttamente o verificare quale configurazione è attualmente applicata usando 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 restituirà un messaggio di errore che conterrà il testo Resource not found...StatusCode: 404.

Se sono presenti aggiornamenti, ne verrà restituito solo uno, anche se ne sono presenti altri in sospeso. I dati per questo aggiornamento verranno 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

Per 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 restituirà un JSON contenente i dettagli dell'aggiornamento. Le chiamate di applicazione degli aggiornamenti possono 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 l'aggiornamento 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 di avanzamento degli aggiornamenti usando az maintenance applyupdate get.

È possibile usare default come nome di aggiornamento per visualizzare i risultati dell'ultimo aggiornamento o 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 sarà l'ora in cui l'aggiornamento è stato completato, avviato dall'utente o dalla piattaforma nel caso in cui la finestra di manutenzione automatica non sia stata usata. Se non è mai stato applicato un aggiornamento tramite controlli di manutenzione, verrà visualizzato 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

Usare az maintenance configuration delete per eliminare una configurazione della manutenzione. 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 e aggiornamenti.