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 Azure Update Manager in Azure. Se non si ha familiarità con Gestione aggiornamenti di Azure e si vuole ottenere altre informazioni, vedere Panoramica di Gestione 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.

Gestione aggiornamenti in 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:

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

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

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

{
}

Aggiorna distribuzione

Per attivare una distribuzione di 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, PT100Mad esempio .
rebootSetting Contrassegnare lo stato se è necessario riavviare il computer e se l'installazione dell'aggiornamento del sistema operativo guest lo richiede per il completamento. I valori accettabili sono: IfRequired, NeverReboot, AlwaysReboot.
windowsParameters Opzioni dei parametri per l'aggiornamento del sistema operativo guest nel computer che esegue 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 per il computer e che è necessario installare. Se sono stati inclusi "classificationsToInclude", i KB disponibili nella categoria vengono installati. 'kbNumbersToInclude' è un'opzione per fornire un elenco di ID KB specifici oltre e versioni successive da 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 per fornire un elenco di ID KB specifici da assicurarsi di non essere installati. Ad esempio: 5678
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 pacchetti Linux e supporto del sistema operativo.
linuxParameters - packageNameMasksToInclude Elenco di pacchetti Linux disponibili per il computer e che devono essere installati. Se sono stati inclusi "classificationsToInclude", verranno installati i pacchetti disponibili nella categoria. 'packageNameMasksToInclude' è un'opzione per fornire l'elenco di pacchetti oltre e versioni successive da installare. Ad esempio: mysql, libc=1.0.1.1, kernel*
linuxParameters - packageNameMasksToExclude Elenco di pacchetti Linux disponibili per il computer e che non devono essere installati. Se sono stati inclusi "classificationsToInclude", verranno installati i pacchetti disponibili nella categoria. 'packageNameMasksToExclude' è un'opzione per fornire un elenco di pacchetti specifici che si desidera assicurarsi di non essere installati. Ad esempio: mysql, libc=1.0.1.1, kernel*

Per specificare la richiesta POST, è possibile usare la chiamata api REST di Azure seguente con parametri e valori validi.

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

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

Creare una pianificazione della configurazione di 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 dell'oggetto maintenanceConfiguration
properties.maintenanceScope Ottiene o imposta la manutenzioneScope della configurazione
properties.maintenanceWindow.duration Durata della finestra di manutenzione in formato HH:mm. Se non specificato, il valore predefinito verrà usato 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 fornito 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. Il tasso può essere espresso come pianificazioni giornaliere, settimanali o mensili. È possibile formattare le 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. La pianificazione settimanale viene formattata come ricorsiva: [Frequenza come numero intero][Settimana/i][Elenco delimitato da virgole facoltativo dei giorni feriali lunedì-domenica]. Gli esempi di pianificazione settimanale sono ricorsiva: 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)] [Lunedì-domenica del giorno]. 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 sulla data futura. La finestra verrà creata nel fuso orario specificato e regolata 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 W. Europa, Ora solare corea, Cen. Ora solare australia.
properties.namespace Ottiene o imposta lo spazio dei nomi della risorsa
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

Per specificare la richiesta POST, è possibile usare la chiamata api REST di Azure seguente con parametri e valori validi.

PUT on '/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/resourceGroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestAdv2?api-version=2021-09-01-preview

{
  "location": "eastus2euap",
  "properties": {
    "namespace": null,
    "extensionProperties": {
      "InGuestPatchMode" : "User"
    },
    "maintenanceScope": "InGuestPatch",
    "maintenanceWindow": {
      "startDateTime": "2021-08-21 01:18",
      "expirationDateTime": "2221-05-19 03:30",
      "duration": "01:30",
      "timeZone": "India Standard Time",
      "recurEvery": "Day"
    },
    "visibility": "Custom",
    "installPatches": {
      "rebootSetting": "IfRequired",
      "windowsParameters": {
        "classificationsToInclude": [
          "Security",
          "Critical",
          "UpdateRollup"
        ]
      },
      "linuxParameters": {
        "classificationsToInclude": [
          "Other"
        ]
      }
    }
  }
}'

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`

Per specificare la richiesta PUT, è possibile usare la chiamata api REST di Azure seguente con parametri e valori validi.

PUT on '/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview

{
  "properties": {
    "maintenanceConfigurationId": "/subscriptions/0f55bb56-6089-4c7e-9306-41fb78fc5844/resourcegroups/atscalepatching/providers/Microsoft.Maintenance/maintenanceConfigurations/TestAzureInGuestIntermediate2"
  },
  "location": "eastus2euap"
}'

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:

maintenanceresources
| where type =~ "microsoft.maintenance/configurationassignments"
| where properties.maintenanceConfigurationId =~ "<maintenance configuration Resource ID>"
| where properties.resourceId =~ "<Machine Resource Id>"
| project name, id

Dopo aver ottenuto il nome da sopra, eliminare l'assegnazione di configurazione seguendo la richiesta DELETE :

DELETE on `<ARC or Azure VM resourceId>/providers/Microsoft.Maintenance/configurationAssignments/<configurationAssignment name>?api-version=2021-09-01-preview`

Passaggi successivi

  • Per visualizzare i log di valutazione e distribuzione degli aggiornamenti generati da Gestione aggiornamenti, vedere Log di query.
  • Per risolvere i problemi, vedere Risolvere i problemi di Gestione aggiornamenti.