Pianificare i job di applicazione patch

Oltre a l'esecuzione di job di applicazione patch on demand, potresti voler disporre di job di applicazione patch che vengono eseguiti automaticamente in base a di programmazione creando un deployment delle patch.

Ogni deployment di patch può avere una pianificazione una tantum, che esegue in una data e un'ora specifiche o in una pianificazione ricorrente, che esegue un job a un intervallo specificato.

Filtri istanza di eseguire contemporaneamente la patch di molte istanze nel tempo. 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. Questo ti consente di 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 già 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 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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

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

Autorizzazioni

I proprietari di un progetto hanno accesso completo per creare e gestire i deployment delle patch. Dovrai concedere le autorizzazioni a tutti gli altri utenti. Puoi concedere uno dei seguenti ruoli granulari:

  • roles/osconfig.patchDeploymentAdmin: contiene le autorizzazioni per creare, eliminare get ed elenca i deployment delle patch.
  • roles/osconfig.patchDeploymentViewer: contiene le autorizzazioni per accesso di sola lettura per recuperare 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-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 delle patch

Quando crei un deployment delle patch, il nome del deployment delle patch 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
  • 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, del deployment delle patch è denominato patch-deployment-id.

Dopo aver avviato il deployment di una patch, puoi monitorarle utilizzando Dashboard delle patch. Occorrono circa 30 minuti dopo l'avvio di un job di applicazione patch prima che i dati compilate nella dashboard.

console

  1. Nella console Google Cloud, vai a Compute Engine > VM Manager > Pagina Patch.

    Vai alla pagina Patch

  2. Fai clic su Deployment di una nuova patch.
  3. 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.

    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 e app=web
  4. Nella sezione Configurazione 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 patch del sistema operativo.
  5. Nella sezione Pianificazione, completa quanto segue:

  6. Nella sezione Opzioni di implementazione, configura le opzioni di implementazione delle patch:

    • Scegli se applicare patch a una zona alla volta o a zone contemporaneamente.
    • Imposta un budget di interruzione. Il budget per l'interruzione è il numero percentuale di VM in una zona che vuoi subire interruzioni contemporaneamente dal processo 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 comando os-config patch-deployments create per creare un deployment delle patch.

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

Sostituisci quanto segue:

  • patch-deployment-id: il nome della patch e deployment continuo.
  • patch-deployment-file: il percorso del file YAML File JSON che contiene le configurazioni per il deployment delle 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'

REST

Nell'API, crea una richiesta POST per creare un deployment di una nuova patch. Devi definire esplicitamente tutti i campi di configurazione obbligatori come descritto nei patchDeployments.create documentazione dell'API. Ad esempio: un deployment di patch con il numero minimo di campi obbligatori (filtro istanza 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: fornisci il oneTimeSchedule o recurringSchedule che descrive in dettaglio i parametri di pianificazione come data, ora e frequenza dell'esecuzione del job di applicazione patch.

Esempi

Esempio 1: creare 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: creare una pianificazione ricorrente per tutte le istanze nelle zone us-west2-b e us-west2-c. La pianificazione ricorrente prevede quanto segue 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"
  • Eseguita 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

console

  1. Nella console Google Cloud, vai a Compute Engine > VM Manager > Pagina Patch.

    Vai alla pagina Patch

  2. Seleziona la scheda Deployment pianificati.

gcloud

Utilizza la 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 più 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

REST

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

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

Descrivere un deployment delle patch

console

  1. Nella console Google Cloud, vai a Compute Engine > VM Manager > Pagina Patch.

    Vai alla pagina Patch

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

gcloud

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 describe patch-deployment-id

REST

Nell'API, crea una richiesta GET all'evento patchDeployments.get.

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

Sostituisci quanto segue:

  • project-id: l'ID progetto.
  • patch-deployment-id: il nome del deployment delle patch.

Eliminare un deployment delle patch

console

  1. Nella console Google Cloud, vai alla pagina Compute Engine > Gestione VM > 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 comando os-config patch-deployments delete per eliminare il deployment di una patch. Sostituisci patch-deployment-id con il nome del tuo il deployment delle 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: l'ID progetto.
  • patch-deployment-id: il nome del deployment delle patch.

Passaggi successivi