Sie können Patch verwenden, um Patches für Betriebssysteme auf eine Gruppe von VM-Instanzen anzuwenden.
Führen Sie die folgenden Schritte aus, um Patches auf Ihre VMs anzuwenden:
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.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Sie können Patch-Jobs nur für VMs in einem einzelnen Google Cloud-Projekt bereitstellen. Sie können Patch-Jobs nicht über Google Cloud-Projekte hinweg ausführen, auch wenn sich die VMs in einer freigegebenen VPC befinden. Sie können jedoch projektübergreifend Patch-Compliance-Daten aufrufen.
- Die folgenden Einschränkungen gelten, wenn Sie VMs patchen, die Teil einer verwalteten Instanzgruppe (Managed Instance Group, MIG) sind:
- Wenn eine verwaltete Instanzgruppe eine VM repariert, wird die VM anhand der Instanzvorlage neu erstellt. Dies kann die VM in einen nicht gepatchten Zustand zurückversetzen.
- Das Patchen von VMs kann zu unerwarteten Ergebnissen in einer MIG führen, für die Autoscaling aktiviert ist. Autoscaling löscht gepatchte VMs, wenn die Last sinkt, und erstellt neue VMs ohne Patches. Dabei wird die MIG-Instanzvorlage verwendet, wenn die Last zunimmt. Wenn beispielsweise die durchschnittliche CPU-Auslastung unter der Zielauslastung liegt, die Sie für das Autoscaling angegeben haben, kann die MIG einige der gepatchten VMs beim Herunterskalieren entfernen.
- Richten Sie für alle VMs VM-Manager ein.
- Google empfiehlt für Windows-VMs, die automatische Aktualisierung von VMs zu deaktivieren. Dadurch werden Konflikte zwischen den automatischen Windows-Updates und dem Patch-Dienst verringert.
roles/osconfig.patchJobExecutor
: Enthält Berechtigungen zum Ausführen, Abbrechen, Abrufen und Auflisten von Patch-Jobs. Enthält auch Berechtigungen zum Anzeigen von Instanzdetails für einen Patch-Job.roles/osconfig.patchJobViewer
: Enthält Berechtigungen für den Lesezugriff zum Abrufen und Auflisten von Patch-Jobs. Enthält auch Berechtigungen zum Anzeigen von Instanzdetails für einen Patch-Job.project-id
: die Projekt-IDuser-id
: der Google Workspace-Nutzername des Nutzers- Rufen Sie in der Google Cloud Console die Seite Compute Engine > VM Manager > Patch auf.
- Klicken Sie auf Neues Patch-Deployment.
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.
Nachdem Sie die Zonen ausgewählt haben, können Sie die VMs innerhalb dieser Zone weiter filtern.
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
undapp=web
- Namenspräfix:
Konfigurieren Sie den Patch im Abschnitt Patchkonfiguration.
- Geben Sie einen Namen für den Patch an.
- Wählen Sie die erforderlichen Updates für das Betriebssystem aus. Weitere Informationen finden Sie unter Patch-Konfiguration.
Führen Sie im Bereich Planung folgende Schritte aus:
- Wählen Sie einen Zeitplan aus. Wählen Sie Jetzt starten aus, um den Patch-Job sofort auszuführen.
- Optional: Legen Sie eine Dauer oder ein Wartungsfenster fest.
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.
Optional: Im Abschnitt Erweiterte Optionen können Sie die folgenden Aufgaben ausführen:
- Eine Neustartoption auswählen.
- Pre- und Post-Patch-Skripts hochladen. Weitere Informationen zu Pre- und Post-Patch-Skripts finden Sie unter Pre- und Post-Patch-Skripts festlegen.
Klicken Sie auf Bereitstellen.
- Instanzname:
instance-1
- Zone:
us-east1-b
Beschreibung:
patch for instance-1
Der gesamte Befehl sieht so aus:
- Der Patch soll auf allen Instanzen im Projekt ausgeführt werden.
- Der Patch-Job soll ein Zeitlimit haben und nach 1 Stunde und 30 Minuten stoppen.
- Die Maschinen sollen nach der Installation der Updates gemäß den Systemeinstellungen neu gestartet werden.
- Auf VMs, auf denen Apt ausgeführt wird, soll das Patching mit
apt dist-upgrade
erfolgen. - Auf VMs, auf denen Windows ausgeführt wird, sollen nur Patches für das
KB4339284
-Update angewendet werden. - Auf VMs, auf denen Yum ausgeführt wird, soll das Patching mit dem Dienstprogramm
yum update-minimal --security
erfolgen. project-id
: Ihre Projekt-ID.instance-filter
sind die gewünschten Filterparameter. Weitere Informationen zu Instanzfiltern finden Sie unter Instanzfilter.- Verwenden Sie die Labels
env=dev
undapp=web
. - Sie sind entweder in
asia-east1-b
oderasia-east1-c
. - Verwenden Sie das Präfix
test-
. - Der Patch soll auf allen Instanzen im Projekt ausgeführt werden.
- Der Patch-Job soll ein Zeitlimit haben und nach 1 Stunde und 30 Minuten stoppen. Die API erfordert, dass die Zeit in Sekunden angegeben wird. Legen Sie diesen Wert also auf 5.400 s fest.
- Die Maschinen sollen nach der Installation der Updates gemäß den Systemeinstellungen neu gestartet werden.
- Auf VMs, auf denen Apt ausgeführt wird, soll das Patching mit
apt dist-upgrade
erfolgen. - Auf VMs, auf denen Windows ausgeführt wird, sollen nur Patches für das
KB4339284
-Update angewendet werden. - Auf VMs, auf denen Yum ausgeführt wird, soll das Patching mit dem Dienstprogramm
yum update-minimal --security
erfolgen. Nach Name filtern: Beschränkt den Patch-Job auf Instanzen mit bestimmten Namen. Instanznamen müssen mit dem vollständigen URI angegeben werden. Folgende URI-Formate werden unterstützt:
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
Nach Namenspräfix filtern: Beschränkt den Patch-Job auf Instanzen mit einem bestimmten Präfix im Namen.
Nach Zone filtern: Beschränkt den Patch-Job auf Instanzen in einer bestimmten Zone.
Nach Label filtern: Beschränkt den Patch-Job auf Instanzen mit bestimmten Labels.
- Unter Windows geben Sie die Klassifizierung der anzuwendenden Patches an (z. B.
Security
undCritical
) oder zielen auf bestimmte KBs ab, die ausgeschlossen werden sollen. Weitere Informationen zur Patch-Klassifizierung finden Sie in der Dokumentation zu Microsoft-Support. Für RHEL, Rocky Linux und CentOS ist das zugrunde liegende System
yum
.- Für Patches, die auf RHEL- und Rocky Linux-VMs abzielen, können Sie
security
- undminimal
-Pakete angeben. - Für CentOS-VMs gibt es keine
security
-Metadaten im CentOSyum
-Repository. Daher müssen Sie beim Aktualisieren von Sicherheitspaketen die Optionsecurity
nicht angeben. Wenn Sie kein Paket angeben, aktualisiert der Patch-Job alle Pakete, einschließlich Paketen mit Sicherheitsupdates. - Sie können auch bestimmte Pakete ausschließen. Weitere Informationen finden Sie auf den
yum
-man-Seiten.
- Für Patches, die auf RHEL- und Rocky Linux-VMs abzielen, können Sie
Für Debian und Ubuntu ist das zugrunde liegende System
apt
. Für Patches, die auf diese VMs abzielen, können Siedist-upgrade
oder ein Standardupgrade angeben. Sie können auch bestimmte Pakete ausschließen. Weitere Informationen finden Sie auf den Debian-man-Seiten und den Ubuntu-man-Seiten.Für SuSE ist das zugrunde liegende System
zypper
. Dabei werden insbesondere Zypper-Patches verwendet. Für Patches, die auf diese VMs abzielen, können Sie z. B. folgende Optionen angeben:with update
: Alle Pakete, die nicht von Patches abgedeckt werden, werden aktualisiertwith optional
: Optionale Patches werden nach Bedarf behandelt- Die Kategorien oder Schweregrade der anzuwendenden Patches
Sie können auch bestimmte Patches ausschließen.
- Führen Sie die auf dem Tab „Console“ aufgeführten Schritte aus, um entweder einen Patch-Job oder ein Patch-Deployment zu erstellen.
- Wählen Sie im Abschnitt Patch-Konfiguration die Parameter für den Patch-Job aus.
- Nehmen Sie zusätzliche Konfigurationen vor, die für Ihren Patch-Job oder Ihr Deployment erforderlich sind.
- Klicken Sie auf Bereitstellen.
- Standardeinstellung: Der Agent entscheidet, ob ein Neustart erforderlich ist. Dazu werden bekannte Signale in jedem Betriebssystem geprüft. Während des Patchings können mehrere Neustarts erfolgen, bevor Patches installiert werden.
- Immer: Der Computer wird nach Abschluss des Updates neu gestartet.
- Nie: Der Computer wird nach Abschluss des Updates nicht neu gestartet. In einigen Fällen bedeutet dies, dass nicht alle Patches vollständig angewendet werden.
- Pre-Patch-Skripts werden vor dem Patching ausgeführt. Muss das System vor Beginn des Patchings neu gestartet werden, wird das Pre-Patch-Skript vor dem Neustart ausgeführt.
- Post-Patch-Skripts werden nach dem Patching ausgeführt. Muss das System während des Patchings neu gestartet werden, wird das Post-Patch-Skript nach dem Neustart ausgeführt.
- Führen Sie die auf dem Tab „Console“ aufgeführten Schritte aus, um entweder einen Patch-Job oder ein Patch-Deployment zu erstellen.
- Klicken Sie im Abschnitt Erweiterte Optionen für die Pre- und Post-Patch-Abschnitte auf Suchen. Eine Cloud Storage-Objektseite wird angezeigt.
- Wählen Sie auf der Cloud Storage-Objektseite den Cloud Storage-Bucket aus, der das Skript enthält, und wählen Sie dann das Cloud Storage-Objekt oder die Cloud Storage-Datei aus.
- Nehmen Sie zusätzliche Konfigurationen vor, die für Ihren Patch-Job oder Ihr Deployment erforderlich sind.
- Klicken Sie auf Bereitstellen.
- Der Patch-Vorgang schlägt bei Anwendung der Patches fehl.
- Der Patch-Vorgang schlägt fehl, wenn Schritte vor oder nach dem Patch ausgeführt werden.
- Der Patch-Vorgang sendet vor Ablauf des Zeitlimits keine Erfolgsbenachrichtigung.
- Führen Sie die auf dem Tab „Console“ aufgeführten Schritte aus, um entweder einen Patch-Job oder ein Patch-Deployment zu erstellen.
- Konfigurieren Sie im Abschnitt Rollout-Optionen die Rollout-Optionen:
- Wählen Sie aus, ob eine Zone nach der anderen oder alle Zonen gleichzeitig gepatcht werden sollen.
- Legen Sie das Unterbrechungsbudget fest. Ein Unterbrechungsbudget ist die Anzahl oder der Prozentsatz von VMs in einer Zone, die gleichzeitig durch den Patch-Prozess unterbrochen werden sollen.
- Nehmen Sie zusätzliche Konfigurationen vor, die für Ihren Patch-Job oder Ihr Deployment erforderlich sind.
- Klicken Sie auf Bereitstellen.
- Alle VMs in Ihrem Projekt patchen
- VMs nach Zone patchen
- Sicherstellen, dass zu einem bestimmten Zeitpunkt nicht mehr als 10 VMs in derselben Zone unterbrochen werden
- Alle VMs in Ihrem Projekt patchen
- Zonen gleichzeitig patchen
- Sicherstellen, dass zu einem bestimmten Zeitpunkt nicht mehr als 50 % der VMs in derselben Zone unterbrochen werden
- Alle VMs in den Zonen
us-central1-a
,us-central1-c
undus-central1-f
patchen - Zonen gleichzeitig patchen
- Sicherstellen, dass zu einem bestimmten Zeitpunkt nicht mehr als 25 % der Instanzen in derselben Zone unterbrochen werden
- Wählen Sie im Windows-Startmenü die Option Einstellungen > Update & Sicherheit > Windows Update aus.
- Aktivieren Sie im Abschnitt Erweiterte Optionen die Option Erhalten Sie Updates für andere Microsoft-Produkte, wenn Sie Windows aktualisieren.
Sehen Sie sich die Instanzdetails für den betroffenen Patch-Job an. So können Sie ermitteln, welche Instanzen einen Fehler verursacht haben oder in welchem Status sie hängen geblieben sind. Die Liste der Instanzdetails enthält außerdem eine kurze Fehlermeldung für jede Instanz.
Wenn ein Patch mit dem Status
NO_AGENT_DETECTED
oderTIMED_OUT
fehlschlägt, bedeutet dies in der Regel, dass der Dienst eine Anfrage an den Agent gesendet hat, um mit dem Patching zu beginnen, aber keine Antwort vom Agent erhalten hat. Prüfen Sie die folgenden möglichen Ursachen und Lösungen:- Die Instanz wird nicht ausgeführt. Starten Sie die VM-Instanz, um dieses Problem zu beheben.
- Prüfen Sie die Einrichtung mithilfe der Checkliste für die Bestätigung.
- Die Netzwerkeinstellungen im VPC-Netzwerk oder der Instanz haben nicht zulassen, dass der OS Config-Agent mit der OS Config API kommuniziert. Prüfen Sie die Netzwerkeinstellungen, um das Problem zu beheben.
Wenn die Instanzdetails nicht genügend Informationen liefern, sehen Sie sich die Cloud Logging-Logs oder die serielle Port-Konsole an. Der OS Config-Agent schreibt seine Logeinträge in beide Speicherorte. In Cloud Logging können Sie mit der Patch-Job-ID filtern. So können Sie alle Logeinträge anzeigen, die sich auf diesen Patch-Job beziehen. Sie können auch das Debugging-Logging aktivieren. Legen Sie dazu auf der VM- oder Google Cloud-Projektebene den Metadatenwert
osconfig-log-level=debug
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Beschränkungen
Unterstützte Betriebssysteme
Eine vollständige Liste der Betriebssysteme und Versionen, die Patch unterstützen, finden Sie unter Details zu Betriebssystemen.
VM einrichten
Führen Sie die folgenden Schritte aus, um das Patch-Feature zu verwenden:
Berechtigungen
Die Inhaber eines Google Cloud Projekts haben uneingeschränkten Zugriff auf die Ausführung und Verwaltung von Patch-Jobs. Für alle anderen Nutzer müssen Sie Berechtigungen erteilen. Dafür können Sie eine dieser detaillierten Rollen zuweisen:
Verwenden Sie beispielsweise den folgenden Befehl, um einem Nutzer Zugriff zum Ausführen von Patch-Jobs zu gewähren:
gcloud projects add-iam-policy-binding project-id \ --member user:user-id@gmail.com \ --role roles/osconfig.patchJobExecutor
Dabei gilt:
Patch-Jobs ausführen
Sie können einen Patch-Job mit dem Befehl Google Cloud Console ,Google Cloud CLI oder REST ausführen.
Wenn Sie einen Patch-Job ausführen, wird das Patching der VMs gleichzeitig für alle Instanzen gestartet, die durch den Instanzfilter festgelegt wurden.
Nachdem Sie einen Patch-Job gestartet haben, können Sie Ihre Patches im Patch-Dashboard überwachen. Wenn ein Patch-Job gestartet wurde, dauert es etwa 30 Minuten, bis die Daten im Dashboard erscheinen.
Console
gcloud
Verwenden Sie den Befehl
os-config patch-jobs execute
, um einen Patch-Job auszuführen. Ersetzen Sie dabeiinstance-filter
durch den gewünschten Instanzfilter. Weitere Informationen zu Instanzfiltern finden Sie unter Instanzfilter.gcloud compute os-config patch-jobs execute instance-filter
Weitere Informationen dazu, welche Aktualisierungen angewendet werden, finden Sie unter Was ist in einem OS-Patch-Job enthalten. Verwenden Sie zum Anpassen Ihrer Updates die optionalen Flags.
Beispiele
Beispiel 1: So führen sie einen Patch-Job mit den folgenden Konfigurationen aus:
gcloud compute os-config patch-jobs execute \ --instance-filter-names="zones/us-east1-b/instances/instance-1" \ --description "patch for instance-1"
Beispiel 2: Angenommen, Sie möchten einen Patch-Job asynchron mit den folgenden Konfigurationen ausführen:
Der gesamte Befehl sieht so aus:
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
Erstellen Sie in der API eine
POST
-Anfrage, um einen neuen Patch-Job auszuführen. Sie müssen alle erforderlichen Konfigurationsfelder, wie in der API-DokumentationpatchJobs.execute
beschrieben, explizit definieren.Weitere Informationen dazu, welche Aktualisierungen angewendet werden, finden Sie unter Dies beinhaltet ein Betriebssystem-Patch-Job. Verwenden Sie zum Anpassen Ihrer Aktualisierungen die
PatchConfig
-Parameter.Ein Patch-Job nur mit den erforderlichen Feldern sieht beispielsweise so aus:
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter": instance-filter }
Dabei gilt:
Beispiele
Beispiel 1: Angenommen, Sie möchten einen Patch-Job auf einer Instanz namens
instance1
inus-east1-b
ausführen. In diesem Beispiel fügen wir eine Beschreibung hinzu und geben an, dass der Job 1 Stunde und 30 Minuten lang ausgeführt wird. Ersetzen Sie dabeiproject-id
durch Ihre Projekt-ID.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" ] } }
Beispiel 2: Mit dem folgenden Patch-Job werden VMs mit den folgenden Konfigurationen ausgewählt:
Ersetzen Sie im folgenden Befehl
project-id
durch Ihre Projekt-ID: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" ] } }
Beispiel 3:
Angenommen, Sie möchten einen Patch-Job mit den folgenden Konfigurationen ausführen:
Sie würden die nachfolgende Anfrage stellen.
Ersetzen Sie im folgenden Befehl
project-id
durch Ihre Projekt-ID: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" } } }
Instanzfilter
Sie können mit Filtern angeben, welche Instanzen in einem Patch-Job enthalten sein sollen. Die folgenden Filter werden für Patch.Jobs unterstützt:
Sie können Patch-Jobs auch auf allen Instanzen in einem Google Cloud-Projekt ausführen. Setzen Sie dazu das Feld
all
ininstanceFilter
auftrue
. Weitere Informationen finden Sie unter Beispiele für Instanzfilter.Beispiele für Instanzfilter
Szenario gcloud-Filter API-Filter Alle Instanzen in einem Google Cloud-Projekt --instance-filter-all
{ "instanceFilter":{ "all":"true" } }
Eine Instanz mit dem Namen instance1
, die sich in der Zoneus-east1-b
befindet.--instance-filter-names="zones/us-east1-b/instances/instance1"
{ "instanceFilter":{ "instances":[ "zones/us-east1-b/instances/instance1" ] } }
Instanzen mit dem Präfix app-
--instance-filter-name-prefixes="app-"
{ "instanceFilter":{ "instanceNamePrefixes":[ "app-" ] } }
Instanzen in den Zonen us-east1-b
oderus-east1-c
--instance-filter-zones="us-east1-b","us-east1-c"
{ "instanceFilter":{ "zones":[ "us-east1-b", "us-east1-c" ] } }
Instanzen mit dem Kombinationslabel env=dev
undapp=web
sowie Instanzen mitenv=dev
undapp=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" } } ] } }
Instanzfilter kombinieren
Instanzfilter können auch kombiniert werden. Wenn Sie beispielsweise einen Patch-Job für Instanzen mit dem Präfix
test-
, die sich in der Zoneus-east1-c
befinden und die Labelsenv=dev
undapp=web
enthalten, ausführen möchten, führen Sie den folgenden Befehl aus: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"
Patchkonfiguration
Beim Ausführen eines Patch-Jobs können Sie Parameter angeben, um die Patches zu steuern, die auf die VM angewendet werden. Die Patch-Konfigurationsparameter sind plattformabhängig und werden häufig an die zugrunde liegenden Systemupdate-Tools übergeben. Die eigentlichen Patches stammen aus den Package Repositories (Linux) oder dem Windows Update-Server (Windows), der auf der VM konfiguriert ist.
Sie können die folgenden Patch-Konfigurationen für Ihre VMs angeben:
Optional können Sie für alle unterstützten Betriebssysteme festlegen, dass genehmigte Patches nur durch Angabe dieser Updates installiert werden. So können Sie eine Liste genehmigter Pakete oder Patches eingeben. Wenn Sie diese genehmigten Patches auswählen, werden nur die genehmigten Pakete oder Patches installiert. Alle anderen Patch-Konfigurationsparameter werden während des Updates übersprungen.
Beispiele
Console
gcloud
Wenn Sie beispielsweise einen Patch-Job auf allen Instanzen in der Zone
northamerica-northeast1-a
mit bestimmten Patch-Konfigurationen für verschiedene Betriebssysteme ausführen möchten, führen Sie den Befehlgcloud compute os-config patch-jobs execute
aus: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
Führen Sie den folgenden Befehl aus, um mehr über die unterstützten Optionen zu erfahren:
gcloud compute os-config patch-jobs execute --help
REST
Wenn Sie beispielsweise einen Patch-Job auf allen Instanzen in der Zone
northamerica-northeast1-a
mit bestimmten Patch-Konfigurationen für verschiedene Betriebssysteme ausführen möchten, führen Sie den folgenden Befehl aus: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" } }
Weitere Informationen zu den unterstützten Parametern finden Sie in der Dokumentation zu
PatchConfig API
.Wartungsfenster
Ein Wartungsfenster ist die Gesamtdauer, während der ein Patch-Job ausgeführt werden kann. Patch-Jobs führen zu einer Zeitüberschreitung, wenn sie nicht innerhalb des angegebenen Wartungsfensters abgeschlossen werden.
Wenn Sie beispielsweise ein Wartungsfenster von
60 minutes
festlegen, werden 60 Minuten nach der Startzeit keine neuen Patch-Jobs initiiert. Einige Prozesse wie das Herunterladen einer Datei oder ein Neustart können außerhalb dieses Wartungsfensters stattfinden, es werden jedoch keine neuen Patch-Jobs initiiert.Neustartoptionen
Beim Ausführen eines Patch-Jobs können Sie die Neustartoptionen für den Patch angeben. Folgende Optionen sind verfügbar:
Pre-Patch- und Post-Patch-Skripts
Beim Ausführen eines Patch-Jobs können Sie festlegen, dass Skripts als Teil des Patching-Prozesses ausgeführt werden. Diese Skripts sind nützlich für Aufgaben wie das Herunterfahren einer Anwendung sowie für Systemdiagnosen.
Ein Patch-Job akzeptiert ein Pre-Patch- und ein Post-Patch-Skript für Linux sowie ein Pre-Patch- und ein Post-Patch-Skript für Windows. Linux- und Windows-Scripts müssen mit den entsprechenden Flags, Parametern oder Abschnitten bereitgestellt werden, wenn sie über die Google Cloud CLI, REST oder die Google Cloud Console angegeben werden. Linux-Skripts werden nur auf Linux-VMs und Windows-Skripts nur auf Windows-VMs ausgeführt.
Diese Skriptdateien können entweder auf der VM oder in einem versionierten Cloud Storage-Bucket gespeichert werden. Wenn Ihr Cloud Storage-Objekt nicht öffentlich lesbar ist, prüfen Sie, ob das Compute Engine-Standarddienstkonto für das Google Cloud-Projekt die erforderlichen IAM-Berechtigungen zum Lesen von Cloud Storage-Objekten hat. Prüfen Sie die Berechtigungseinstellungen für das Cloud Storage-Objekt, um zu gewährleisten, dass Sie die richtigen Berechtigungen haben.
Wenn Sie Ihre Skripts in einem Cloud Storage-Bucket speichern möchten, erstellen Sie einen Cloud Storage-Bucket und laden Sie Ihre Skripts in den Bucket hoch.
Beispiele
Console
gcloud
Führen Sie beispielsweise den folgenden Befehl aus, um einen Patch-Job für alle Instanzen in der Zone
northamerica-northeast1-a
mit Pre- und Post-Patch-Skript für Linux- und Windows-Instanzen auszuführen: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"
Führen Sie den folgenden Befehl aus, um mehr über zulässige Dateiformate zu erfahren:
gcloud compute os-config patch-jobs execute --help
REST
Führen Sie beispielsweise den folgenden Befehl aus, um einen Patch-Job für alle Instanzen in der Zone
northamerica-northeast1-a
mit Pre- und Post-Patch-Skript für Linux- und Windows-Instanzen auszuführen: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" } } } }
Weitere Informationen zu zulässigen Dateiformaten finden Sie im Abschnitt
ExecStepConfig
der Dokumentation zurPatchConfig
API.Patch-Rollout-Optionen
Sie können VMs zonenweise (Zone für Zone) patchen. Alternativ ist auch das Patchen aller Zonen gleichzeitig möglich.
Sie können nicht nur eine Auswahl für den Rollout der Zone treffen, sondern auch ein Zonenunterbrechungsbudget für Ihre VMs festlegen.
Unterbrechungsbudget für Zonen
Ein Unterbrechungsbudget ist die maximale Anzahl oder der Prozentsatz der VMs pro Zone, die zu einem bestimmten Zeitpunkt unterbrochen werden sollen.
Was wird als unterbrochene VM betrachtet?
Während des Patchens gilt eine VM ab dem Zeitpunkt, zu dem der OS Config-Agent zum Starten angewiesen wird, bis zum Abschluss des Patch-Vorgangs als unterbrochen. Diese Unterbrechungszeit umfasst die Zeit für den Neustart und alle Schritte nach dem Patch.
Eine VM wird ebenfalls auf das Unterbrechungsbudget angerechnet, wenn sie eine der folgenden Bedingungen erfüllt:
Funktionsweise von Unterbrechungsbudgets
Bei zonenweisen Rollouts wird der Patch-Job beendet, wenn das Unterbrechungsbudget in einer Zone überschritten wird. Der Grund hierfür ist, dass der Patch-Vorgang in der vorherigen Zone abgeschlossen sein muss, bevor mit der nächsten Zone fortgefahren werden kann.
Wenn das Unterbrechungsbudget beispielsweise einen Wert von 10 hat und 8 VMs in der aktuellen Zone nicht gepatcht werden können, werden im Rahmen des Patch-Jobs jeweils 2 VMs gleichzeitig gepatcht, bis die Zone abgeschlossen ist. Wenn diese Zone erfolgreich abgeschlossen ist, beginnt das Patchen in der nächsten Zone mit 10 VMs gleichzeitig. Wenn 10 VMs in der nächsten Zone nicht gepatcht werden können, wird der Patch-Job beendet.
Beispiele
Console
gcloud
Beispiel 1
In diesem Beispiel sehen Sie den Befehl
os-config patch-jobs execute
zum Ausführen eines Patch-Jobs mit den folgenden Spezifikationen:gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=zone-by-zone \ --rollout-disruption-budget=10
Beispiel 2
In diesem Beispiel sehen Sie den Befehl
os-config patch-jobs execute
zum Ausführen eines Patch-Jobs mit den folgenden Spezifikationen:gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=concurrent-zones \ --rollout-disruption-budget-percent=50
REST
In diesem Beispiel sehen Sie die Methode
patchJobs.execute
zum Ausführen eines Patch-Jobs mit den folgenden Spezifikationen: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" } }
Weitere Informationen zum Patch-Rollout finden Sie in der Dokumentation zur
PatchRollout
API.Patchen von Microsoft-Software auf Windows-VMs aktivieren
Wenn Sie einen Patch-Job auf Windows-VMs ausführen, wendet Patch standardmäßig nur die Patches für das Windows-Betriebssystem an.
Sie können Updates für Microsoft-Software wie Microsoft SQL Server, SharePoint Server oder .NET Framework anwenden, die auf Ihren Windows-VMs ausgeführt wird, wenn Sie einen Patch-Job ausführen. Standardmäßig ist das Patchen dieser Anwendungen deaktiviert, um Dienstunterbrechungen zu vermeiden und geplante Updates für diese Software zu trennen. Wenn Sie das Patchen von Microsoft-Software automatisch aktivieren möchten, können Sie entweder die Windows-Benutzeroberfläche oder PowerShell verwenden.
Windows-Benutzeroberfläche
PowerShell
$service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager' $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")
Debugging eines Patch-Jobs
Wenn Ihr Patch fehlschlägt, können Sie die folgenden Schritte ausführen, um die Probleme zu finden und zu beheben.
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-09-03 (UTC).
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problem mit der Übersetzung" },{ "type": "thumb-down", "id": "otherDown", "label":"Sonstiges" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Leicht verständlich" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Mein Problem wurde gelöst" },{ "type": "thumb-up", "id": "otherUp", "label":"Sonstiges" }] -