Puoi utilizzare Patch per applicare patch del sistema operativo a un gruppo di istanze di macchine virtuali (VM).
Per applicare patch alle tue VM, completa i seguenti passaggi:
Prima di iniziare
- Esamina le quote di OS Config.
-
Se non l'hai già fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in Compute Engine come segue.
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
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
- Puoi eseguire il deployment e l'esecuzione di job di applicazione patch solo per le VM in un singolo progetto Google Cloud. Non puoi eseguire job di applicazione patch tra progetti Google Cloud anche se le VM si trovano in un VPC condiviso. Tuttavia, puoi visualizzare i dati sulla conformità delle patch nei vari progetti.
- Quando applichi patch a VM che fanno parte di un gruppo di istanze gestite (MIG), si applicano le seguenti limitazioni:
- Quando un MIG ripara una VM, ricrea la VM in base al modello di istanza. Ciò potrebbe ripristinare lo stato della VM senza patch.
- L'applicazione di patch alle VM può causare risultati imprevisti in un gruppo di istanze gestite in cui è abilitata la scalabilità automatica. Il gestore della scalabilità automatica elimina le VM con patch quando il carico si riduce e crea nuove VM, senza patch, utilizzando il modello di istanza del gruppo di istanze gestite quando il carico aumenta. Ad esempio, se l'utilizzo medio della CPU è inferiore all'utilizzo target specificato per la scalabilità automatica, un gruppo di istanze gestite può rimuovere alcune 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 ed 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 applicazione patch. Contiene anche le autorizzazioni per visualizzare i dettagli dell'istanza per un job di applicazione patch.project-id
: l'ID del progetto.user-id
: il nome utente Google Workspace dell'utente.- Nella console Google Cloud, vai alla pagina Compute Engine > VM Manager > Patch.
- Fai clic su Deployment di una nuova patch.
Nella sezione VM di destinazione, 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, come in questo esempio:
- Prefisso nome:
test-
- Etichette:
env=dev
eapp=web
- Prefisso nome:
Nella sezione Configurazione patch, configura la patch.
- Specifica un nome per la patch.
- Seleziona gli aggiornamenti richiesti per il tuo sistema operativo. Per maggiori informazioni, consulta la pagina relativa alla configurazione delle patch.
Nella sezione Programmazione, completa i seguenti passaggi:
- Seleziona una pianificazione. Per eseguire immediatamente il job di applicazione patch, seleziona Avvia ora.
- (Facoltativo) Imposta una durata o un periodo di manutenzione.
Nella sezione Opzioni di implementazione, configura le opzioni di implementazione delle patch:
- Seleziona se applicare patch a una zona alla volta o a zone contemporaneamente.
- Imposta un budget per l'interruzione. Il budget di interruzione è il numero o la percentuale di VM in una zona che devono essere interrotte contemporaneamente dal processo di applicazione di patch.
(Facoltativo) Nella sezione Opzioni avanzate, puoi completare le seguenti attività:
- Seleziona un'opzione di riavvio.
- Carica script pre-applicazione e post-applicazione. Per ulteriori informazioni sugli script pre-applicazione e post-applicazione, consulta la sezione Specifica degli 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
Esegui questo comando:
- La patch deve essere eseguita su tutte le istanze del progetto.
- Il job di applicazione patch deve scadere e arrestarsi dopo 1 ora e 30 minuti.
- Le macchine devono riavviarsi in base alle impostazioni di sistema dopo l'installazione degli aggiornamenti.
- Sulle VM che eseguono Apt, l'applicazione di patch viene eseguita utilizzando
apt dist-upgrade
. - Sulle VM che eseguono Windows, applica le patch solo per l'aggiornamento
KB4339284
. - Sulle VM che eseguono Yum, l'applicazione di patch viene eseguita utilizzando l'utilità
yum update-minimal --security
. project-id
: l'ID progetto.instance-filter
: i parametri di filtro desiderati. Per saperne di più sui filtri delle istanze, consulta la pagina relativa ai filtri delle istanze.- Hanno le etichette
env=dev
eapp=web
. - Si trovano in
asia-east1-b
oasia-east1-c
. - Hanno il prefisso
test-
. - La patch deve essere eseguita su tutte le istanze del progetto.
- Il job di applicazione patch deve scadere e arrestarsi dopo 1 ora e 30 minuti. L'API richiede che il tempo sia espresso in secondi, quindi impostalo su 5400s.
- Le macchine devono riavviarsi in base alle impostazioni di sistema dopo l'installazione degli aggiornamenti.
- Sulle VM che eseguono Apt, l'applicazione di patch viene eseguita utilizzando
apt dist-upgrade
. - Sulle VM che eseguono Windows, applica le patch solo per l'aggiornamento
KB4339284
. - Sulle VM che eseguono Yum, l'applicazione di patch viene eseguita utilizzando l'utilità
yum update-minimal --security
. Filtra per nome: limita il job di applicazione patch a 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 nome: limita il job di applicazione patch alle istanze che hanno un prefisso specifico nel nome.
Filtra per zona: limita il job di applicazione patch alle istanze di una zona specifica.
Filtra per etichetta: limita il job di applicazione patch alle istanze con etichette specifiche.
- Per Windows, devi specificare la classificazione delle patch
da applicare (ad es.
Security
eCritical
) o scegliere come target kB specifici da escludere. Per ulteriori informazioni sulla classificazione delle patch, consulta la documentazione di supporto Microsoft. Per RHEL, Rocky Linux e CentOS, il sistema sottostante è
yum
.- Per le patch che hanno come target le VM RHEL e Rocky Linux, puoi specificare pacchetti
security
eminimal
. - Per le VM CentOS, non sono presenti metadati
security
nel repositoryyum
di 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 che hanno come target le VM RHEL e Rocky Linux, puoi specificare pacchetti
Per Debian e Ubuntu, il sistema di base è
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 Debian o le pagine man di Ubuntu.Per SuSE, il sistema sottostante è
zypper
, in particolare che utilizzano le patch zypper. Per le patch che hanno come target queste VM, puoi specificare opzioni come:with update
: aggiorna tutti i pacchetti non coperti dalle patchwith optional
: le patch facoltative vengono trattate secondo necessità- Categorie o 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.
- Crea le configurazioni aggiuntive necessarie per il job di applicazione patch o il deployment.
- Fai clic su Esegui il deployment.
- Valore predefinito: l'agente decide se è necessario un riavvio controllando indicatori noti su ciascun sistema operativo. Durante l'applicazione delle patch possono verificarsi più riavvii 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 è necessario un riavvio del 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 è necessario riavviare il sistema nell'ambito dell'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 per le sezioni pre-applicazione e post-applicazione. Viene visualizzata una pagina dell'oggetto Cloud Storage.
- Dalla pagina dell'oggetto Cloud Storage, seleziona il bucket Cloud Storage che contiene lo script e poi seleziona l'oggetto o il file Cloud Storage.
- Crea le configurazioni aggiuntive necessarie per il job di applicazione patch o il deployment.
- Fai clic su Esegui il deployment.
- L'operazione di patch non riesce durante l'applicazione delle patch
- L'operazione di applicazione patch non riesce durante l'esecuzione di passaggi pre o post-applicazione
- L'operazione di patch non risponde con una notifica di operazione riuscita prima del timeout
- 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:
- Seleziona se applicare patch a una zona alla volta o a tutte le zone contemporaneamente.
- Imposta il budget per l'interruzione. Il budget di interruzione è il numero o la percentuale di VM in una zona che devono essere interrotte contemporaneamente dal processo di applicazione di patch.
- Crea le configurazioni aggiuntive necessarie per il job di applicazione patch o il deployment.
- Fai clic su Esegui il deployment.
- Applicazione di patch a tutte le VM nel progetto
- Applicazione di patch alle VM zona per zona
- Assicurarsi che non più di 10 VM nella stessa zona vengano interrotte in un determinato momento
- Applicazione di patch a tutte le VM nel progetto
- Applicazione di zone in parallelo
- Assicurarsi che non più del 50% delle VM nella stessa zona siano interrotte in un determinato momento
- Applicazione di patch a tutte le VM nelle zone
us-central1-a
,us-central1-c
eus-central1-f
- Applicazione di zone in parallelo
- Assicurarsi che non più del 25% delle istanze nella stessa zona subiscano interruzioni in un determinato momento
- Nel menu Start di Windows, seleziona Impostazioni > Aggiornamento e sicurezza > Windows Update.
- Nella sezione Opzioni avanzate, attiva 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 non riuscite o lo stato in cui sono bloccate. L'elenco dei dettagli dell'istanza contiene anche un breve messaggio di errore per ogni istanza.
Se una patch non riesce con lo stato
NO_AGENT_DETECTED
oTIMED_OUT
, in genere significa che il servizio ha inviato all'agente una richiesta per iniziare l'applicazione di patch, ma non ha mai ricevuto una risposta dall'agente. Esamina le seguenti possibili cause e correzioni:- 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 sulla rete VPC o sull'istanza non consentivano all'agente OS Config 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 sue 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 correlate al job di applicazione patch. Puoi anche attivare il logging di debug impostando il valore dei metadati
osconfig-log-level=debug
a livello di VM o di progetto Google Cloud.- Scopri di più sulle Patch.
- Gestire i job di applicazione patch.
- Pianificare job di applicazione patch.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta 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 le patch, vedi 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 applicazione patch. Dovrai concedere le autorizzazioni a tutti gli altri utenti. Puoi concedere uno dei seguenti ruoli granulari:
Ad esempio, per concedere a un utente l'accesso per eseguire job di applicazione patch, usa il seguente comando:
gcloud projects add-iam-policy-binding project-id \ --member user:user-id@gmail.com \ --role roles/osconfig.patchJobExecutor
Sostituisci quanto segue:
Esegui 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 di patch delle VM viene avviata contemporaneamente su tutte le istanze specificate dal filtro istanze.
Dopo aver avviato un job di applicazione patch, puoi monitorare le patch utilizzando la dashboard delle patch. Occorrono circa 30 minuti dopo l'avvio di un job di applicazione patch prima che i dati vengano compilati nella dashboard.
Console
gcloud
Usa il comando
os-config patch-jobs execute
per eseguire un job di applicazione patch. Sostituisciinstance-filter
con il filtro di istanza che preferisci. Per saperne di più sui filtri delle istanze, consulta la pagina relativa ai filtri delle istanze.gcloud compute os-config patch-jobs execute instance-filter
Per ulteriori informazioni sugli aggiornamenti applicati, vedi cosa è incluso in un job di applicazione 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 di voler eseguire un job di applicazione patch in modo asincrono con le seguenti configurazioni:
Esegui questo 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 applicati, vedi gli elementi inclusi in un job di applicazione patch del sistema operativo. Per personalizzare gli aggiornamenti, utilizza i parametri
PatchConfig
.Ad esempio, un job di applicazione patch con solo i campi obbligatori ha il seguente aspetto.
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter": instance-filter }
Sostituisci quanto segue:
Esempi
Esempio 1 Supponiamo di voler eseguire un job di applicazione patch su un'istanza denominata
instance1
che si trova 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 il tuo ID 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 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
Supponi di voler eseguire un job di applicazione patch con le seguenti configurazioni:
Creeresti 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 dei filtri. Per i job di applicazione patch sono supportati i seguenti filtri:
Puoi anche eseguire job di applicazione patch su tutte le istanze di un progetto Google Cloud impostando il campo
all
ininstanceFilter
sutrue
. Per ulteriori informazioni, consulta gli esempi di filtri di istanza.Filtri di istanza di esempio
Scenario filtro gcloud Filtro API Tutte le istanze in 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 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" ] } }
Le istanze con l'etichetta di 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" } } ] } }
Combinazione di filtri di istanze
Puoi anche combinare i filtri delle istanze. Ad esempio, per eseguire un job di applicazione patch per le istanze che hanno il prefisso
test-
, che si trovano nella zonaus-east1-c
e hanno le etichetteenv=dev
eapp=web
, esegui questo 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 applicate alla VM. I parametri di configurazione delle patch dipendono dalla piattaforma e vengono trasmessi agli strumenti di aggiornamento Le patch effettive vengono prese dai repository di pacchetti (Linux) o dal server Windows Update (Windows) configurato sulla VM.
Puoi specificare le seguenti configurazioni di patch per le tue VM:
Facoltativamente, per tutti i sistemi operativi supportati, puoi scegliere di installare le patch approvate solo specificando questi aggiornamenti. Ciò consente di inserire un elenco di pacchetti o patch approvati. Quando selezioni queste patch approvate, vengono installati solo i pacchetti o le patch approvati. Tutti gli altri parametri di configurazione della patch vengono ignorati durante l'aggiornamento.
Esempi
Console
gcloud
Ad esempio, per eseguire un job di applicazione patch su tutte le istanze nella 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 saperne di più sulle opzioni supportate, esegui questo 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 questo 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 è il periodo di tempo totale consentito per l'esecuzione di un job di applicazione patch. I job di applicazione patch scadranno se non vengono completati entro il periodo di manutenzione specificato.
Ad esempio, se imposti un periodo di manutenzione pari a
60 minutes
, 60 minuti dopo l'ora di inizio non verranno avviati nuovi job di applicazione patch. Alcuni processi, come il download di un file o il riavvio, potrebbero avvenire al di fuori di questo 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 come parte del processo di applicazione patch. Questi script sono utili per l'esecuzione di attività come l'arresto di un'applicazione e i controlli di integrità.
Un job di applicazione patch accetta uno script pre-applicazione e uno script post-applicazione per Linux, uno script pre-applicazione e uno script post-applicazione per Windows. Gli script Linux e Windows devono essere forniti utilizzando i flag, i parametri o le sezioni appropriati se specificati rispettivamente da Google Cloud CLI, da REST o dalla console Google Cloud. Gli script Linux vengono eseguiti solo su VM Linux, mentre gli script Windows vengono eseguiti solo su VM Windows.
Questi file di script possono essere archiviati sulla VM o in un bucket Cloud Storage con versioned. Se l'oggetto Cloud Storage non è leggibile pubblicamente, assicurati che l'account di servizio 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 delle autorizzazioni 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 nel bucket.
Esempi
Console
gcloud
Ad esempio, per eseguire un job di applicazione patch su tutte le istanze della zona
northamerica-northeast1-a
con script pre e post-applicazione per le istanze Linux e Windows, esegui questo 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 saperne di più sui formati file accettati, esegui questo 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 script pre e post-applicazione per le istanze Linux e Windows, esegui questo 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 scoprire di più sui formati file accettati, consulta la sezione
ExecStepConfig
della documentazione dell'APIPatchConfig
.Opzioni di implementazione delle patch
Puoi scegliere di applicare patch a una zona alla volta per le VM (zona per zona) o a tutte le zone contemporaneamente (zone simultanee).
Oltre a selezionare 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 percentuale) di VM per zona che si interrompono in un determinato momento.
Cosa si intende per VM interrotta?
Durante l'applicazione di patch, una VM viene considerata interrotta dal momento in cui viene inviata la notifica all'agente OS Config per iniziare fino al completamento dell'applicazione. Questo tempo di interruzione include il tempo necessario per completare il riavvio ed eventuali passaggi successivi all'applicazione della patch.
Una VM viene inoltre conteggiata come parte del budget di interruzione se soddisfa una delle seguenti condizioni:
Come funzionano i budget per le interruzioni
Per le implementazioni zona per zona, se viene superato il budget di interruzione in una zona, il job di applicazione patch viene interrotto. Questo accade perché passare alla zona successiva richiede il completamento del processo di applicazione patch nella zona precedente.
Ad esempio, se il valore del budget di interruzione è 10 e l'applicazione di patch a 8 VM non riesce nella zona attuale, il job di applicazione patch continua ad applicare le patch a 2 VM alla volta fino al completamento della zona. Una volta completata la zona, l'applicazione delle patch inizia con 10 VM alla volta nella zona successiva. Se l'applicazione di patch a 10 VM nella zona successiva non riesce, 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 l'esecuzione di 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 scoprire di più sull'implementazione delle patch, consulta la documentazione dell'API
PatchRollout
.Abilita l'applicazione di patch al software Microsoft sulle VM Windows
Per impostazione predefinita, quando esegui un job di applicazione patch sulle VM Windows vengono applicate solo le patch per il sistema operativo Windows.
Puoi applicare aggiornamenti di software Microsoft come Microsoft SQL Server, SharePoint Server o .NET Framework in esecuzione sulle VM Windows quando esegui un job di applicazione patch. Per impostazione predefinita, l'applicazione di patch a queste applicazioni è disabilitata per evitare interruzioni del servizio e per separare gli aggiornamenti pianificati di questi software. Per abilitare l'applicazione automatica di patch al software Microsoft, puoi utilizzare l'interfaccia utente di Windows.
UI 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 la patch non va a buon fine, puoi seguire questi passaggi per individuare e risolvere i problemi.
Che cosa succede dopo?
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-06-25 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -