Pianifica i job di applicazione patch

Oltre a eseguire job di applicazione patch on demand, potresti voler eseguire automaticamente i job di applicazione patch in base a una pianificazione impostata creando un deployment di patch.

Ogni deployment di patch può avere una pianificazione una tantum, che esegue un job di applicazione patch in una data e un'ora specifiche, o una pianificazione ricorrente, che esegue un job di applicazione 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 applicazione patch al momento dell'esecuzione. In questo modo, le modifiche al progetto vengono acquisite in tempo reale. Supponiamo, ad esempio, che venga creato un deployment di patch per applicare patch a tutte le istanze nella zona asia-souteast1-b a partire da due settimane da oggi. Al momento della creazione della patch, nella zona erano presenti 20 istanze, ma pochi giorni dopo ne vengono aggiunte altre 40. Poiché il filtro viene applicato all'avvio della patch, vengono aggiornate tutte le 60 istanze. In questo modo, puoi aggiungere e rimuovere istanze senza dover aggiornare la pianificazione del deployment di patch.

Prima di iniziare

  • Esamina le quote di OS Config.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa alla modalità di utilizzo degli esempi in questa pagina:

    Console

    Quando utilizzi la Google Cloud console per accedere a Google Cloud servizi e API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  • Imposta una regione e una zona predefinite.
  • 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.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella Google Cloud documentazione sull'autenticazione di.

Puoi pianificare i job di applicazione patch utilizzando la Google Cloud console, Google Cloud CLI o REST.

Autorizzazioni

I proprietari di un progetto hanno accesso completo per creare e gestire i deployment di 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 di patch.
  • roles/osconfig.patchDeploymentViewer: contiene le autorizzazioni per l'accesso di sola lettura per recuperare ed elencare i deployment di patch.

Ad esempio, per concedere a un utente l'accesso amministratore ai deployment di patch, esegui questo comando:

gcloud projects add-iam-policy-binding project-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 di patch

Quando crei un deployment di patch, il nome deve soddisfare i seguenti requisiti di denominazione:

  • Ogni nome deve essere univoco all'interno di un progetto.
  • Deve contenere solo lettere minuscole, numeri e trattini.
  • Deve iniziare con una lettera.
  • Deve terminare con un numero o una lettera.
  • Deve avere una lunghezza compresa tra 1 e 63 caratteri.

In Google Cloud CLI e REST, il nome del deployment di patch viene chiamato patch-deployment-id.

Dopo aver avviato un deployment di 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

  1. Nella Google Cloud console, vai alla pagina Compute Engine > VM Manager > Patch.

    Vai alla pagina Patch

  2. Fai clic su Deployment di una nuova patch.
  3. Nella sezione VM target, seleziona la zona contenente 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 come i seguenti:

    • Prefisso nome: test-
    • Etichette: env=dev e app=web
  4. Nella sezione Configurazione della patch, configura la patch.

    1. Specifica un nome per la patch.
    2. Seleziona gli aggiornamenti richiesti per il tuo sistema operativo. Per saperne di più, consulta Che cosa è incluso in un job di applicazione patch del sistema operativo.
  5. Nella sezione Programmazione, completa quanto segue:

    • Seleziona una programmazione. Puoi pianificare un job di applicazione patch una tantum o job di applicazione patch ricorrenti.
    • (Facoltativo) Imposta una durata o un periodo di manutenzione.
  6. 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.
  7. (Facoltativo) Nella sezione Opzioni avanzate, puoi completare le seguenti attività:

  8. Fai clic su Esegui il deployment.

gcloud

Utilizza il os-config patch-deployments create comando per creare un deployment di patch.

gcloud compute os-config patch-deployments create patch-deployment-id \
    --file patch-deployment-file

Sostituisci quanto segue:

  • patch-deployment-id: il nome del deployment di patch.
  • patch-deployment-file: il percorso del file YAML o JSON che contiene le configurazioni per il deployment di patch.

Esempi di file YAML di deployment di 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 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 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'

REST

Nell'API, crea una richiesta POST per creare un nuovo deployment di patch. Devi definire esplicitamente tutti i campi di configurazione obbligatori come descritto nella patchDeployments.create documentazione dell'API. Ad esempio, un deployment di patch con i campi obbligatori minimi (filtro delle istanze e pianificazione) è simile al seguente. Sostituisci project-id con l'ID 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: il tuo ID progetto.
  • instance-filter: i parametri di filtro che preferisci. Per saperne di più sui filtri delle istanze, consulta Filtri delle istanze.
  • schedule: fornisci il parametro oneTimeSchedule o recurringSchedule che descrive i parametri di pianificazione come data, ora e frequenza di esecuzione del job di applicazione patch.

Esempi

Esempio 1: crea una pianificazione una tantum per eseguire un job di applicazione 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 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 di patch

console

  1. Nella Google Cloud console, vai alla pagina Compute Engine > VM Manager > Patch.

    Vai alla pagina Patch

  2. Seleziona la scheda Deployment pianificati.

gcloud

Utilizza il os-config patch-deployments list comando per elencare i deployment di patch.

gcloud compute os-config patch-deployments list

Questo comando restituisce tutti i deployment di 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 di patch in pagine di 2, esegui il seguente comando. Sostituisci project-id con l'ID progetto.

gcloud compute os-config patch-deployments list --limit 10 --page-size 2

REST

Nell'API, crea una richiesta GET al metodo patchDeployments.list. Sostituisci project-id con l'ID progetto.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments

Descrivi un deployment di patch

console

  1. Nella Google Cloud console, vai alla pagina Compute Engine > VM Manager > Patch.

    Vai alla pagina Patch

  2. Seleziona la scheda Deployment pianificati.
  3. Fai clic sul nome del deployment che vuoi esaminare.

gcloud

Utilizza il os-config patch-deployments describe comando per descrivere un deployment di patch. Sostituisci patch-deployment-id con il nome del deployment di patch.

gcloud compute os-config patch-deployments describe patch-deployment-id

REST

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: il tuo ID progetto.
  • patch-deployment-id: il nome del deployment di patch.

Elimina un deployment di patch

console

  1. Nella Google Cloud console, vai alla pagina Compute Engine > VM Manager > Patch.

    Vai alla pagina Patch

  2. Seleziona la scheda Deployment pianificati.
  3. Fai clic sul nome del deployment che vuoi eliminare.
  4. Fai clic su Elimina questa pianificazione.

gcloud

Utilizza il os-config patch-deployments delete comando per eliminare un deployment di patch. Sostituisci patch-deployment-id con il nome del deployment di patch.

gcloud compute os-config patch-deployments delete patch-deployment-id

REST

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: il tuo ID progetto.
  • patch-deployment-id: il nome del deployment di patch.

Passaggi successivi