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 Gestione aggiornamenti di Azure e si vogliono 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.
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:
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 e successive è il seguente:
{
}
Aggiorna distribuzione
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`
Testo 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 |
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", 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 nel 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 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 nel computer e che non devono essere installati. Se sono stati inclusi ‘classificationsToInclude’, verranno installati i pacchetti disponibili nella categoria. "ackageNameMasksToExclude" è 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 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`
Testo della richiesta
Nella tabella seguente vengono descritti gli elementi del corpo della richiesta:
Proprietà | Descrizione |
---|---|
id |
Identificatore completo della risorsa |
location |
Ottiene o imposta il percorso della risorsa |
name |
Nome della risorsa |
properties.extensionProperties |
Ottiene o imposta extensionProperties della 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 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 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 fdelimitato da virgole dei giorni feriali lunedì-domenica facoltativo]. 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 sulla 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, Ora solare Australia centrale. |
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 della risorsa |
Per specificare la richiesta POST, è possibile usare la chiamata API REST di Azure seguente con parametri e valori validi.
PUT on '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/atscalepatching/providers/Microsoft.Compute/virtualMachines/win-atscalepatching-1/providers/Microsoft.Maintenance/configurationAssignments/TestAzureInGuestAdv?api-version=2021-09-01-preview
{
"properties": {
"maintenanceConfigurationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 come indicato in precedenza, 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.