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.
Um die Befehlszeilenbeispiele in dieser Anleitung zu verwenden, installieren und Konfigurieren Sie die Google Cloud CLI.
Sie können entweder dasselbe Google 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 Worker-Pool befinden, legen Sie in der gcloud CLI das Standardprojekt auf das Projekt fest, in dem Ihre Builds stammen:
gcloud config set project BUILD_ORIGIN_PROJECT_ID
IAM-Berechtigungen
Um Builds über die gcloud CLI oder die Cloud Build API auszuführen, gewähren Sie die Rolle WorkerPool User im Projekt des privaten Pools an den Nutzer oder Dienst das den Build anfordert.
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.
Unterscheidet sich das Projekt, in dem Sie den Build starten, Projekt, in dem Ihr privater Pool vorhanden ist, gewähren Sie dem WorkerPool-Nutzer Rolle dem Dienstkonto zu, das Sie mit dem Trigger für die Worker-Pool-Projekt erstellen, in dem Ihre Builds erstellt werden:
Console
Öffnen Sie in der Google Cloud Console die Seite IAM.
Wählen Sie im Drop-down-Menü zur Projektauswahl oben auf der Seite das Projekt aus, das Ihren privaten Pool enthält.
Klicken Sie auf Zugriff erlauben.
Geben Sie die folgenden Hauptkonto- und Rolleneinstellungen ein:
Hauptkonten hinzufügen: Geben Sie die E-Mail-Adresse des Dienstkontos ein, das die Sie mit dem Trigger verwenden.
Rollen zuweisen: Wählen Sie die Rolle „Cloud Build-WorkerPool-Nutzer“ aus.
Klicken Sie auf Speichern, um die neuen IAM-Berechtigungen zu speichern.
gcloud
So fügen Sie das Build-Dienstkonto über den Trigger hinzu dem Worker-Pool-Projekt mit der Rolle „cloudbuild.workerPoolUser“ hinzu:
gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT \ --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.SERVICE_ACCOUNT
ist die E-Mail-Adresse des Dienstkontos, das Sie mit dem Trigger verwenden, der den Build ausführt.
Builds ausführen
Sie können Builds aus demselben Google Cloud-Projekt senden, in dem Sie die
aus einem privaten Pool
oder aus einem anderen Google 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:
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 Google Cloud-Projekt, in dem Ihr privaten Pool vorhanden ist.REGION
: die Region, in der Sie den privaten Pool erstellt haben.PRIVATEPOOL_ID
: die von Ihnen angegebene eindeutige private Pool-ID wenn Sie den privaten Pool erstellen.
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 von Ihnen angegebene eindeutige private Pool-ID wenn Sie den privaten Pool erstellen.PRIVATEPOOL_PROJECT_ID
: das Google Cloud-Projekt, in dem Ihr privaten Pool vorhanden ist.REGION
: die Region, in der Sie Ihren privaten Pool erstellt haben.
Nächste Schritte
- Private Pools erstellen und verwalten
- VPC Service Controls mit privaten Pools verwenden
- Weitere Informationen finden Sie unter Build-Trigger erstellen und verwalten.
- Repositories über GitHub Enterprise erstellen
- Repositories über Bitbucket Server erstellen