Patchjobs planen


Neben der Ausführung von Patch-Jobs nach Bedarf möchten Sie vielleicht, dass Patch-Jobs nach einem festgelegten Zeitplan automatisch ausgeführt werden. Dafür erstellen Sie ein Patch-Deployment.

Jedes Patch-Deployment kann entweder zu einem einmaligen Termin ausgeführt werden, d. h. zu einem bestimmten Datum und einer bestimmten Uhrzeit, oder Sie können einen Zeitplan mit wiederkehrenden Terminen erstellen, bei dem ein Patch-Job in einem bestimmten Intervall ausgeführt wird.

Mit Instanzfiltern können Sie mehrere Instanzen gleichzeitig aktualisieren. Diese Filter werden auf jeden einzelnen Patch-Job angewendet, wenn er ausgeführt wird. Dadurch wird sichergestellt, dass Änderungen in Ihrem Projekt in Echtzeit erfasst werden. Beispiel: Sie erstellen ein Patch-Deployment, um in zwei Wochen Patches auf alle Instanzen in der Zone asia-souteast1-b anzuwenden. Beim Erstellen des Patches befanden sich 20 Instanzen in der Zone. Einige Tage später werden der Zone jedoch 40 neue Instanzen hinzugefügt. Da der Filter beim Start des Patch-Jobs, also zwei Wochen später, angewendet wird, werden alle 60 Instanzen aktualisiert. Auf diese Weise können Sie Instanzen hinzufügen und entfernen, ohne den Zeitplan für das Patch-Deployment aktualisieren zu müssen.

Hinweise

  • Prüfen Sie die OS Config-Kontingente.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich wie folgt bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Sie können Ihre Patch-Jobs mit der Google Cloud Console, Google Cloud CLI oder REST planen.

Berechtigungen

Inhaber eines Projekts haben uneingeschränkten Zugriff, um Patch-Deployments zu erstellen und zu verwalten. Für alle anderen Nutzer müssen Sie Berechtigungen erteilen. Dafür können Sie eine dieser detaillierten Rollen zuweisen:

  • roles/osconfig.patchDeploymentAdmin: Umfasst Berechtigungen zum Erstellen, Löschen, Abrufen und Auflisten von Patch-Deployments.
  • roles/osconfig.patchDeploymentViewer: Umfasst Berechtigungen für den Lesezugriff zum Abrufen und Auflisten von Patch-Deployments.

Wenn Sie beispielsweise einem Nutzer Administratorzugriff auf Patch-Deployments gewähren möchten, führen Sie den folgenden Befehl aus:

gcloud projects add-iam-policy-binding project-id \
    --member user:user-id@gmail.com \
    --role roles/osconfig.patchDeploymentAdmin

Ersetzen Sie Folgendes:

  • project-id: die Projekt-ID
  • user-id: der Google Workspace-Nutzername des Nutzers

Patch-Deployment erstellen

Beim Erstellen eines Patch-Deployments muss dessen Name die folgenden Anforderungen erfüllen:

  • Jeder Name darf innerhalb eines Projekts nur einmal vorkommen.
  • Ein Name darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.
  • Er muss mit einem Buchstaben beginnen.
  • Ein Name muss mit einer Ziffer oder einem Buchstaben enden.
  • Namen können zwischen 1 und 63 Zeichen lang sein.

In der Google Cloud CLI und REST wird der Name des Patch-Deployments als patch-deployment-id bezeichnet.

Nachdem Sie ein Patch-Deployment gestartet haben, können Sie Ihre Patches über das Patch-Dashboard überwachen. Wenn ein Patch-Job gestartet wurde, dauert es etwa 30 Minuten, bis die Daten im Dashboard erscheinen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM Manager > Patch auf.

    Zur Seite "Patch"

  2. Klicken Sie auf Neues Patch-Deployment.
  3. Wählen Sie im Bereich Ziel-VMs die Zone mit den VMs aus, die Sie patchen möchten. Sie können auch alle Zonen auswählen.

    Wenn Sie beispielsweise bestimmte VMs in den ausgewählten Zonen patchen möchten, geben Sie die Namens- und Labelfilter ähnlich den folgenden ein:

    • Namenspräfix: test-
    • Labels: env=dev und app=web
  4. Konfigurieren Sie den Patch im Abschnitt Patchkonfiguration.

    1. Geben Sie einen Namen für den Patch an.
    2. Wählen Sie die erforderlichen Updates für das Betriebssystem aus. Weitere Informationen finden Sie unter Was ist in einem OS-Patchjob enthalten.
  5. Führen Sie im Bereich Planung folgende Schritte aus:

    • Wählen Sie einen Zeitplan aus. Sie können einen einmaligen Patch-Job oder wiederholte Patch-Jobs planen.
    • Optional: Legen Sie eine Dauer oder ein Wartungsfenster fest.
  6. Konfigurieren Sie im Abschnitt Rollout-Optionen die Patch-Rollout-Optionen:

    • Wählen Sie aus, ob eine Zone nach der anderen oder Zonen gleichzeitig gepatcht werden sollen.
    • Legen Sie ein Unterbrechungsbudget fest. Ein Unterbrechungsbudget ist die Anzahl oder der Prozentsatz von VMs in einer Zone, die gleichzeitig durch den Patch-Prozess unterbrochen werden sollen.
  7. Optional: Im Abschnitt Erweiterte Optionen können Sie die folgenden Aufgaben ausführen:

  8. Klicken Sie auf Bereitstellen.

gcloud

Verwenden Sie den Befehl os-config patch-deployments create, um ein Patch-Deployment zu erstellen.

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

Ersetzen Sie Folgendes:

  • patch-deployment-id durch den Namen des Patch-Deployments.
  • patch-deployment-file durch den Pfad zur YAML- oder JSON-Datei, die die Konfigurationen für das Patch-Deployment enthält.

Beispiel einer YAML-Datei für das Patch-Deployment

Mit der folgenden Beispiel-YAML-Datei können Sie einen wiederkehrenden Zeitplan für alle Instanzen in den Zonen us-west2-b und us-west2-c erstellen. Der wiederkehrende Zeitplan hat die folgenden Spezifikationen:

  • Start ist der 9. Januar 2019 um 19:30 Uhr.
  • Ende ist der 9. Januar 2020 um 19:30 Uhr.
  • Die Zeitzone ist "America/Los_Angeles".
  • Er wird jede Woche am Dienstag ausgeführt.
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

Erstellen Sie in der API eine POST-Anfrage, um ein neues Patch-Deployment zu erstellen. Sie müssen alle erforderlichen Konfigurationsfelder, wie in der API-Dokumentation patchDeployments.create beschrieben, explizit definieren. Ein Patch-Deployment mit den mindestens erforderlichen Feldern (Instanzfilter und Zeitplan) sieht beispielsweise so aus. Ersetzen Sie dabei project-id durch Ihre Projekt-ID.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter": instance-filter

  // Add one of the following parameters:
  "recurringSchedule": schedule
  "oneTimeSchedule": schedule
}

Ersetzen Sie Folgendes:

  • project-id: Ihre Projekt-ID.
  • instance-filter sind die gewünschten Filterparameter. Weitere Informationen zu Instanzfiltern finden Sie unter Instanzfilter.
  • schedule durch entweder den Parameter oneTimeSchedule oder den Parameter recurringSchedule, die jeweils Planungseinstellungen wie Datum, Uhrzeit und Häufigkeit der Ausführung des Patch-Jobs festlegen.

Beispiele

Beispiel 1: Zeitplan für die einmalige Ausführung eines Patch-Jobs am 10. Januar 2020 um 00:00  Uhr UTC auf allen Instanzen in den Zonen us-west2-b und us-west2-c.

{
 "instanceFilter":{
   "zones":[
     "us-west2-b",
     "us-west2-c"
   ]
 },
 "oneTimeSchedule": {
   "executeTime": "2020-01-10T00:00:00Z"
 }
}

Beispiel 2: Wiederkehrender Zeitplan für alle Instanzen in den Zonen us-west2-b und us-west2-c. Der wiederkehrende Zeitplan hat die folgenden Spezifikationen:

  • Start ist der 9. Januar 2019 um 19:30 Uhr.
  • Ende ist der 9. Januar 2020 um 19:30 Uhr.
  • Die Zeitzone ist "America/Los_Angeles".
  • Er wird jede Woche am Dienstag ausgeführt.
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"
  }
}

Patch-Deployments auflisten

Console

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM Manager > Patch auf.

    Zur Seite "Patch"

  2. Wählen Sie den Tab Geplante Deployments aus.

gcloud

Verwenden Sie den Befehl os-config patch-deployments list, um Patch-Deployments aufzulisten.

gcloud compute os-config patch-deployments list

Dieser Befehl gibt alle Patch-Deployments zurück. Die Ausgabe sollte in etwa so aussehen:

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)

Sie können mehr Flags verwenden, um Ihre Suche einzuschränken und die Ergebnisse zu formatieren. Wenn Sie beispielsweise die ersten 10 Patch-Deployments auflisten möchten, jeweils 2 pro Seite, führen Sie den folgenden Befehl aus. Ersetzen Sie project-id durch Ihre Projekt-ID.

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

REST

Erstellen Sie in der API eine GET-Anfrage an die Methode patchDeployments.list. Ersetzen Sie dabei project-id durch Ihre Projekt-ID.

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

Patch-Deployment beschreiben

Console

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM Manager > Patch auf.

    Zur Seite "Patch"

  2. Wählen Sie den Tab Geplante Deployments aus.
  3. Klicken Sie auf den Namen des Deployments, das Sie überprüfen möchten.

gcloud

Verwenden Sie den Befehl os-config patch-deployments describe, um ein Patch-Deployment zu beschreiben. Ersetzen Sie dabei patch-deployment-id durch den Namen des Patch-Deployments.

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

REST

Erstellen Sie in der API eine GET-Anfrage an die Methode patchDeployments.get.

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

Ersetzen Sie Folgendes:

  • project-id durch Ihre Projekt-ID.
  • patch-deployment-id durch den Namen des Patch-Deployments.

Patch-Deployment löschen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM Manager > Patch auf.

    Zur Seite "Patch"

  2. Wählen Sie den Tab Geplante Deployments aus.
  3. Klicken Sie auf den Namen des Deployments, das Sie löschen möchten.
  4. Klicken Sie auf Diesen Zeitplan löschen.

gcloud

Verwenden Sie den Befehl os-config patch-deployments delete, um ein Patch-Deployment zu löschen. Ersetzen Sie dabei patch-deployment-id durch den Namen des Patch-Deployments.

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

REST

Erstellen Sie in der API eine DELETE-Anfrage an die Methode patchDeployments.delete.

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

Ersetzen Sie Folgendes:

  • project-id durch Ihre Projekt-ID.
  • patch-deployment-id durch den Namen des Patch-Deployments.

Nächste Schritte