Auf dieser Seite wird erläutert, wie Sie einen Bitbucket Data Center-Host mit Cloud Build verbinden. Wenn Sie eine Verbindung zu einem Bitbucket Data Center-Host herstellen, werden Ihre Bitbucket Data Center-Repositories in Cloud Build eingebunden. So können Sie Build-Trigger konfigurieren, um Repositories über Bitbucket Data Center zu erstellen und Repositories über Bitbucket Data Center 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 Data Center-Repository bereit.
- Sie benötigen entweder eine
Dockerfileoder eine Cloud Build-Konfigurationsdatei in Ihrem Bitbucket Data Center-Quell-Repository. - Wenn Sie keine Bitbucket Data Center-Instanz installiert haben, finden Sie eine Anleitung im Installationsleitfaden für Bitbucket Data Center.
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 Data Center-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 Data Center-Instanz in einem privaten Netzwerk gehostet wird, finden Sie unter Repositories aus Bitbucket Data Center 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 Data Center-Instanz erstellen, müssen Sie persönliche Zugriffstokens in Bitbucket Data Center erstellen. Gehen Sie dazu so vor:
Melden Sie sich in Ihrer Bitbucket Data Center-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 Data Center-Repository herzustellen.
Verbindung zu einem Bitbucket Data Center-Host herstellen
Console
So verbinden Sie Ihren Bitbucket Data Center-Host mit Cloud Build über die Google Cloud -Konsole:
Ö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 Data Center aus.
Das Feld Host verbinden wird angezeigt.
Geben Sie die folgenden Informationen ein, um Ihre Bitbucket Data Center-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 Data Center-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 Data Center-Kontos. Dieses Konto sollte Administratorzugriff auf die Repositories haben, die Sie mit Cloud Build verbinden möchten.
Read access token (Lesezugriffstoken): Geben Sie das persönliche Zugriffstoken Ihres Bitbucket Data Center-Kontos mit Leseberechtigungen ein.
Admin access token (Admin-Zugriffstoken): Geben Sie das persönliche Zugriffstoken Ihres Bitbucket Data Center-Kontos mit Administratorberechtigungen für Projekte und Repositorys 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 Data Center-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 Data Center-Host mit gcloud-Befehlen mit Cloud Build verbinden möchten, müssen Sie den Befehl gcloud alpha builds enterprise-config bitbucket-data-center 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 bitbucket-data-center 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 Data Center-Konfiguration.
- USERNAME ist Ihr Bitbucket Data Center-Nutzername.
- HOST_URI ist der Host-URI Ihrer Bitbucket Data Center-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 Data Center-Instanzen herstellen möchten. Weitere Informationen finden Sie unter Repositories über Bitbucket Data Center 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 Data Center enthält. Das Zertifikat sollte im PEM-Format vorliegen.
API
Wenn Sie Ihren Bitbucket Data Center-Host über die API mit Cloud Build verbinden möchten, verwenden Sie die folgende JSON-Vorlage. 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 Data Center-Instanz.
- USERNAME ist Ihr Bitbucket Data Center-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 Data Center-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 Data Center-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 Data Center-Konfiguration zugeordnet ist.
- CONFIG_NAME ist der Name Ihrer Bitbucket Data Center-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 die Google Cloud Projektnummer.
- PROJECT_ID ist die Google Cloud -Projekt-ID.
- REGION ist die Region, die Ihrer Bitbucket Data Center-Konfiguration zugeordnet ist.
- OPERATION_ID ist die ID des Vorgangs zum Erstellen der Bitbucket Data Center-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 Data Center-Konfiguration erfolgreich erstellt wurde, können Sie sie im Feld response.value sehen. Andernfalls finden Sie im Feld error einen detaillierten Fehlerbericht.
Alte oder abgelaufene Bitbucket Data Center-Zugriffstokens rotieren
Wenn Ihr Bitbucket Data Center-Zugriffstoken abläuft, wird die Verbindung Ihres Cloud Build-Hosts zu seinem Bitbucket Data Center-Repository getrennt. Daher werden in den folgenden Fällen Fehler angezeigt:
Wenn Sie versuchen, ein Bitbucket Data Center-Repository mit einer Cloud Build-Verbindung zu verknüpfen, wird die Meldung
Failed to fetch repositories to link. Check that Cloud Build is still authorized to access data from the selected connectionangezeigt.Wenn Sie auf der Seite Trigger auf Ausführen klicken, wird die Seite Trigger ausführen geöffnet und eine
Failed to list branches. You can still enter one manually-Meldung angezeigt.
So rotieren Sie ein altes oder abgelaufenes Token für Ihre Verbindung:
So finden Sie die Secrets, die mit Ihrer Hostverbindung verknüpft sind:
Führen Sie dazu diesen Befehl aus:
gcloud builds connections describe CONNECTION_PATH --region=REGIONWobei:
- CONNECTION_PATH ist der Pfad Ihrer Bitbucket Data Center-Hostverbindung in Cloud Build im Format
projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME. - REGION ist die Region für Ihre Verbindung.
- CONNECTION_PATH ist der Pfad Ihrer Bitbucket Data Center-Hostverbindung in Cloud Build im Format
Suchen Sie in der Ausgabe des Befehls nach den Werten der Felder Ihres Nutzer-Tokens.
readAuthorizerCredential.userTokenSecretVersionist der Secret Manager-Name desRead-Tokens undauthorizerCredential.userTokenSecretVersionist der Secret Manager-Name desAdmin-Tokens. Diese Namen werden als Secrets in Secret Manager gespeichert.
Rotieren Sie jedes Zugriffstoken in Bitbucket Data Center:
Rufen Sie das Bitbucket Data Center-Repository auf, das mit Ihrer Cloud Build-Hostverbindung verbunden ist.
Folgen Sie der Anleitung in der Bitbucket-Dokumentation, um ein Zugriffstoken zu rotieren. Wenn Sie ein Token rotieren, erstellt Bitbucket Data Center ein neues Token mit neuen Anmeldedaten und macht die vorherige Version dieses Tokens ungültig. Das rotierte Token hat dieselben Berechtigungen und denselben Bereich wie das ursprüngliche Token.
Kopieren Sie die ID des rotierten Tokens.
Erstellen Sie für jedes Token eine neue Secret-Version:
Öffnen Sie in der Google Cloud Console die Seite „Secret Manager“:
Suchen Sie für jedes rotierte Token den Secret-Namen, den Sie in Schritt 1 ermittelt haben, klicken Sie auf Aktionen und dann auf Neue Version hinzufügen.
Geben Sie im Fenster Neue Version hinzufügen die ID Ihres rotierten Tokens ein und klicken Sie dann auf Neue Version hinzufügen.
Nächste Schritte
- Informationen zum Verbinden eines Bitbucket Data Center-Repositorys
- Blau/Grün-Bereitstellungen in Compute Engine durchführen