Auf dieser Seite wird erläutert, wie Sie einen Bitbucket Server-Host mit Cloud Build verbinden. Wenn Sie eine Verbindung zu einem Bitbucket Server-Host herstellen, werden Ihre Bitbucket Server-Repositories in Cloud Build eingebunden. So können Sie Build-Trigger konfigurieren, um Repositories aus Bitbucket Server zu erstellen und Repositories aus Bitbucket Server in einem privaten Netzwerk zu erstellen.
Hinweise
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- Halten Sie Ihren Quellcode in einem Bitbucket Server-Repository bereit.
- Sie benötigen entweder eine
Dockerfileoder eine Cloud Build-Konfigurationsdatei in Ihrem Bitbucket Server-Quell-Repository. - Wenn Sie noch keine Bitbucket Server-Instanz installiert haben, finden Sie eine Anleitung im Bitbucket Server-Installationsleitfaden.
Erforderliche IAM-Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Nutzerkonto zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Herstellen einer Verbindung zu Ihrem Bitbucket Server-Host benötigen:
-
Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor) -
Inhaber von Integrationen (
roles/cloudbuild.integrations.owner)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Wenn Ihre Bitbucket Server-Instanz in einem privaten Netzwerk gehostet wird, finden Sie unter Repositories aus Bitbucket Server in einem privaten Netzwerk erstellen Informationen zu zusätzlichen IAM-Rollen, die zum Konfigurieren einer Hostverbindung erforderlich sind.
Persönliche Zugriffstokens erstellen
Bevor Sie eine Hostverbindung für Ihre Bitbucket Server-Instanz erstellen, müssen Sie persönliche Zugriffstokens in Bitbucket Server erstellen. Gehen Sie dazu so vor:
Melden Sie sich in Ihrer Bitbucket Server-Instanz an.
Folgen Sie der Anleitung, um HTTP-Zugriffstokens für Ihr Nutzerkonto zu erstellen.
Erstellen Sie ein Zugriffstoken mit dem Bereich repository admin, das zum Verbinden und Trennen von Repositories verwendet werden soll.
Erstellen Sie ein Zugriffstoken mit dem Bereich repository read, damit Cloud Build-Repositories auf Quellcode in Repositories zugreifen können.
Speichern Sie Ihre Tokenwerte sicher. Sie verwenden sie, um eine Verbindung zu Ihrem Bitbucket Server-Repository herzustellen.
Verbindung zu einem Bitbucket Server-Host herstellen
Console
So verbinden Sie Ihren Bitbucket Server-Host über die Google Cloud Console mit Cloud Build:
Öffnen Sie in der Google Cloud Console die Seite Repositories:
Wählen Sie oben auf der Seite den Tab 1. Generation aus.
Klicken Sie auf Host verbinden.
Wählen Sie im Drop-down-Menü Bitbucket Server aus.
Das Feld Host verbinden wird angezeigt.
Geben Sie die folgenden Informationen ein, um Ihre Bitbucket Server-Instanz mit Cloud Build zu verbinden:
Region: Wählen Sie die Region für Ihre Verbindung aus.
Name: Geben Sie einen Namen für die Verbindung ein.
Host-URL: Die Host-URL Ihrer Bitbucket Server-Instanz. Beispiel:
https://bbs.example-test.com:7990Google Cloud API-Schlüssel: Geben Sie den API-Schlüssel ein, der zur Authentifizierung Ihrer Anmeldedaten verwendet wird.
CA-Zertifikat: Ihr selbst signiertes Zertifikat. Ihr Zertifikat darf nicht größer als 10 KB sein und sollte das PEM-Format (
.pem,.ceroder.crt) haben. Wenn Sie diesen Abschnitt leer lassen, verwendet Google Cloud ein Zertifikat aus dem Standardsatz von Zertifikaten.Nutzername: Der Nutzername Ihres Bitbucket Server-Kontos. Dieses Konto sollte Administratorzugriff auf die Repositories haben, die Sie mit Cloud Build verbinden möchten.
Lesezugriffstoken: Geben Sie das persönliche Zugriffstoken Ihres Bitbucket Server-Kontos mit Leseberechtigungen ein.
Admin access token (Administratorzugriffstoken): Geben Sie das persönliche Zugriffstoken Ihres Bitbucket Server-Kontos mit Administratorberechtigungen für Projekte und Repositories ein.
Wählen Sie unter Netzwerktyp eine der folgenden Optionen aus:
Öffentliches Internet: Wählen Sie diese Option aus, wenn Ihre Instanz über das öffentliche Internet zugänglich ist.
Privates Netzwerk: Wählen Sie diese Option aus, wenn Ihre Instanz in einem privaten Netzwerk gehostet wird.
Projekt: Wählen Sie Ihre Google Cloud Projekt-ID aus.
Netzwerk: Wählen Sie Ihr Netzwerk aus dem Drop-down-Menü aus. Wenn Sie noch kein Netzwerk erstellt haben, finden Sie unter VPC-Netzwerke erstellen und verwalten eine Anleitung dazu.
IP-Bereich: Geben Sie den internen IP-Bereich ein, der VMs innerhalb des zugewiesenen Bereichs eines per Peering verbundenen Netzwerks zugewiesen werden kann.
Sie können den Bereich mit der CIDR-Notation (Classless Inter-Domain Routing) im Format
STARTING_IP/SUBNET_PREFIX_SIZEangeben.192.0.2.0/24hat beispielsweise eine Präfixlänge von 24. Die ersten 24 Bit des IP-Bereichs werden als Subnetzmaske (192.0.2.0) verwendet, während die möglichen Hostadressen von192.0.2.0bis192.0.2.255reichen.Der Wert für die Präfixlänge darf
/29nicht überschreiten. Wenn kein Wert für den Bereich angegeben ist, wird automatisch der Standardwert/24zugewiesen. Wenn kein Wert für die Präfixlänge angegeben ist, werden IP-Adressen automatisch im VPC-Netzwerk mit Peering zugewiesen. Wenn kein Wert für die IP-Adresse angegeben ist, wird der IP-Adresse automatisch ein Bereich innerhalb des per Peering verbundenen VPC-Netzwerk zugewiesen.
Klicken Sie auf Host verbinden.
Wenn sich die Bitbucket Server-Instanz in einem Peering-Netzwerk befindet, kann die Verbindung des Hosts einige Minuten dauern.
Sie werden zum Bereich Repository verbinden weitergeleitet.
Nachdem Sie eine Hostverbindung erstellt haben, werden Ihre persönlichen Zugriffstokens und Ihr Webhook-Secret sicher in Secret Manager gespeichert. Sie können Ihre Secrets auf der Seite Secret Manager ansehen und verwalten.
gcloud
Wenn Sie Ihren Bitbucket Server-Host mit gcloud-Befehlen mit Cloud Build verbinden möchten, müssen Sie den Befehl gcloud alpha builds enterprise-config bitbucketserver create in Ihrem Terminal ausführen. Im Gegensatz zur Verbindung Ihres Hosts über dieGoogle Cloud -Konsole müssen Sie Ihre persönlichen Zugriffstokens und das Webhook-Secret manuell in Secret Manager speichern, bevor Sie den folgenden Befehl ausführen:
gcloud alpha builds enterprise-config bitbucketserver create
--name=CONFIG_NAME \
--user-name=USERNAME \
--host-uri=HOST_URI \
--admin-access-token-secret-version=ADMIN_ACCESS_TOKEN_SECRET_VERSION \
--read-access-token-secret-version=READ_ACCESS_TOKEN_SECRET_VERSION \
--webhook-secret-secret-version=WEBHOOK_SECRET_SECRET_VERSION \
--api-key=API_KEY \
--peered-network=PEERED_NETWORK \
--peered-network-ip-range=PEERED_NETWORK_IP_RANGE \
--ssl-ca-file=SSL_CA_FILE
Wobei:
- CONFIG_NAME ist der Name Ihrer Bitbucket Server-Konfiguration.
- USERNAME ist Ihr Bitbucket Server-Nutzername.
- HOST_URI ist der Host-URI Ihrer Bitbucket Server-Instanz.
- ADMIN_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname Ihres im Secret Manager gespeicherten Administratorzugriffstokens. Das erwartete Format für in Secret Manager gespeicherte Secrets ist
projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Sie könnenlatestals Version angeben, um die neueste Version Ihres Secrets zu verwenden. Dies gilt für jede in Secret Manager gespeicherte Ressource.
- READ_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname Ihres im Secret Manager gespeicherten Lesezugriffstokens.
- WEBHOOK_SECRET_SECRET_VERSION ist der Ressourcenname Ihres im Secret Manager gespeicherten Webhook-Secrets.
- API_KEY ist der Google Cloud API-Schlüssel.
Optional: PEERED_NETWORK ist das VPC-Netzwerk, mit dem Sie eine Verbindung zu Ihren lokalen Bitbucket Server-Instanzen herstellen möchten. Weitere Informationen finden Sie unter Repositories über Bitbucket Server in einem privaten Netzwerk erstellen.
Optional: PEERED_NETWORK_IP_RANGE ist der interne IP-Bereich, der VMs innerhalb des zugewiesenen Bereichs eines Peering-Netzwerks zugewiesen werden kann.
SSL_CA_FILE ist der Pfad zu einer lokalen Datei, die Ihr SSL-Zertifikat für Anfragen an Bitbucket Server enthält. Das Zertifikat sollte im PEM-Format vorliegen.
API
Verwenden Sie die folgende JSON-Vorlage, um Ihren Bitbucket Server-Host über die API mit Cloud Build zu verbinden. Im Gegensatz zur Verbindung Ihres Hosts über die Google Cloud -Konsole müssen Sie Ihre persönlichen Zugriffstokens und das Webhook-Secret manuell in Secret Manager speichern, bevor Sie die API aufrufen:
{
"hostUri": "HOST_URI",
"username": "USERNAME",
"apiKey": "API_KEY",
"secrets": {
"adminAccessTokenVersionName": "ADMIN_ACCESS_TOKEN_SECRET_VERSION",
"readAccessTokenVersionName": "READ_ACCESS_TOKEN_SECRET_VERSION",
"webhookSecretVersionName": "WEBHOOK_SECRET_SECRET_VERSION",
},
"peeredNetwork": "PEERED_NETWORK",
"peeredNetworkIpRange": "PEERED_NETWORK_IP_RANGE",
"sslCa": "SSL_CERTIFICATE"
}
Wobei:
- HOST_URI ist der Host-URI Ihrer Bitbucket Server-Instanz.
- USERNAME ist Ihr Bitbucket Server-Nutzername.
- API_KEY ist der Google Cloud API-Schlüssel.
ADMIN_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname Ihres im Secret Manager gespeicherten Administratorzugriffstokens. Möglicherweise müssen Sie Ihrem Cloud Build-Dienst-Agenten
service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.comdie Rolle Zugriffsperson für Secret Manager-Secret zuweisen. Weitere Informationen finden Sie unter Dienstkonto die Rolle Secret Manager zuweisen.READ_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname Ihres im Secret Manager gespeicherten Lesezugriffstokens.
WEBHOOK_SECRET_SECRET_VERSION ist der Ressourcenname Ihres im Secret Manager gespeicherten Webhook-Secrets.
Optional: PEERED_NETWORK ist das VPC-Netzwerk, mit dem Ihre lokalen Bitbucket Server-Instanzen per Peering verbunden werden sollen.
Sie können den Bereich mit der CIDR-Notation (Classless Inter-Domain Routing) im Format
STARTING_IP/SUBNET_PREFIX_SIZEangeben.192.0.2.0/24hat beispielsweise eine Präfixlänge von 24. Die ersten 24 Bits des IP-Bereichs werden als Subnetzmaske (192.0.2.0) verwendet, während die möglichen Hostadressen von192.0.2.0bis192.0.2.225reichen.Optional: PEERED_NETWORK_IP_RANGE ist der interne IP-Bereich, der VMs innerhalb des zugewiesenen Bereichs eines Peering-Netzwerks zugewiesen werden kann.
Optional: SSL_CERTIFICATE ist das SSL-Zertifikat, das für Ihre lokalen Bitbucket Server-Instanzen verwendet wird.
Geben Sie den folgenden curl-Befehl in Ihr Terminal ein:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/?bitbucketServerConfigId=CONFIG_NAME -d @config.json
Wobei:
- PROJECT_ID ist die Google Cloud Projekt-ID.
- REGION ist die Region, die Ihrer Bitbucket Server-Konfiguration zugeordnet ist.
- CONFIG_NAME ist der Name Ihrer Bitbucket Server-Konfiguration.
Bei erfolgreicher Ausführung enthält der Antworttext eine neu erstellte Operation-Instanz.
Geben Sie den folgenden curl-Befehl in Ihr Terminal ein:
curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Wobei:
- PROJECT_NUMBER ist Ihre Google Cloud Projektnummer.
- PROJECT_ID ist die Google Cloud -Projekt-ID.
- REGION ist die Region, die Ihrer Bitbucket Server-Konfiguration zugeordnet ist.
- OPERATION_ID ist die ID des Vorgangs zum Erstellen der Bitbucket Server-Konfiguration.
Möglicherweise müssen Sie den API-Befehl „GetOperation“ so lange ausführen, bis die Antwort done: true enthält. Das bedeutet, dass der Vorgang abgeschlossen ist. Wenn die Bitbucket Server-Konfiguration erfolgreich erstellt wurde, sehen Sie sie im Feld response.value. Andernfalls finden Sie im Feld error einen detaillierten Fehlerbericht.