Oltre a eseguire job di patch on demand, potresti voler eseguire job di patch automaticamente in base a una pianificazione impostata creando un deployment delle patch.
Ogni implementazione delle patch può avere una pianificazione una tantum, che esegue un job di patch in una data e un'ora specifiche, o una pianificazione ricorrente, che esegue un job di patch a un intervallo specificato.
I filtri delle istanze
ti consentono di applicare patch a più istanze contemporaneamente. Questi filtri vengono applicati a ogni singolo job di patch al momento della sua esecuzione. In questo modo, le modifiche al progetto vengono acquisite in tempo reale.
Ad esempio, supponiamo che venga creato un deployment delle patch per applicare le patch a tutte le istanze
nella zona asia-souteast1-b
a partire da due settimane. Al momento della creazione
del patch, nella zona erano presenti 20 istanze, ma alcuni giorni dopo sono state aggiunte altre 40 istanze. Poiché il filtro viene applicato al momento dell'avvio del patch, tutte le 60 istanze vengono aggiornate. In questo modo puoi aggiungere e rimuovere istanze
senza dover aggiornare la pianificazione del deployment delle patch.
Prima di iniziare
- Esamina le quote di OS Config.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API. 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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 Google Cloud sull'autenticazione.
-
Puoi pianificare i job di aggiornamento utilizzando la console Google Cloud, Google Cloud CLI o REST.
Autorizzazioni
I proprietari di un progetto hanno accesso completo per creare e gestire i deployment delle patch. Per tutti gli altri utenti, devi concedere le autorizzazioni. Puoi concedere uno dei seguenti ruoli granulari:
roles/osconfig.patchDeploymentAdmin
: contiene le autorizzazioni per creare, eliminare, recuperare ed elencare i deployment delle patch.roles/osconfig.patchDeploymentViewer
: contiene le autorizzazioni per l'accesso di sola lettura per ottenere ed elencare i deployment delle patch.
Ad esempio, per concedere a un utente amministratore l'accesso ai deployment delle patch, esegui il seguente comando:
gcloud projects add-iam-policy-bindingproject-id \ --member user:user-id @gmail.com \ --role roles/osconfig.patchDeploymentAdmin
Sostituisci quanto segue:
project-id
: l'ID progetto.user-id
: il nome utente di Google Workspace dell'utente.
Creazione di un deployment delle patch
Quando crei un deployment di patch, il nome del deployment deve soddisfare i seguenti requisiti di denominazione:
- Ogni nome deve essere univoco all'interno di un progetto
- Contiene solo lettere minuscole, numeri e trattini
- Inizia con una lettera
- Deve terminare con un numero o una lettera
- Avere una lunghezza compresa tra 1 e 63 caratteri
In Google Cloud CLI e REST, il nome del deployment della patch è chiamato patch-deployment-id
.
Dopo aver avviato il deployment delle patch, puoi monitorarle utilizzando la dashboard Patch. Sono necessari circa 30 minuti dall'avvio di un job di patch prima che i dati vengano compilati nella dashboard.
- 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.
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 saperne di più, consulta che cosa è incluso in un job di patch del sistema operativo.
Nella sezione Pianificazione, completa quanto segue:
- Seleziona una pianificazione. Puoi pianificare un job di applicazione di patch una tantum o ricorrenti.
- (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 Specificare gli script pre-applicazione e post-applicazione.
Fai clic su Esegui il deployment.
Utilizza il comando
os-config patch-deployments create
per creare un deployment delle patch.
gcloud compute os-config patch-deployments createpatch-deployment-id \ --filepatch-deployment-file
Sostituisci quanto segue:
patch-deployment-id
: il nome del deployment delle patch.patch-deployment-file
: il percorso del file YAML o JSON contenente le configurazioni per il deployment della patch.
Esempi di file YAML per il deployment delle patch
Il seguente file YAML di esempio può essere utilizzato per creare una pianificazione ricorrente per tutte le istanze nelle zone us-west2-b
e us-west2-c
. La programmazione ricorrente ha le seguenti specifiche:
- La data di inizio è il 9 gennaio 2019 alle 19:30
- La data di fine è il 9 gennaio 2020 alle ore 19:30
- Il fuso orario da utilizzare è "America/Los_Angeles"
- Viene eseguito ogni settimana di martedì
instanceFilter: zones: - us-west2-b - us-west2-c recurringSchedule: frequency: WEEKLY weekly: dayOfWeek: TUESDAY timeOfDay: hours: 19 minutes: 30 timeZone: id: America/Los_Angeles startTime: '2019-09-01T12:00:00Z' endTime: '2020-09-01T12:00:00Z'
Nell'API, crea una richiesta POST
per creare un nuovo deployment delle patch.
Devi definire esplicitamente tutti i campi di configurazione obbligatori come descritto nella documentazione dell'API patchDeployments.create
. Ad esempio, un deployment di patch con i campi minimi obbligatori (filtro delle istanze e pianificazione) è simile al seguente.
Sostituisci project-id
con l'ID del tuo progetto.
POST https://osconfig.googleapis.com/v1/projects/project-id /patchJobs:execute { "instanceFilter":instance-filter // Add one of the following parameters: "recurringSchedule":schedule "oneTimeSchedule":schedule }
Sostituisci quanto segue:
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.schedule
: specifica il parametrooneTimeSchedule
orecurringSchedule
che specifica i parametri di pianificazione come data, ora e frequenza per l'esecuzione del job di patch.
Esempi
Esempio 1: crea una pianificazione una tantum per eseguire un job di applicazione di patch il 10 gennaio 2020 alle 00:00 UTC su tutte le istanze nelle zone us-west2-b
e us-west2-c
.
{ "instanceFilter":{ "zones":[ "us-west2-b", "us-west2-c" ] }, "oneTimeSchedule": { "executeTime": "2020-01-10T00:00:00Z" } }
Esempio 2: crea una pianificazione ricorrente per tutte le istanze nelle zone us-west2-b
e us-west2-c
. La pianificazione ricorrente ha le seguenti specifiche:
- La data di inizio è il 9 gennaio 2019 alle 19:30
- La data di fine è il 9 gennaio 2020 alle ore 19:30
- Il fuso orario da utilizzare è "America/Los_Angeles"
- Viene eseguito ogni settimana di martedì
POST https://osconfig.googleapis.com/v1/projects/project-id /patchDeployments { "instanceFilter":{ "zones":[ "us-west2-b", "us-west2-c" ] }, "recurringSchedule":{ "frequency":"WEEKLY", "weekly":{ "dayOfWeek":"TUESDAY" }, "timeOfDay":{ "hours":19, "minutes":30 }, "timeZone":{ "id":"America/Los_Angeles" }, "startTime":"2019-09-01T12:00:00Z", "endTime":"2020-09-01T12:00:00Z" } }
Elenca i deployment delle patch
- Nella console Google Cloud, vai alla pagina Compute Engine > Gestione VM > Patch.
- Seleziona la scheda Deployment pianificati.
Utilizza il comando
os-config patch-deployments list
per elencare i deployment delle patch.
gcloud compute os-config patch-deployments list
Questo comando restituisce tutti i deployment delle patch. L'output è simile al seguente:
NAME LAST_RUN NEXT_RUN FREQUENCY first-deployment 2019-12-18T00:07:00.738Z --- Once: Scheduled for 2019-12-18T00:07:00.000Z my-deployment1 2020-01-05T14:00:00.228Z 2020-01-12T14:00:00Z Recurring - Weekly my-deployment2 --- 2020-01-15T05:30:00Z Recurring - Monthly on specific date(s)
Puoi utilizzare altri flag per limitare e formattare la ricerca.
Ad esempio, per elencare i primi 10 deployment delle patch in pagine da 2, esegui il seguente comando. Sostituisci project-id
con il tuo ID progetto.
gcloud compute os-config patch-deployments list --limit 10 --page-size 2
Nell'API, crea una richiesta GET
al metodo
patchDeployments.list
. Sostituisci project-id
con l'ID del tuo progetto.
GET https://osconfig.googleapis.com/v1/projects/project-id /patchDeployments
Descrivere un deployment delle patch
- Nella console Google Cloud, vai alla pagina Compute Engine > Gestione VM > Patch.
- Seleziona la scheda Deployment pianificati.
- Fai clic sul nome del deployment che vuoi esaminare.
Utilizza il comando
os-config patch-deployments describe
per descrivere il deployment di una patch. Sostituisci
patch-deployment-id
con il nome del deployment della patch.
gcloud compute os-config patch-deployments describepatch-deployment-id
Nell'API, crea una richiesta GET
al metodo
patchDeployments.get
.
GET https://osconfig.googleapis.com/v1/projects/project-id /patchDeployments/patch-deployment-id
Sostituisci quanto segue:
project-id
: l'ID del tuo progetto.patch-deployment-id
: il nome del deployment delle patch.
Eliminare un deployment delle patch
- Nella console Google Cloud, vai alla pagina Compute Engine > Gestione VM > Patch.
- Seleziona la scheda Deployment pianificati.
- Fai clic sul nome del deployment che vuoi eliminare.
- Fai clic su Elimina questa pianificazione.
Utilizza il comando
os-config patch-deployments delete
per eliminare il deployment di una patch. Sostituisci
patch-deployment-id
con il nome del
deployment della patch.
gcloud compute os-config patch-deployments deletepatch-deployment-id
Nell'API, crea una richiesta DELETE
al metodo
patchDeployments.delete
.
DELETE https://osconfig.googleapis.com/v1/projects/project-id /patchDeployments/patch-deployment-id
Sostituisci quanto segue:
project-id
: l'ID del tuo progetto.patch-deployment-id
: il nome del deployment delle patch.
Passaggi successivi
- Scopri di più su Patch.
- Crea un job di applicazione patch.
- Gestisci i job di applicazione patch.