Puoi utilizzare Patch per applicare patch del sistema operativo a un gruppo di istanze di macchine virtuali (VM).
Per applicare le patch alle VM, completa i seguenti passaggi:
Prima di iniziare
- Esamina le quote di OS Config.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Puoi eseguire il deployment ed eseguire i job di patch solo per le VM di un singolo progetto Google Cloud. Non puoi eseguire job di patch nei progetti Google Cloud, anche se le VM si trovano in un VPC condiviso. Tuttavia, puoi visualizzare i dati sulla conformità alle patch tra i progetti.
- Per impostazione predefinita, VM Manager non applica patch alle VM che fanno parte di un gruppo di istanze gestite. L'applicazione delle patch a queste VM viene segnalata come errore nel job di applicazione patch. Puoi ignorare questo comportamento predefinito quando crei il job di applicazione patch.
Quando applichi patch alle VM che fanno parte di un gruppo di istanze gestite, si applicano le seguenti limitazioni:
- Quando un gruppo di istanze gestite ripara una VM, la ricrea in base al modello di istanza. Ciò potrebbe ripristinare la VM a uno stato non patchato.
- L'applicazione di patch alle VM può causare risultati imprevisti in un gruppo di istanze gestite in cui è attivato l'autoscaling. Lo strumento di scalabilità automatica elimina le VM con patch quando il carico diminuisce e crea nuove VM senza patch utilizzando il modello di istanza di MIG quando il carico aumenta. Ad esempio, se l'utilizzo medio della CPU è inferiore all'utilizzo target specificato per la scalabilità automatica, il gruppo di istanze gestite può rimuovere alcune delle VM con patch durante lo scale in.
- Per tutte le VM, configura VM Manager.
- Per le VM Windows, Google consiglia di disattivare gli aggiornamenti automatici sulle VM. In questo modo si riducono i conflitti tra gli aggiornamenti automatici di Windows e il servizio Patch.
roles/osconfig.patchJobExecutor
: contiene le autorizzazioni per eseguire, annullare, recuperare e elencare i job di applicazione patch. Contiene anche le autorizzazioni per visualizzare i dettagli dell'istanza per un job di applicazione patch.roles/osconfig.patchJobViewer
: contiene le autorizzazioni per l'accesso di sola lettura per recuperare ed elencare i job di patch. Contiene anche le autorizzazioni per visualizzare i dettagli dell'istanza per un job di applicazione patch.project-id
: l'ID progetto.user-id
: il nome utente di Google Workspace dell'utente.- Nella console Google Cloud, vai alla pagina Compute Engine > Gestione VM > Patch.
- Fai clic su Deployment di una nuova patch.
Nella sezione VM target, seleziona la zona che contiene le VM a cui vuoi applicare la patch. Puoi anche scegliere di selezionare tutte le zone.
Dopo aver selezionato le zone, puoi filtrare ulteriormente le VM all'interno di quella zona.
Ad esempio, per applicare patch a VM specifiche nelle zone selezionate, inserisci i filtri per nome ed etichetta simili ai seguenti:
- Prefisso del nome:
test-
- Etichette:
env=dev
eapp=web
- Prefisso del nome:
Nella sezione Configurazione della patch, configura la patch.
- Specifica un nome per il patch.
- Seleziona gli aggiornamenti richiesti per il tuo sistema operativo. Per ulteriori informazioni, consulta la sezione Configurazione delle patch.
Nella sezione Pianificazione, completa quanto segue:
- Seleziona una pianificazione. Per eseguire immediatamente il job di applicazione patch, seleziona Avvia ora.
- (Facoltativo) Imposta una durata o una finestra di manutenzione.
Nella sezione Opzioni di implementazione, configura le opzioni di implementazione delle patch:
- Scegli se applicare le patch a una zona alla volta o a più zone contemporaneamente.
- Imposta un budget di interruzione. Un budget di interruzione è il numero o la percentuale di VM in una zona che vuoi che vengano interrotte contemporaneamente dalla procedura di applicazione delle patch.
(Facoltativo) Nella sezione Opzioni avanzate, puoi completare le seguenti attività:
- Seleziona un'opzione di riavvio.
- Carica gli script pre-applicazione e post-applicazione. Per ulteriori informazioni sugli script pre-applicazione e post-applicazione, consulta la sezione Specificare gli script pre-applicazione e post-applicazione.
Fai clic su Esegui il deployment.
- Nome istanza:
instance-1
- Zona:
us-east1-b
Descrizione:
patch for instance-1
Dovresti eseguire il seguente comando:
- Il patch deve essere eseguito su tutte le istanze del progetto.
- Il job di patch deve scadere e interrompersi dopo 1 ora e 30 minuti.
- Le macchine devono essere riavviate in base alle impostazioni di sistema dopo l'installazione degli aggiornamenti.
- Nelle VM che eseguono Apt, l'applicazione delle patch viene eseguita utilizzando
apt dist-upgrade
. - Nelle VM con Windows, applica solo le patch per l'
KB4339284
aggiornamento. - Nelle VM che eseguono Yum, l'applicazione delle patch viene eseguita utilizzando l'utilità
yum update-minimal --security
. project-id
: l'ID del tuo progetto.instance-filter
: i parametri di filtro che preferisci. Per saperne di più sui filtri delle istanze, consulta Filtri delle istanze.- Avere le etichette
env=dev
eapp=web
. - Si trovano in
asia-east1-b
oasia-east1-c
. - Hanno il prefisso
test-
. - Il patch deve essere eseguito su tutte le istanze del progetto.
- Il job di patch deve scadere e interrompersi dopo 1 ora e 30 minuti. L'API richiede che il tempo sia espresso in secondi, quindi impostalo su 5400s.
- Le macchine devono essere riavviate in base alle impostazioni di sistema dopo l'installazione degli aggiornamenti.
- Nelle VM che eseguono Apt, l'applicazione delle patch viene eseguita utilizzando
apt dist-upgrade
. - Nelle VM con Windows, applica solo le patch per l'
KB4339284
aggiornamento. - Nelle VM che eseguono Yum, l'applicazione delle patch viene eseguita utilizzando l'utilità
yum update-minimal --security
. Filtra per nome: limita job di applicazione patch alle istanze con nomi specifici. I nomi delle istanze devono essere specificati utilizzando l'URI completo. I formati URI supportati includono:
zones/zone/instances/instance-name
projects/project-id/zones/zone/instances/instance-name
https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
Filtra per prefisso del nome: limita il job di applicazione patch alle istanze con un prefisso specifico nel nome.
Filtra per zona: limita il job di applicazione patch alle istanze in una zona specifica.
Filtra per etichetta: limita job di applicazione patch alle istanze con etichette specifiche.
- Per Windows, specifica la classificazione delle patch da applicare
(ad es.
Security
eCritical
) o scegli come target KB specifiche da escludere. Per ulteriori informazioni sulla classificazione delle patch, consulta la documentazione dell'assistenza Microsoft. Per RHEL, Rocky Linux e CentOS, il sistema sottostante è
yum
.- Per le patch destinate alle VM RHEL e Rocky Linux, puoi specificare i pacchetti
security
eminimal
. - Per le VM CentOS, non sono presenti metadati
security
nel repositoryyum
CentOS. Pertanto, non è necessario specificare l'opzionesecurity
durante l'aggiornamento dei pacchetti di sicurezza. Se non specifichi alcun pacchetto, il job di applicazione patch aggiorna tutti i pacchetti, inclusi quelli con aggiornamenti della sicurezza. - Puoi anche escludere pacchetti specifici. Per ulteriori informazioni, consulta le pagine man di
yum
.
- Per le patch destinate alle VM RHEL e Rocky Linux, puoi specificare i pacchetti
Per Debian e Ubuntu, il sistema sottostante è
apt
. Per le patch che hanno come target queste VM, puoi specificaredist-upgrade
o un upgrade standard. Puoi anche escludere pacchetti specifici. Per ulteriori informazioni, consulta le pagine man di Debian o le pagine man di Ubuntu.Per SuSE, il sistema sottostante è
zypper
, in particolare con patch Zypper. Per i patch che hanno come target queste VM, puoi specificare opzioni quali:with update
: aggiorna tutti i pacchetti non coperti dalle patchwith optional
: le patch facoltative vengono trattate in base alle esigenze- Le categorie o le gravità delle patch da applicare
Puoi anche escludere patch specifiche.
- Segui i passaggi descritti nella scheda della console per creare un job di patch o un deployment delle patch.
- Nella sezione Configurazione patch, seleziona i parametri per il job di applicazione patch.
- Apporta le configurazioni aggiuntive necessarie per il job di applicazione patch o per il deployment.
- Fai clic su Esegui il deployment.
- Valore predefinito: l'agente decide se è necessario il riavvio controllando i segnali noti su ciascun sistema operativo. Durante l'applicazione delle patch potrebbero verificarsi più riavvii, anche prima dell'installazione delle patch.
- Sempre: la macchina si riavvia al termine dell'aggiornamento.
- Mai: la macchina non si riavvia al termine dell'aggiornamento. In alcuni casi, ciò potrebbe significare che non tutte le patch sono state applicate completamente.
- Lo script pre-applicazione viene eseguito prima dell'inizio dell'applicazione di patch. Se è richiesto un riavvio di sistema prima di iniziare l'applicazione di patch, lo script pre-applicazione viene eseguito prima del riavvio.
- Gli script post-applicazione vengono eseguiti dopo il completamento dell'applicazione di patch. Se è richiesto un riavvio di sistema durante l'applicazione di patch, lo script post-applicazione viene eseguito dopo il riavvio.
- Segui i passaggi descritti nella scheda della console per creare un job di patch o un deployment delle patch.
- Nella sezione Opzioni avanzate, fai clic su Sfoglia sia per le sezioni pre-patch che post-patch. Viene visualizzata una pagina dell'oggetto Cloud Storage.
- Nella pagina dell'oggetto Cloud Storage, seleziona il bucket Cloud Storage che contiene lo script, quindi seleziona l'oggetto o il file Cloud Storage.
- Apporta le configurazioni aggiuntive necessarie per il job di applicazione patch o per il deployment.
- Fai clic su Esegui il deployment.
- L'operazione di applicazione delle patch non riesce
- L'operazione di applicazione di patch non riesce quando vengono eseguiti i passaggi precedenti o successivi alla patch
- L'operazione di applicazione di patch non risponde con una notifica di successo prima del tempo di spegnimento
- Segui i passaggi descritti nella scheda della console per creare un job di patch o un deployment delle patch.
- Nella sezione Opzioni di implementazione, configura le opzioni di implementazione:
- Scegli se applicare la patch a una zona alla volta o a tutte le zone contemporaneamente.
- Imposta il budget di interruzione. Un budget di interruzione è il numero o la percentuale di VM in una zona che vuoi che vengano interrotte contemporaneamente dalla procedura di applicazione delle patch.
- Apporta le configurazioni aggiuntive necessarie per il job di applicazione patch o per il deployment.
- Fai clic su Esegui il deployment.
- Applicazione di patch a tutte le VM del progetto
- Applicazione di patch alle VM zona per zona
- Garantire che non più di 10 VM nella stessa zona vengano interrotte in un determinato momento
- Applicazione di patch a tutte le VM del progetto
- Applicazione di patch alle zone contemporaneamente
- Garantire che non più del 50% delle VM nella stessa zona siainterrotta in un determinato momento
- Applicazione di patch a tutte le VM nelle zone
us-central1-a
,us-central1-c
eus-central1-f
- Applicazione di patch alle zone contemporaneamente
- Garantire che non più del 25% delle istanze nella stessa zona sia interrotto in un determinato momento
- Nel menu Start di Windows, seleziona Impostazioni > Aggiornamento e sicurezza > Windows Update.
- Nella sezione Opzioni avanzate, attiva l'opzione Ricevi aggiornamenti per altri prodotti Microsoft quando aggiorni Windows.
Esamina i dettagli dell'istanza per il job di applicazione patch interessato. In questo modo puoi identificare le istanze che non sono andate a buon fine o lo stato in cui sono bloccate. L'elenco dei dettagli dell'istanza contiene anche un breve messaggio di errore per ogni istanza.
Se l'applicazione di una patch non va a buon fine con stato
NO_AGENT_DETECTED
oTIMED_OUT
, in genere significa che il servizio ha inviato una richiesta all'agente per iniziare l'applicazione della patch, ma non ha ricevuto risposta dall'agente. Esamina le seguenti possibili cause e soluzioni:- L'istanza non è in esecuzione. Per risolvere il problema, avvia l'istanza VM.
- Verifica la configurazione utilizzando l'elenco di controllo per la verifica.
- Le impostazioni di rete della rete VPC o dell'istanza non consentivano all'agente di configurazione del sistema operativo di comunicare con l'API OS Config. Per risolvere il problema, controlla le impostazioni di rete.
Se i dettagli dell'istanza non forniscono informazioni sufficienti, esamina i log di Cloud Logging o la console della porta seriale. L'agente OS Config scrive le voci di log in entrambe le posizioni. In Cloud Logging, puoi filtrare utilizzando l'ID job di applicazione patch per visualizzare tutte le voci di log relative al job di applicazione patch. Puoi anche attivare il logging di debug impostando il
osconfig-log-level=debug
valore del metadato a livello di VM o progetto Google Cloud.- Scopri di più su Patch.
- Gestisci i job di applicazione patch.
- Pianifica i job di applicazione patch.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Limitazioni
Sistemi operativi supportati
Per l'elenco completo dei sistemi operativi e delle versioni che supportano la patch, consulta Dettagli del sistema operativo.
Configura la VM
Per utilizzare la funzionalità Patch, completa i seguenti passaggi:
Autorizzazioni
I proprietari di un progetto Google Cloud hanno accesso completo per eseguire e gestire i job di patch. Per tutti gli altri utenti, devi concedere le autorizzazioni. Puoi concedere uno dei seguenti ruoli granulari:
Ad esempio, per concedere a un utente l'accesso per eseguire job di patch, utilizza il seguente comando:
gcloud projects add-iam-policy-binding project-id \ --member user:user-id@gmail.com \ --role roles/osconfig.patchJobExecutor
Sostituisci quanto segue:
Eseguire job di applicazione patch
Puoi eseguire un job di applicazione patch utilizzando la console Google Cloud, Google Cloud CLI o REST.
Quando esegui un job di applicazione patch, l'applicazione delle patch delle VM inizia contemporaneamente su tutte le istanze specificate dal filtro delle istanze.
Dopo aver avviato un job di applicazione patch, puoi monitorare le patch utilizzando la dashboard Patch. Sono necessari circa 30 minuti dall'avvio di un job di applicazione patch prima che i dati vengano compilati nella dashboard.
Console
gcloud
Utilizza il comando
os-config patch-jobs execute
per eseguire un job di applicazione patch. Sostituisciinstance-filter
con il filtro delle istanze che preferisci. Per saperne di più sui filtri delle istanze, consulta Filtri delle istanze.gcloud compute os-config patch-jobs execute instance-filter
Per ulteriori informazioni sugli aggiornamenti che vengono applicati, consulta che cosa è incluso in un job di patch del sistema operativo. Per personalizzare gli aggiornamenti, utilizza i flag facoltativi.
Esempi
Esempio 1 Per eseguire un job di applicazione patch con le seguenti configurazioni:
gcloud compute os-config patch-jobs execute \ --instance-filter-names="zones/us-east1-b/instances/instance-1" \ --description "patch for instance-1"
Esempio 2 Supponiamo che tu voglia eseguire un job di applicazione patch in modo asincrono con le seguenti configurazioni:
Dovresti eseguire il seguente comando:
gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --duration="1h30m" --reboot-config="DEFAULT" \ --apt-dist --windows-exclusive-patches=4339284 \ --yum-minimal --yum-security \ --async
REST
Nell'API, crea una richiesta
POST
per eseguire un nuovo job di applicazione patch. Devi definire esplicitamente tutti i campi di configurazione obbligatori come descritto nella documentazione dell'APIpatchJobs.execute
.Per ulteriori informazioni sugli aggiornamenti che vengono applicati, consulta cosa è incluso in un job di patch del sistema operativo. Per personalizzare gli aggiornamenti, utilizza i parametri
PatchConfig
.Ad esempio, un job di applicazione patch con solo i campi obbligatori è simile al seguente.
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter": instance-filter }
Sostituisci quanto segue:
Esempi
Esempio 1 Supponiamo che tu voglia eseguire un job di applicazione patch su un'istanza denominata
instance1
situata inus-east1-b
. In questo esempio, aggiungiamo una descrizione e specifichiamo che il job viene eseguito per 1 ora e 30 minuti. Sostituisciproject-id
con l'ID del tuo progetto.POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "description":"patch instance1 in us-east1-b", "duration":"5400s", "instanceFilter":{ "instances":[ "zones/us-east1-b/instances/instance1" ] } }
Esempio 2 Il seguente job di applicazione patch seleziona le VM con le seguenti configurazioni:
Nel comando seguente, sostituisci
project-id
con il tuo ID progetto.POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "groupLabels":[ { "labels":{ "env":"dev", "app":"web" } } ], "instanceNamePrefixes":[ "test-" ], "zones":[ "asia-east1-b", "asia-east1-c" ] } }
Esempio 3
Supponiamo che tu voglia eseguire un job di applicazione patch con le seguenti configurazioni:
Dovresti creare la seguente richiesta:
Nel comando seguente, sostituisci
project-id
con il tuo ID progetto.POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "duration":"5400s", "instanceFilter":{ "all":true }, "patchConfig":{ "rebootConfig":"DEFAULT", "apt":{ "type":"DIST" }, "yum":{ "security":true, "minimal":true }, "windowsUpdate":{ "exclusivePatches":"4339284" } } }
Filtri istanza
Puoi specificare le istanze da includere in un job di applicazione patch utilizzando i filtri. I seguenti filtri sono supportati per i job di patch:
Puoi anche eseguire job di patch su tutte le istanze di un progetto Google Cloud impostando il campo
all
ininstanceFilter
sutrue
. Per maggiori informazioni, consulta i filtri di esempio per le istanze.Esempi di filtri delle istanze
Scenario gcloud filter Filtro API Tutte le istanze di un progetto Google Cloud --instance-filter-all
{ "instanceFilter":{ "all":"true" } }
Un'istanza con il nome instance1
che si trova nella zonaus-east1-b
.--instance-filter-names="zones/us-east1-b/instances/instance1"
{ "instanceFilter":{ "instances":[ "zones/us-east1-b/instances/instance1" ] } }
Istanze con il prefisso app-
--instance-filter-name-prefixes="app-"
{ "instanceFilter":{ "instanceNamePrefixes":[ "app-" ] } }
Istanze nelle zone us-east1-b
ous-east1-c
--instance-filter-zones="us-east1-b","us-east1-c"
{ "instanceFilter":{ "zones":[ "us-east1-b", "us-east1-c" ] } }
Istanze con l'etichetta della combinazione di env=dev
eapp=web
nonché le istanze conenv=dev
eapp=worker
.--instance-filter-group-labels="env=dev,app=web" --instance-filter-group-labels="env=dev,app=worker"
{ "instanceFilter":{ "groupLabels":[ { "labels":{ "env":"dev", "app":"web" } }, { "labels":{ "env":"dev", "app":"worker" } } ] } }
Combinare i filtri delle istanze
I filtri delle istanze possono anche essere combinati. Ad esempio, per eseguire un job di applicazione patch per le istanze con il prefisso
test-
, che si trovano nella zonaus-east1-c
e che hanno le etichetteenv=dev
eapp=web
, esegui il seguente comando:gcloud compute os-config patch-jobs execute \ --instance-filter-name-prefixes="test-" \ --instance-filter-zones="us-east1-c" \ --instance-filter-group-labels="env=prod,app=web"
Configurazione della patch
Quando esegui un job di applicazione patch, puoi specificare i parametri per controllare le patch che vengono applicate alla VM. I parametri di configurazione della patch dipendono dalla piattaforma e vengono spesso trasmessi agli strumenti di aggiornamento di sistema sottostanti. I patch effettivi provengono dai repository dei pacchetti (Linux) o dal server Windows Update (Windows) configurato sulla VM.
Puoi specificare le seguenti configurazioni di patch per le tue VM:
Se vuoi, per tutti i sistemi operativi supportati puoi scegliere di installare solo le patch approvate specificando questi aggiornamenti. In questo modo puoi inserire un elenco di patch o pacchetti approvati. Quando selezioni queste patch approvate, vengono installati solo i pacchetti o le patch approvati. Tutti gli altri parametri di configurazione delle patch vengono ignorati durante l'aggiornamento.
Esempi
Console
gcloud
Ad esempio, per eseguire un job di applicazione patch su tutte le istanze della zona
northamerica-northeast1-a
con configurazioni di patch specifiche per diversi sistemi operativi, esegui il comandogcloud compute os-config patch-jobs execute
:gcloud compute os-config patch-jobs execute \ --instance-filter-zones="northamerica-northeast1-a" \ --apt-dist \ --yum-security \ --yum-minimal \ --zypper-categories=security \ --windows-classifications=critical,security \ --reboot-config=default
Per scoprire di più sulle opzioni supportate, esegui il seguente comando:
gcloud compute os-config patch-jobs execute --help
REST
Ad esempio, per eseguire un job di applicazione patch su tutte le istanze della zona
northamerica-northeast1-a
con configurazioni di patch specifiche per diversi sistemi operativi, esegui il seguente comando:POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "zones":[ "northamerica-northeast1-a" ] }, "patchConfig":{ "apt": { "type": "dist-upgrade" }, "yum": { "security": true, "minimal": true }, "zypper": { "categories": ["security"] }, "windowsUpdate": { "classifications": ["CRITICAL", "SECURITY"] }, "rebootConfig": "DEFAULT" } }
Per scoprire di più sui parametri supportati, consulta la documentazione di
PatchConfig API
.Periodo di manutenzione
Un periodo di manutenzione è la durata totale durante la quale consenti l'esecuzione di un job di applicazione patch. I job di patch avranno un timeout se non vengono completati entro il periodo di manutenzione specificato.
Ad esempio, se imposti una periodo di manutenzione di
60 minutes
, non verranno avviati nuovi job di patch 60 minuti dopo l'ora di inizio. Alcune procedure, come il download di un file o il riavvio, potrebbero verificarsi al di fuori di questa periodo di manutenzione, ma non verranno avviati nuovi job di applicazione patch.Opzioni di riavvio
Quando esegui un job di applicazione patch, puoi specificare le opzioni di riavvio per la patch. Sono disponibili le seguenti opzioni:
Script pre-applicazione e post-applicazione
Quando esegui un job di applicazione patch, puoi specificare gli script da eseguire nell'ambito della procedura di applicazione dei patch. Questi script sono utili per eseguire attività come l'arresto di un'applicazione e i controlli di integrità.
Un job di applicazione patch accetta uno script pre-applicazione e uno post-applicazione per Linux e uno script pre-applicazione e uno post-applicazione per Windows. Gli script per Linux e Windows devono essere forniti utilizzando i flag, i parametri o le sezioni appropriati, se specificati, rispettivamente da Google Cloud CLI, REST o dalla console Google Cloud. Gli script Linux vengono eseguiti solo su VM Linux e gli script Windows solo su VM Windows.
Questi file di script possono essere archiviati nella VM o in un bucket Cloud Storage con versioni. Se l'oggetto Cloud Storage non è leggibile pubblicamente, assicurati che il service account Compute Engine predefinito per il progetto Google Cloud disponga delle autorizzazioni IAM necessarie per leggere gli oggetti Cloud Storage. Per assicurarti di disporre delle autorizzazioni corrette, controlla le impostazioni di autorizzazione nell'oggetto Cloud Storage.
Se vuoi utilizzare un bucket Cloud Storage per archiviare i tuoi script, crea un bucket Cloud Storage e carica i tuoi script al suo interno.
Esempi
Console
gcloud
Ad esempio, per eseguire un job di applicazione patch su tutte le istanze nella zona
northamerica-northeast1-a
con script di pre e post patch per le istanze Linux e Windows, esegui il seguente comando:gcloud compute os-config patch-jobs execute \ --instance-filter-zones="northamerica-northeast1-a" \ --async \ --pre-patch-linux-executable="/tmp/pre_patch_script.sh" \ --post-patch-linux-executable="gs://my-patch-scripts/linux/post_patch_script#1523477886880" \ --pre-patch-windows-executable="C:\\Users\\user\\pre-patch-script.cmd" \ --post-patch-windows-executable="gs://my-patch-scripts/windows/post_patch_script.ps1#135920493447"
Per scoprire di più sui formati file accettabili, esegui il seguente comando:
gcloud compute os-config patch-jobs execute --help
REST
Ad esempio, per eseguire un job di applicazione patch su tutte le istanze nella zona
northamerica-northeast1-a
con script di pre e post patch per le istanze Linux e Windows, esegui il seguente comando:POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "zones":[ "northamerica-northeast1-a" ] }, "patchConfig":{ "preStep":{ "linuxExecStepConfig":{ "localPath":"/tmp/pre_patch_script.sh" }, "windowsExecStepConfig":{ "interpreter":"SHELL", "localPath":"C:\\Users\\user\\pre-patch-script.cmd" } }, "postStep":{ "linuxExecStepConfig":{ "gcsObject":{ "bucket":"my-patch-scripts", "generationNumber":"1523477886880", "object":"linux/post_patch_script" } }, "windowsExecStepConfig":{ "gcsObject":{ "bucket":"my-patch-scripts", "generationNumber":"135920493447", "object":"windows/post_patch_script.ps1" }, "interpreter":"POWERSHELL" } } } }
Per saperne di più sui formati file accettabili, consulta la sezione
ExecStepConfig
della documentazione dell'APIPatchConfig
.Opzioni di implementazione delle patch
Puoi scegliere di applicare le patch alle VM una zona alla volta (zona per zona) o a tutte le zone contemporaneamente (zone concorrenti).
Oltre a effettuare una selezione per l'implementazione della zona, puoi anche specificare un budget per l'interruzione della zona per le tue VM.
Budget per interruzione zona
Un budget di interruzione è il numero massimo (o la percentuale) di VM per zona da interrompere in un determinato momento.
Che cosa viene considerata una VM interrotta?
Durante l'applicazione dei patch, una VM è considerata interrotta dal momento in cui l'agente OS Config viene informato dell'inizio fino al completamento dell'applicazione dei patch. Questo tempo di interruzione include il tempo necessario per completare il riavvio ed eventuali passaggi post-patch.
Una VM viene conteggiata anche come parte del budget per le interruzioni se soddisfa una delle seguenti condizioni:
Come funzionano i budget per le interruzioni
Per gli implementazioni zona per zona, se il budget per le interruzioni in una zona viene superato, il job di applicazione patch si arresta. Questo accade perché per passare alla zona successiva è necessario completare il processo di applicazione del patch nella zona precedente.
Ad esempio, se il budget per le interruzioni ha un valore pari a 10 e non è possibile applicare la patch a 8 VM nella zona corrente, il job di applicazione patch continua ad applicare la patch a 2 VM alla volta fino al completamento della zona. Al termine della zona, l'applicazione del patch inizia con 10 VM alla volta nella zona successiva. Se l'applicazione della patch non riesce su 10 VM nella zona successiva, il job di applicazione patch si arresta.
Esempi
Console
gcloud
Esempio 1
Questo esempio mostra il comando
os-config patch-jobs execute
per l'esecuzione di un job di applicazione patch con le seguenti specifiche:gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=zone-by-zone \ --rollout-disruption-budget=10
Esempio 2
Questo esempio mostra il comando
os-config patch-jobs execute
per l'esecuzione di un job di applicazione patch con le seguenti specifiche:gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=concurrent-zones \ --rollout-disruption-budget-percent=50
REST
Questo esempio mostra il metodo
patchJobs.execute
per eseguire un job di applicazione patch con le seguenti specifiche:POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter":{ "zones":[ "us-central1-a", "us-central1-c", "us-central1-f" ] }, "rollout": { "disruptionBudget": { "percent": 25 }, "mode": "CONCURRENT_ZONES" } }
Per saperne di più sull'implementazione delle patch, consulta la documentazione dell'API
PatchRollout
.Attivare la correzione del software Microsoft sulle VM Windows
Quando esegui un job di applicazione patch su VM Windows, per impostazione predefinita Patch applica solo le patch per il sistema operativo Windows.
Quando esegui un job di applicazione patch, puoi applicare gli aggiornamenti per il software Microsoft, come Microsoft SQL Server, SharePoint Server o .NET Framework, in esecuzione sulle VM Windows. Per impostazione predefinita, l'applicazione di patch a queste applicazioni è disattivata per evitare interruzioni del servizio e separare gli aggiornamenti pianificati per questi software. Per attivare la correzione automatica del software Microsoft, puoi utilizzare l'interfaccia utente di Windows o PowerShell.
Interfaccia utente di Windows
PowerShell
$service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager' $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")
Eseguire il debug di un job di applicazione patch
Se il patch non va a buon fine, puoi utilizzare i passaggi che seguono per trovare e risolvere i problemi.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-19 UTC.
-