Condividi tramite


Come gestire gli aggiornamenti a livello di codice per i server abilitati per Azure Arc

Questo articolo illustra il processo di uso dell'API REST di Azure per attivare una valutazione e una distribuzione degli aggiornamenti nei server abilitati per Azure Arc con Gestore aggiornamenti di Azure in Azure. Se non si ha familiarità con Gestore aggiornamenti di Azure e si vogliono altre informazioni, vedere Panoramica di Gestore aggiornamenti. Per usare l'API REST di Azure per gestire le macchine virtuali di Azure, vedere Come usare a livello di codice le macchine virtuali di Azure.

Gestore aggiornamenti di Azure consente di usare l'API REST di Azure per l'accesso a livello di codice. È anche possibile usare i comandi REST appropriati da Azure PowerShell e dall'interfaccia della riga di comando di Azure.

Il supporto per l'API REST di Azure per gestire i server abilitati per Azure Arc è disponibile tramite l'estensione macchina virtuale di Gestione aggiornamenti.

Valutazione aggiornamenti

Per attivare una valutazione degli aggiornamenti nel server abilitato per Azure Arc, specificare la richiesta POST seguente:

Per specificare la richiesta POST, è possibile usare il comando az rest dell'interfaccia della riga di comando di Azure.

az rest --method post --url https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/assessPatches?api-version=2020-08-15-preview --body @body.json

Distribuzione degli aggiornamenti

Per attivare una distribuzione degli aggiornamenti nel server abilitato per Azure Arc, specificare la richiesta POST seguente:

POST on `subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.HybridCompute/machines/machineName/installPatches?api-version=2020-08-15-preview`

Corpo della richiesta

Nella tabella seguente vengono descritti gli elementi del corpo della richiesta:

Proprietà Descrizione
maximumDuration La quantità massima di tempo in minuti che l'operazione di aggiornamento del sistema operativo può richiedere. Deve essere una stringa di durata conforme a ISO 8601, ad esempio PT100M.
rebootSetting Flag per indicare se è necessario riavviare il computer, indica se Gestore aggiornamenti di Azure deve riavviare il computer come parte del processo di aggiornamento. I valori accettabili sono: IfRequired, NeverReboot, AlwaysReboot.
windowsParameters Opzioni dei parametri per l'aggiornamento del sistema operativo guest nella macchina in cui è in esecuzione un sistema operativo Microsoft Windows Server supportato.
windowsParameters - classificationsToInclude Elenco di categorie o classificazioni degli aggiornamenti del sistema operativo da applicare, come supportato e fornito dal sistema operativo Windows Server. I valori accettabili sono: Critical, Security, UpdateRollup, FeaturePack, ServicePack, Definition, Tools, Update
windowsParameters - kbNumbersToInclude Elenco di ID KB di Windows Update disponibili nel computer e che è necessario installare. Se sono stati inclusi "classificationsToInclude", vengono installati i KB disponibili nella categoria. "kbNumbersToInclude" è un'opzione per fornire un elenco di ID KB specifici oltre a quello che si desidera installare. Ad esempio: 1234
windowsParameters - kbNumbersToExclude Elenco di ID KB di Windows Update disponibili per il computer e che non devono essere installati. Se sono stati inclusi "classificationsToInclude", verranno installati i KB disponibili nella categoria. "kbNumbersToExclude" è un'opzione che consente di fornire un elenco di ID KB specifici che si desidera evitare di installare. Ad esempio: 5678
maxPatchPublishDate Viene utilizzato per installare le patch pubblicate alla data massima di pubblicazione o prima di tale data.
linuxParameters Opzioni dei parametri per l'aggiornamento del sistema operativo guest quando il computer esegue la distribuzione Linux supportata
linuxParameters - classificationsToInclude Elenco di categorie o classificazioni degli aggiornamenti del sistema operativo da applicare, come supportato e fornito dalla gestione pacchetti del sistema operativo Linux usata. I valori accettabili sono: Critical, Security, Others. Per altre informazioni, vedere Gestione dei pacchetti Linux e supporto del sistema operativo.
linuxParameters - packageNameMasksToInclude Elenco di pacchetti Linux disponibili nel computer e che è necessario installare. Se sono stati inclusi "classificationsToInclude", verranno installati i pacchetti disponibili nella categoria. "packageNameMasksToInclude" è un'opzione per fornire un elenco di pacchetti oltre a quello che si desidera installare. Ad esempio: mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Elenco di pacchetti Linux disponibili nel computer e che non devono essere installati. Se sono stati inclusi "classificationsToInclude", verranno installati i pacchetti disponibili nella categoria. "packageNameMasksToExclude" è un'opzione che consente di fornire un elenco di pacchetti specifici che si desidera evitare di installare. Ad esempio: mysql, libc=1.0.1.1, kernel*

Per specificare la richiesta POST, è possibile usare il comando az rest dell'interfaccia della riga di comando di Azure.

az rest --method post --url https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/Test/providers/Microsoft.HybridCompute/machines/WIN-8/installPatches?api-version=2020-08-15-preview @body.json

Il formato del corpo della richiesta per la versione 2020-08-15 è il seguente:

{
        "maximumDuration": "PT120M",
        "rebootSetting": "IfRequired",
        "windowsParameters": {
          "classificationsToInclude": [
            "Security",
            "UpdateRollup",
            "FeaturePack",
            "ServicePack"
          ],
          "kbNumbersToInclude": [
            "11111111111",
            "22222222222222"
          ],
          "kbNumbersToExclude": [
            "333333333333",
            "55555555555"
          ]
        }
  }

Creare una pianificazione della configurazione della manutenzione

Per creare una pianificazione della configurazione di manutenzione, specificare la richiesta PUT seguente:

PUT on `/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenanceConfigurationsName>?api-version=2021-09-01-preview`

Corpo della richiesta

Nella tabella seguente vengono descritti gli elementi del corpo della richiesta:

Proprietà Descrizione
id Identificatore completo della risorsa
___location Ottiene o imposta la posizione della risorsa
name Nome della risorsa
properties.extensionProperties Ottiene o imposta extensionProperties di maintenanceConfiguration
properties.maintenanceScope Ottiene o imposta il maintenanceScope della configurazione
properties.maintenanceWindow.duration Durata della finestra di manutenzione in formato HH:mm. Se non specificato, verrà usato il valore predefinito in base all'ambito di manutenzione specificato. Esempio: 05:00.
properties.maintenanceWindow.expirationDateTime Data di scadenza effettiva della finestra di manutenzione in formato AAAA-MM-GG hh:mm. La finestra viene creata nel fuso orario specificato, all'ora legale in base a tale fuso orario. È necessario impostare la data di scadenza su una data futura. Se non specificato, verrà impostato sul valore datetime massimo 9999-12-31 23:59:59.
properties.maintenanceWindow.recurEvery Frequenza di ripetizione di una finestra di manutenzione. La frequenza può essere espresso come pianificazioni giornaliere, settimanali o mensili. È possibile formattare pianificazioni giornaliere come ricorsive: [Frequenza come numero intero][giorno/i']. Se non viene specificata alcuna frequenza, la frequenza predefinita è 1. Gli esempi di pianificazione giornaliera sono ricorsivi: Day, recurEvery: 3Days. Le pianificazioni settimanali vengono formattate come ricorsive: [Frequenza come numero intero][Settimana/i][ Elenco delimitato da virgole facoltativo dei giorni feriali lunedì-domenica]. Gli esempi di pianificazione settimanale sono ricorsivi: 3Weeks, recurEvery: Week Saturday, Sunday. È possibile formattare le pianificazioni mensili come [Frequenza come numero intero][Mese/i][Elenco delimitato da virgole di giorni mensili] o [Frequenza come numero intero][Mese/i][Settimana del mese (Primo, Secondo, Terzo, Quarto, Ultimo)] [Giorni feriali lunedì-domenica]. Gli esempi di pianificazione mensile sono recurEvery: Month, recurEvery: 2Months, recury: Month day23, day24, recurEvery: Month Last Sunday, recurEvery: Month Fourth Monday.
properties.maintenanceWindow.startDateTime Data di inizio effettiva della finestra di manutenzione in formato AAAA-MM-GG hh:mm. È possibile impostare la data di inizio sulla data corrente o su una data futura. La finestra verrà creata nel fuso orario specificato e regolata con l’ora legale in base al fuso orario.
properties.maintenanceWindow.timeZone Nome del fuso orario. È possibile ottenere l'elenco dei fusi orari eseguendo [System.TimeZoneInfo]:GetSystemTimeZones() in PowerShell. Esempio: Ora solare Pacifico, UTC, Ora solare Europa occidentale, Ora solare Corea, Cen. Ora solare Australia centrale.
properties.namespace Ottiene o imposta lo spazio dei nomi del provider di risorse
properties.visibility Ottiene o imposta la visibilità della configurazione. Il valore predefinito è "Custom"
systemData Metadati di Azure Resource Manager contenenti le informazioni createdBy e modifiedBy.
tags Ottiene o imposta i tag della risorsa
type Tipo di risorsa
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"

Associare una macchina virtuale a una pianificazione

Per associare una macchina virtuale a una pianificazione della configurazione di manutenzione, specificare la richiesta PUT seguente:

PUT on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`
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"

Rimuovere il computer dalla pianificazione

Per rimuovere un computer dalla pianificazione, ottenere tutti i nomi delle assegnazioni di configurazione per il computer creato per associare il computer alla pianificazione corrente da Azure Resource Graph come indicato:

az maintenance configuration delete \
   --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"

Passaggi successivi