Creazione di job di applicazione patch


Puoi utilizzare Patch per applicare patch del sistema operativo a un gruppo di istanze di macchine virtuali (VM).

Per applicare le patch alle tue VM, completa i seguenti passaggi:

  1. Configura la VM.
  2. Esegui un job di applicazione patch.

Prima di iniziare

  • Esamina le quote di configurazione del sistema operativo.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    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.

Limitazioni

  • Puoi eseguire il deployment ed eseguire job di applicazione patch solo per le VM in un singolo progetto Google Cloud. Non puoi eseguire job di applicazione patch su progetti Google Cloud, anche se le VM si trovano in un VPC condiviso. Tuttavia, puoi visualizzare i dati di conformità delle patch nei vari progetti.
  • Le seguenti limitazioni si applicano quando applichi la patch a VM che fanno parte di un gruppo di istanze gestite:
    • Quando un gruppo di istanze gestite ripara una VM, la ricrea in base al modello di istanza. Questa operazione potrebbe ripristinare lo stato senza patch della VM.
    • 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 diminuisce 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, il gruppo di istanze gestite può rimuovere alcune delle VM con patch durante l'applicazione dello scale in.

Sistemi operativi supportati

Per l'elenco completo dei sistemi operativi e delle versioni che supportano la patch, vedi Dettagli del sistema operativo.

Configura la VM

Per utilizzare la funzione Patch, completa i seguenti passaggi:

  1. Per tutte le VM, configura VM Manager.
  2. 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.

Autorizzazioni

I proprietari di un progetto Google Cloud hanno accesso completo per eseguire e gestire i job di applicazione patch. Per tutti gli altri utenti, devi concedere le autorizzazioni. Puoi concedere uno dei seguenti ruoli granulari:

  • 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.

Ad esempio, per concedere a un utente l'accesso per eseguire job di applicazione 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:

  • project-id: l'ID progetto.
  • user-id: nome utente Google Workspace dell'utente.

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 istanza.

Dopo aver avviato un job di applicazione patch, puoi monitorare le patch utilizzando la dashboard delle patch. Dopo l'avvio di un job di applicazione patch, sono necessari circa 30 minuti prima che i dati vengano completati nella dashboard.

Console

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

    Vai alla pagina Patch

  2. Fai clic su Deployment di nuova patch.
  3. Nella sezione VM di destinazione, seleziona la zona che contiene le VM a cui vuoi applicare la patch. È possibile anche scegliere di selezionare tutte le zone.

    Dopo aver selezionato le zone, puoi filtrare ulteriormente le VM al suo interno.

    Ad esempio, per applicare la patch a VM specifiche nelle zone selezionate, inserisci i filtri del nome e dell'etichetta simili a quanto segue:

    • Prefisso 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 maggiori informazioni, consulta la sezione Configurazione patch.
  5. Nella sezione Pianificazione, completa i seguenti passaggi:

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

    • Scegli se applicare patch a una zona alla volta o contemporaneamente.
    • Imposta un budget per l'interruzione. Il budget per l'interruzione è il numero o la percentuale di VM in una zona che vuoi interrompere una volta sola 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-jobs execute per eseguire un job di applicazione patch. Sostituisci instance-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 maggiori informazioni su quali aggiornamenti vengono applicati, consulta Elementi inclusi 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:

  • Nome istanza: instance-1
  • Zona: us-east1-b
  • Descrizione: patch for instance-1

    Esegui il seguente comando:

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:

  • 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 in esecuzione Windows, applica patch solo per l'aggiornamento di KB4339284.
  • Sulle VM che eseguono Yum, l'applicazione di patch viene eseguita utilizzando l'utilità yum update-minimal --security.

Esegui 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'API patchJobs.execute.

Per ulteriori informazioni su quali aggiornamenti vengono applicati, consulta 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:

  • project-id: l'ID del tuo progetto.
  • instance-filter: i parametri di filtro preferiti. Per ulteriori informazioni sui filtri di istanze, consulta la pagina relativa ai filtri di istanza.

Esempi

Esempio 1 Supponiamo di voler eseguire un job di applicazione patch su un'istanza denominata instance1 che si trova in us-east1-b. In questo esempio, aggiungiamo una descrizione e specifichiamo che il job viene eseguito per 1 ora e 30 minuti. Sostituisci project-id con l'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:

  • Hanno le etichette env=dev e app=web.
  • Sono in asia-east1-b o asia-east1-c.
  • Hanno il prefisso test-.

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:

  • 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 in esecuzione Windows, applica patch solo per l'aggiornamento di KB4339284.
  • Sulle VM che eseguono Yum, l'applicazione di patch viene eseguita utilizzando l'utilità yum update-minimal --security.

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 delle istanze

Puoi specificare le istanze da includere in un job di applicazione patch utilizzando i filtri. Per i job di applicazione patch sono supportati i seguenti filtri:

  • Filtra per nome: limita il 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 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 il job di applicazione patch alle istanze con etichette specifiche.

Puoi anche eseguire job di applicazione patch su tutte le istanze in un progetto Google Cloud impostando il campo all in instanceFilter su true. Per ulteriori informazioni, consulta la sezione relativa ai filtri di istanza di esempio.

Esempi di filtri di istanza

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 zona us-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 o us-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 env=dev e app=web e le istanze con env=dev e app=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 delle istanze

I filtri delle istanze possono anche essere combinati. Ad esempio, per eseguire un job di applicazione patch per le istanze che hanno il prefisso test-, che si trovano nella zona us-east1-c e che hanno le etichette env=dev e app=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 spesso trasmessi agli strumenti di aggiornamento del sistema sottostanti. Le effettive patch 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:

  • Per Windows, devi specificare la classificazione delle patch da applicare (ad es. Security e Critical) o scegli KB specifici da escludere. Per ulteriori informazioni sulla classificazione delle patch, consulta la documentazione di assistenza Microsoft.
  • Per RHEL, Rocky Linux e CentOS, il sistema di base è yum.

    • Per le patch che hanno come target VM RHEL e Rocky Linux, puoi specificare i pacchetti security e minimal.
    • Per le VM CentOS, non esistono metadati security nel repository yum di CentOS. Pertanto, non è necessario specificare l'opzione security durante l'aggiornamento dei pacchetti di sicurezza. Se non specifichi nessun 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 Debian e Ubuntu, il sistema di base è apt. Per le patch che hanno come target queste VM, puoi specificare dist-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, utilizzando in particolare le pacchetti zypper. Per le patch che hanno come target queste VM, puoi specificare opzioni come:

    • with update: aggiorna tutti i pacchetti non coperti dalle patch
    • with optional: le patch facoltative vengono trattate come necessario
    • Le categorie o la gravità delle patch da applicare

    Puoi anche escludere patch specifiche.

Facoltativamente, per tutti i sistemi operativi supportati, puoi scegliere di installare le patch approvate solo specificando questi aggiornamenti. Questo consente di inserire un elenco di pacchetti o patch approvati. Quando selezioni queste patch approvate, vengono installati solo i pacchetti o le patch approvate. Tutti gli altri parametri di configurazione delle patch vengono ignorati durante l'aggiornamento.

Esempi

Console

  1. Segui i passaggi descritti nella scheda della console per creare un job di patch o un deployment delle patch.
  2. Nella sezione Configurazione patch, seleziona i parametri per il job di applicazione patch.
  3. Apporta eventuali configurazioni aggiuntive necessarie per il job di applicazione patch o il deployment.
  4. Fai clic su Esegui il deployment.

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 comando gcloud 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 nella 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 durante il quale consenti l'esecuzione di un job di applicazione patch. I job di applicazione patch andranno in timeout se non vengono completati entro il periodo di manutenzione specificato.

Ad esempio, se imposti un periodo di manutenzione di 60 minutes, non verrà avviato nessun nuovo job di applicazione patch 60 minuti dopo l'ora di inizio. Alcuni processi, come il download di un file o il riavvio, potrebbero verificarsi 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:

  • Predefinito: l'agente decide se è necessario riavviare controllando segnali noti su ciascun sistema operativo. Durante l'applicazione delle patch possono verificarsi più riavvii che potrebbero verificarsi prima dell'installazione di eventuali patch.
  • Sempre: la macchina si riavvia al termine dell'aggiornamento.
  • Mai: la macchina non si riavvia al termine dell'aggiornamento. In alcuni casi, ciò può significare che non tutte le patch sono state applicate completamente.

Script pre-applicazione e post-applicazione

Quando esegui un job di applicazione patch, puoi specificare gli script da eseguire nell'ambito del processo di applicazione patch. Questi script sono utili per eseguire attività come l'arresto di un'applicazione e i controlli di integrità.

  • Lo script pre-applicazione viene eseguito prima dell'inizio dell'applicazione di patch. Se è necessario un riavvio del sistema prima dell'inizio dell'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 l'applicazione di patch richiede il riavvio del sistema, lo script post-applicazione viene eseguito dopo il riavvio.

Un job di applicazione patch accetta uno script pre-applicazione e uno post-applicazione per Linux e uno 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, REST o 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 gli script nel bucket.

Esempi

Console

  1. Segui i passaggi descritti nella scheda della console per creare un job di patch o un deployment delle patch.
  2. Nella sezione Opzioni avanzate, per le sezioni pre-applicazione e post-applicazione, fai clic su Sfoglia. Viene visualizzata una pagina dell'oggetto Cloud Storage.
  3. Nella pagina dell'oggetto Cloud Storage, seleziona il bucket Cloud Storage che contiene lo script, quindi seleziona l'oggetto o il file Cloud Storage.
  4. Apporta eventuali configurazioni aggiuntive necessarie per il job di applicazione patch o il deployment.
  5. Fai clic su Esegui il deployment.

gcloud

Ad esempio, per eseguire un job di applicazione patch su tutte le istanze nella 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 ulteriori informazioni 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 nella 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'API PatchConfig.

Opzioni di implementazione delle patch

Puoi scegliere di applicare patch alle VM a una zona alla volta (zona per zona) o di applicare patch 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

Il budget di interruzione è il numero massimo (o la percentuale) di VM per zona da interrompere in un determinato momento.

Cosa è considerata una VM interrotta?

Durante l'applicazione di patch, una VM è considerata interrotta dal momento in cui l'agente OS Config riceve la notifica per iniziare fino al completamento dell'applicazione delle patch. che include il tempo necessario per completare il riavvio e gli eventuali passaggi successivi all'applicazione della patch.

Una VM viene conteggiata anche come parte del budget di interruzione se soddisfa una delle seguenti condizioni:

  • L'operazione di applicazione patch non riesce durante l'applicazione delle patch
  • L'operazione di applicazione patch non riesce durante l'esecuzione dei passaggi prima o dopo la patch
  • L'operazione di patch non risponde con una notifica di esito positivo prima del timeout

Come funzionano i budget per l'interruzione

Per le implementazioni zona per zona, se il budget di interruzione in una zona viene superato, il job di applicazione patch si interrompe. Questo accade perché il passaggio alla zona successiva richiede il completamento del processo di applicazione di patch nella zona precedente.

Ad esempio, se il budget di interruzione ha un valore pari a 10 e la patch di 8 VM non viene applicata nella zona attuale, il job di applicazione patch continua ad applicare la patch a 2 VM alla volta fino al completamento della zona. Una volta completata correttamente la zona, l'applicazione di patch inizia con 10 VM alla volta nella zona successiva. Se la patch di 10 VM nella zona successiva non viene applicata, il job di applicazione patch si arresta.

Esempi

Console

  1. Segui i passaggi descritti nella scheda della console per creare un job di patch o un deployment delle patch.
  2. Nella sezione Opzioni di implementazione, configura le opzioni di implementazione:
    • Scegli se applicare patch a una zona alla volta o a tutte le zone contemporaneamente.
    • Imposta il budget per l'interruzione. Il budget per l'interruzione è il numero o la percentuale di VM in una zona che vuoi interrompere una volta sola dal processo di applicazione delle patch.
  3. Apporta eventuali configurazioni aggiuntive necessarie per il job di applicazione patch o il deployment.
  4. Fai clic su Esegui il deployment.

gcloud

Esempio 1

Questo esempio mostra il comando os-config patch-jobs execute per eseguire un job di applicazione patch con le seguenti specifiche:

  • 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
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 eseguire un job di applicazione patch con le seguenti specifiche:

  • Applicazione di patch a tutte le VM nel progetto
  • Applicazione simultanea di zone
  • Assicurarsi che non più del 50% delle VM nella stessa zona venga interrotta in un determinato momento
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:

  • Applicazione di patch a tutte le VM nelle zone us-central1-a, us-central1-c e us-central1-f
  • Applicazione simultanea di zone
  • Assicurarsi che non più del 25% delle istanze nella stessa zona sia interrotta in un dato momento
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 per software Microsoft come Microsoft SQL Server, SharePoint Server o .NET Framework in esecuzione sulle tue 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 usare l'interfaccia utente di Windows o PowerShell.

UI Windows

  1. Nel menu Start di Windows, seleziona Impostazioni > Aggiornamento e sicurezza > Windows Update.
  2. Nella sezione Opzioni avanzate, attiva Ricevi aggiornamenti per altri prodotti Microsoft quando aggiorni Windows.

PowerShell

 $service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager'
 $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

Esegui il debug di un job di applicazione patch

Se la patch non riesce, puoi seguire i passaggi riportati di seguito per individuare e risolvere i problemi.

  1. Esamina i dettagli dell'istanza per il job di applicazione patch interessato. Ciò ti aiuta a 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 uno stato NO_AGENT_DETECTED o TIMED_OUT, in genere significa che il servizio ha inviato una richiesta all'agente per iniziare l'applicazione della patch, ma non ha mai ricevuto 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 hanno consentito all'agente OS Config di comunicare con l'API OS Config. Per risolvere il problema, controlla le impostazioni di rete.
  2. Se i dettagli dell'istanza non forniscono informazioni sufficienti, esamina i log di Cloud Logging o la console della porta di serie. L'agente OS Config scrive le proprie 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 abilitare il logging di debug impostando il valore dei metadati osconfig-log-level=debug a livello di VM o di progetto Google Cloud.

Che cosa succede dopo?