Builds in einem privaten Pool ausführen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

In diesem Dokument wird erläutert, wie Builds in privaten Pools ausgeführt werden. Wenn Sie private Pools noch nicht kennen, lesen Sie die Übersicht über private Pools.

Hinweis

  • Prüfen Sie, ob Sie einen privaten Pool mithilfe der Schritte unter Private Pools erstellen und verwalten erstellt haben.

  • Installieren und konfigurieren Sie die Google Cloud CLI, um die Befehlszeilenbeispiele in dieser Anleitung zu verwenden.

  • Sie können entweder dasselbe Cloud-Projekt verwenden, um Ihren privaten Worker-Pool und Ihre Cloud Build-Builds zu erstellen, oder Sie verwenden verschiedene Projekte. Wenn sich Ihre Builds in einem anderen Projekt als Ihrem privaten Pool befinden, legen Sie in der gcloud CLI das Projekt fest, aus dem Ihre Builds stammen:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

IAM-Berechtigungen

  • Wenn Sie Builds über die gcloud-Befehlszeile oder die Cloud Build API ausführen möchten, weisen Sie dem Nutzer oder Dienstkonto, das den Build anfordert, die Rolle WorkerPool-Nutzer im privaten Poolprojekt zu.

  • So führen Sie automatisierte Builds mit Triggern aus:

    • Wenn das Projekt, in dem Sie den Build starten, mit dem Projekt übereinstimmt, in dem Ihr privater Pool vorhanden ist, müssen Sie keine Berechtigungen erteilen.
    • Wenn das Projekt, in dem Sie den Build starten, nicht mit dem Projekt identisch ist, in dem Ihr privater Pool existiert, gewähren Sie dem Cloud-Build-Service-Konto des Trigger-Projekts im Workerpool-Projekt, in dem Ihre Builds erstellt werden, die Rolle WorkerPool-Benutzer:

    Console

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      Zur Seite "IAM-Berechtigungen"

    2. Wählen Sie im Drop-down-Menü zur Projektauswahl oben auf der Seite das Projekt aus, das Ihren privaten Pool enthält.

    3. Klicken Sie auf Zugriff erlauben.

    4. Geben Sie die folgenden Hauptkonto- und Rolleneinstellungen ein:

      • Hauptkonten hinzufügen: Geben Sie die standardmäßige E-Mail-Adresse des Cloud Build-Dienstkontos des Projekts ein, das den Build-Trigger enthält. Diese E-Mail-Adresse erhalten Sie so:

        1. Zur Seite "IAM"
        2. Wählen Sie das Projekt aus, das den Build-Trigger enthält.
        3. Suchen Sie in der Tabelle mit den Berechtigungen nach der E-Mail-Adresse, die mit @cloudbuild.gserviceaccount.com endet. Dies ist Ihr Cloud Build-Dienstkonto.
      • Rollen zuweisen: Wählen Sie die Cloud Build-WorkerPool-Nutzerrolle aus.

    5. Klicken Sie auf Speichern, um die neuen IAM-Berechtigungen zu speichern.

    gcloud

    So fügen Sie das Cloud Build-Standarddienstkonto aus dem Triggerprojekt zum Worker-Pool-Projekt mit der Rolle „cloudbuild.workerPoolUser“ hinzu:

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=serviceAccount:TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
          --role=roles/cloudbuild.workerPoolUser
    

    Ersetzen Sie die Platzhalterwerte im Befehl durch Folgendes:

    • PRIVATEPOOL_PROJECT_ID ist die ID des Projekts mit dem privaten Pool, der den Build ausführt.
    • TRIGGER_PROJECT_NUMBER ist die Projektnummer des Projekts mit dem Trigger, der den Build ausführt.

Builds ausführen

Sie können Builds aus demselben Cloud-Projekt senden, in dem Sie den privaten Pool erstellt haben, oder aus einem anderen Cloud-Projekt. Sie können den privaten Pool entweder in Ihrer Build-Konfigurationsdatei oder direkt im gcloud-Befehl angeben:

Privaten Pool in der Build-Konfigurationsdatei angeben:

  1. Fügen Sie in der Cloud Build-Konfigurationsdatei die Option pool hinzu und geben Sie den vollständigen Ressourcennamen des privaten Pools an, um den Build auszuführen:

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    Ersetzen Sie die Platzhalterwerte in der obigen Konfigurationsdatei durch Folgendes:

    • PRIVATEPOOL_PROJECT_ID: das Cloud-Projekt, in dem sich Ihr privater Pool befindet.
    • REGION: die Region, in der Sie den privaten Pool erstellt haben.
    • PRIVATEPOOL_ID: die eindeutige ID des privaten Pools, den Sie beim Erstellen des privaten Pools angegeben haben.
  2. Verwenden Sie die oben erstellte Build-Konfigurationsdatei, um Ihren Build über gcloud oder API oder mit Triggern auszuführen. Wenn Ihre Instanz lokal gehostet wird, bietet Cloud Build auch Unterstützung für Triggerfunktionen für mehrere externe Quellcode-Verwaltungssysteme wie GitHub Enterprise oder Bitbucket Server.

Privaten Pool im gcloud-Befehl angeben:

Sie können den privaten Pool im gcloud-Befehl statt in der Build-Konfigurationsdatei angeben. Angenommen, Sie haben die folgende Build-Konfigurationsdatei:

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

Der folgende Befehl erstellt mithilfe der Build-Konfigurationsdatei und gibt den Worker-Pool im Befehl an:

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

Ersetzen Sie die Platzhalterwerte in den obigen Befehlen durch Folgendes:

  • CONFIG_FILE: der Pfad zu Ihrer Build-Konfigurationsdatei.
  • PRIVATEPOOL_ID: die eindeutige ID des privaten Pools, den Sie beim Erstellen des privaten Pools angegeben haben.
  • PRIVATEPOOL_PROJECT_ID: das Cloud-Projekt, in dem sich Ihr privater Pool befindet.
  • REGION: die Region, in der Sie Ihren privaten Pool erstellt haben.

Nächste Schritte