Benutzerdefinierte Startskripts ausführen

Mit Cloud Workstations können Sie benutzerdefinierte Startskripts auf der VM der Hostworkstation ausführen, bevor Ihr Workstation-Container gestartet wird. Das ist nützlich, um die VM zu konfigurieren oder zusätzliche Software zu installieren, die außerhalb des Hauptarbeitsstationscontainers ausgeführt werden muss.

Hinweis

Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.

Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

gcloud init

Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud-CLI anmelden.

Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

gcloud init

Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud-CLI anmelden.

Startscript vorbereiten

Erstellen Sie das Startskript, das auf der VM der Hostworkstation ausgeführt werden soll. Beachten Sie beim Schreiben des Skripts die folgenden Richtlinien:

  1. Cloud Workstations führt den von Ihnen angegebenen Workstation-Container sowie mehrere Systemcontainer auf der Host-Workstation-VM aus, damit Ihre Workstation ordnungsgemäß funktioniert. Alle Container werden mit der containerd-Laufzeit und dem crictl-Client ausgeführt.
  2. Führen Sie alle zusätzlichen Container, die von Ihrem Startskript gestartet werden, mit containerd aus. Docker ist auf der Host-VM deaktiviert, um Beeinträchtigungen des Docker-Daemons zu verhindern, der in Ihrem Workstation-Container ausgeführt wird.
  3. Host-Container, die von Ihrem Startskript gestartet werden, können nicht mit dem Haupt-Workstation-Container interagieren. Diese direkten Interaktionen werden nicht unterstützt, da sie die IAM-Prüfungen (Identity and Access Management) umgehen.

Startskript in Cloud Storage speichern

Laden Sie das Skript in einen Cloud Storage-Bucket hoch und sorgen Sie dafür, dass das Skript über das mit Ihrer Workstation verknüpfte Dienstkonto zugänglich ist.

  1. Laden Sie Ihr Skript in einen Bucket hoch:

    gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAME
    

    Ersetzen Sie Folgendes:

    • LOCAL_SCRIPT_PATH: Der lokale Pfad zu Ihrer Startskriptdatei.
    • BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets.
    • SCRIPT_NAME: Der Name, den Sie der Skriptdatei im Bucket geben möchten.
  2. Das von Ihrer Arbeitsstationskonfiguration verwendete Dienstkonto muss Berechtigungen für den Zugriff auf den Bucket und die Skriptdatei haben. Alternativ kann das Script öffentlich zugänglich sein.

Workstationkonfiguration erstellen

Wenn Sie ein benutzerdefiniertes Startskript verwenden möchten, erstellen Sie eine Workstation-Konfiguration und geben Sie den Cloud Storage-URI Ihres Skripts an.

Console

So konfigurieren Sie ein benutzerdefiniertes Startscript, wenn Sie eine Workstationkonfiguration erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite Workstationkonfigurationen auf.

    Zu Workstationkonfigurationen

  2. Klicken Sie auf Hinzufügen Erstellen.

  3. Geben Sie auf der Seite Allgemeine Informationen einen Namen für die Konfiguration ein, wählen Sie einen Workstation-Cluster aus und klicken Sie auf Weiter.

  4. Konfigurieren Sie auf der Seite Maschineneinstellungen die Maschineneinstellungen und klicken Sie auf Weiter.

  5. Maximieren Sie auf der Seite Umgebungseinstellungen den Abschnitt Erweiterte Containeroptionen.

  6. Geben Sie im Feld Benutzerdefiniertes Startscript den Cloud Storage-Pfad zu Ihrem Startscript ein (z. B. gs://BUCKET_NAME/SCRIPT_NAME).

  7. Führen Sie die restlichen Schritte aus und klicken Sie auf Erstellen.

REST

Wenn Sie ein benutzerdefiniertes Startskript über die REST API konfigurieren möchten, erstellen Sie die Workstation-Konfiguration und legen Sie das Feld startupScriptUri in einer host.gceInstance-Nachricht auf den Cloud Storage-URI Ihres Skripts fest:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
       "host": {
         "gceInstance": {
           "poolSize": 1,
           "startupScriptUri": "gs://BUCKET_NAME/SCRIPT_NAME",
           "serviceAccount": "SERVICE_ACCOUNT"
         }
       }
     }' \
     https://workstations.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/workstationClusters/CLUSTER_ID/workstationConfigs?workstation_config_id=CONFIG_ID

Ersetzen Sie Folgendes:

  • SERVICE_ACCOUNT: die E-Mail-Adresse des Dienstkontos, das mit der Arbeitsstationskonfiguration verknüpft ist.
  • PROJECT_ID: Projekt-ID in Google Cloud .
  • LOCATION: Die Region, in der sich Ihr Workstation-Cluster befindet.
  • CLUSTER_ID: die ID Ihres Workstation-Clusters.
  • CONFIG_ID: die ID, die Sie der neuen Workstation-Konfiguration zuweisen möchten.

Skriptausführung überprüfen

Verwenden Sie eine der folgenden Methoden, um zu prüfen, ob Ihr Skript korrekt ausgeführt wurde:

  • Ausgabelogs des seriellen Ports 3: Von Ihrem Skript generierte Ausgabelogs werden automatisch an die Ausgabe des seriellen Ports 3 gesendet. Den Namen der VM, die Ihrer Workstation zugewiesen ist, finden Sie in den Plattformlogs.
  • SSH-Verbindung zur VM herstellen: Sie können eine SSH-Verbindung zur VM Ihrer Workstation herstellen, um Ihr Skript bei Bedarf weiter zu debuggen.
  • Bereitschaftsprüfungen: Startskripts sind Best-Effort-Skripts und verhindern nicht, dass Ihre Workstation gestartet wird. Wenn die Ausführung Ihres Skripts lange dauert oder fehlschlägt, wird die Workstation möglicherweise trotzdem als bereit markiert. Damit die Workstation erst als bereit markiert wird, wenn Ihr Script abgeschlossen ist, sollten Sie Bereitschaftsprüfungen implementieren.

Nächste Schritte