Auf dieser Seite wird erläutert, wie Sie eine Verbindung von einem Bitbucket Server-Host zu Cloud Build herstellen.
Hinweise
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Wenn Sie noch keine Bitbucket Server-Instanz installiert haben, finden Sie in der Bitbucket Server-Installationsanleitung eine entsprechende Anleitung.
Einrichten
Bevor Sie eine Verbindung zu Ihrem Bitbucket Server-Host herstellen, müssen Sie einen API-Schlüssel abrufen, um eingehende Ereignisse von Bitbucket Server zu authentifizieren und zu akzeptieren. Außerdem müssen Sie in Ihrem Google Cloud-Projekt IAM-Berechtigungen gewähren, um persönliche Zugriffstokens in Bitbucket Server zu erstellen, um Webhooks zu erstellen und Repository-Daten abzurufen.
API-Schlüssel abrufen
So verbinden Sie Ihren Host und authentifizieren eingehende Webhook-Ereignisse: benötigen Sie einen API-Schlüssel.
So erhalten Sie einen API-Schlüssel:
Öffnen Sie in der Google Cloud Console die Seite Anmeldedaten:
Klicken Sie auf Anmeldedaten erstellen.
Klicken Sie auf API-Schlüssel.
Es wird ein Dialogfeld mit Ihrem erstellten API-Schlüssel angezeigt. Notieren Sie sich Ihren API-Schlüssel.
Wenn Sie Ihren Schlüssel für Produktanwendungen einschränken möchten, klicken Sie auf Schlüssel einschränken, um weitere Schritte zum Schutz Ihres Schlüssels auszuführen. Klicken Sie ansonsten auf Schließen.
Informationen zum Einschränken Ihres Schlüssels finden Sie unter Einschränkungen für API-Schlüssel anwenden.
Erforderliche IAM-Berechtigungen
Zum Verbinden Ihres Bitbucket Server-Hosts weisen Sie Ihrem Nutzerkonto die Rolle Cloud Build-Bearbeiter (roles/cloudbuild.builds.editor
) und die Rolle Cloud Build-Integrationen-Inhaber (cloudbuild.integrations.owner
) zu.
Informationen zum Hinzufügen der erforderlichen Rollen zu Ihrem Nutzerkonto finden Sie unter Zugriff auf Cloud Build-Ressourcen konfigurieren. Weitere Informationen zu IAM-Rollen, die mit Cloud Build verknüpft sind, finden Sie unter IAM-Rollen und -Berechtigungen.
Persönliche Zugriffstokens erstellen
Sie müssen zwei persönliche Zugriffstokens in Bitbucket Server erstellen zum Ausführen der folgenden Aufgaben:
- Webhooks erstellen: Erstellen Sie ein persönliches Zugriffstoken mit Administratorzugriff.
- Repository-Daten abrufen: Erstellen Sie ein persönliches Zugriffstoken mit Lesezugriff. Optional können Sie ein Token erstellen, hat sowohl Lese- als auch Schreibzugriff.
Diese persönlichen Zugriffstokens sind die Mindestberechtigungen erforderlich. Möglicherweise müssen Sie weitere Berechtigungen in Bitbucket Server nach Bedarf. Beispielsweise können Sie Bitbucket Server-Konto, um nur Zugriff auf ein Teilmenge der Repositories auf Ihrem Bitbucket-Server um eine genauere Kontrolle ist in Cloud Build verfügbar.
Nachdem Sie Ihre persönlichen Zugriffstokens erstellt haben, speichern Sie Ihre Tokenwerte um eine Verbindung zu Ihrem Bitbucket Server-Repository herzustellen.
Verbindung zu einem Bitbucket-Serverhost herstellen
Console
So verbinden Sie Ihren Bitbucket Server-Host mit Cloud Build: über die Google Cloud Console:
Öffnen Sie in der Google Cloud Console die Seite Repositories:
Wähle oben auf der Seite den Tab 1. Generation aus.
Klicken Sie auf Host verbinden.
Wählen Sie Bitbucket Server aus dem Drop-down-Menü aus.
Das Steuerfeld 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 die Verbindung aus.
Name: Geben Sie einen Namen für die Verbindung ein.
Host-URL: Die Host-URL Ihrer Bitbucket-Serverinstanz. Beispiel:
https://bbs.example-test.com:7990
Google Cloud API-Schlüssel: Ihr API-Schlüssel, mit dem Ihre Anmeldedaten authentifiziert werden.
CA-Zertifikat: Ihr selbst signiertes Zertifikat. Ihr Zertifikat darf nicht größer als 10 KB und sollte im PEM-Format (
.pem
,.cer
oder.crt
) vorliegen. Wenn Sie diesen Abschnitt leer lassen, wird ein Standardsatz von Zertifikaten verwendet.Nutzername: Der Nutzername Ihres Bitbucket Server-Kontos. Dieses Konto sollte Administratorzugriff auf die Repositories haben, die Sie mit Cloud Build verbinden möchten.
Zugriffstoken mit Lesezugriff: Das persönliche Zugriffstoken Ihres Bitbucket Server-Kontos mit Leseberechtigungen.
Administratorzugriffstoken: Das persönliche Zugriffstoken Ihres Bitbucket Server-Kontos mit Administratorberechtigungen für Projekte und Repositories.
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 sind.
Privates Netzwerk: Wählen Sie diese Option aus, wenn Ihre Instanz gehostet wird. in einem privaten Netzwerk.
Projekt: Wählen Sie die Google Cloud-Projekt-ID aus.
Netzwerk: Wählen Sie im Drop-down-Menü Ihr Netzwerk aus. Wenn Sie noch kein Netzwerk erstellt haben, finden Sie unter VPC-Netzwerke erstellen und verwalten eine entsprechende Anleitung.
IP-Bereich: Geben Sie den internen IP-Bereich ein, den VMs zugewiesen werden können. innerhalb des zugewiesenen Bereichs eines Peering-Netzwerks.
Sie können den Bereich mit der CIDR-Notation (Classless Inter-Domain Routing) im Format
STARTING_IP/SUBNET_PREFIX_SIZE
angeben.192.0.2.0/24
hat beispielsweise eine Präfixlänge von 24. Die ersten 24 Bits des IP-Bereichs werden als Subnetzmaske (192.0.2.0
) verwendet. Die möglichen Hostadressen reichen von192.0.2.0
bis192.0.2.255
.Der Wert für die Präfixlänge darf
/29
nicht überschreiten. Falls nein für den Bereich angegeben wird, wird automatisch der Standardwert/24
zugewiesen. Wenn für die Präfixlänge kein Wert angegeben ist, werden IP-Adressen automatisch innerhalb des Peering-VPC-Netzwerks zugewiesen. Wenn für die IP-Adresse kein Wert angegeben ist, wird der IP-Adresse automatisch ein Bereich innerhalb des Peering-VPC-Netzwerks zugewiesen.
Klicken Sie auf Host verbinden.
Wenn sich Ihre Bitbucket Server-Instanz in einem Peering-Netzwerk befindet, wird eine Verbindung kann es einige Minuten dauern, bis der Vorgang abgeschlossen ist.
Sie werden zum Bereich Repository verbinden weitergeleitet.
Nachdem Sie eine Hostverbindung erstellt haben, werden Ihre persönlichen Zugriffstokens und das Webhook-Secret sicher in Secret Manager gespeichert. Sie können Ihre Secrets auf der Secret Manager Seite.
gcloud
So verbinden Sie Ihren Bitbucket Server-Host mit Cloud Build:
Mit gcloud
-Befehlen müssen Sie den
gcloud alpha builds enterprise-config bitbucketserver create
in Ihrem Terminal. Anders als beim Verbinden Ihres Hosts über das
Google Cloud Console verwenden möchten, müssen Sie Ihre persönlichen
Zugriffstokens und Webhook-Secrets in Secret Manager, bevor Sie den folgenden Befehl ausführen:
gcloud alpha builds enterprise-config bitbucketserver create
--name=BITBUCKET_SERVER_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:
- BITBUCKET_SERVER_CONFIG_NAME ist der Name Ihrer Bitbucket-Serverkonfiguration.
- 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
In Secret Manager gespeichertes Administrator-Zugriffstoken. Das erwartete Format für in Secret Manager gespeicherte Secrets ist
projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}
. Sie könnenlatest
als Version angeben, um die neueste Version von zu verwenden. Ihr Geheimnis. Dies gilt für jede Ressource, die in Secret Manager
- READ_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname Ihres in Secret Manager gespeichertes Zugriffstoken.
- WEBHOOK_SECRET_SECRET_VERSION ist der Ressourcenname Ihres Webhook-Secrets, das im Secret Manager gespeichert ist.
- API_KEY ist der Google Cloud API-Schlüssel.
[Optional] PEERED_NETWORK ist das VPC-Netzwerk, mit dem Ihre lokalen Bitbucket Server-Instanzen verbunden werden sollen. Weitere Informationen finden Sie unter Repositories über Bitbucket Server in einem privaten Netzwerk erstellen.
[Optional] PEERED_NETWORK_IP_RANGE ist die interne IP-Adresse. Bereich, dem VMs innerhalb des zugewiesenen Bereichs eines Peering-Netzwerks zugewiesen werden können.
SSL_CA_FILE ist der Pfad zu einer lokalen Datei, die Ihr SSL-Zertifikat enthält, das für Anfragen an den Bitbucket-Server verwendet werden soll. Das Zertifikat muss im PEM-Format vorliegen.
API
So verbinden Sie Ihren Bitbucket Server-Host mit Cloud Build: verwenden Sie die folgende JSON-Vorlage. Anders als bei der Verbindung Ihres Hosts über die Google Cloud Console müssen Sie Ihre persönlichen Zugriffstokens und das Webhook-Secret manuell im 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 in Secret Manager gespeichertes Administrator-Zugriffstoken. Ich müssen Sie möglicherweise Ihrem Konto die Rolle Accessor für Secret Manager-Secret Cloud Build-Dienst-Agent
service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com
Weitere Informationen finden Sie unter Dienstkonto die Rolle Secret Manager zuweisen.READ_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname des Lesezugriffstokens, das in Secret Manager gespeichert ist.
WEBHOOK_SECRET_SECRET_VERSION ist der Ressourcenname Ihres Webhook-Secrets, das im Secret Manager gespeichert ist.
[Optional] PEERED_NETWORK ist das VPC-Netzwerk, zu dem eine Peering-Verbindung für Ihre lokalen Bitbucket Server-Instanzen hergestellt werden soll.
Sie können den Bereich mit der CIDR-Notation (Classless Inter-Domain Routing) im Format
STARTING_IP/SUBNET_PREFIX_SIZE
angeben. Beispiel:192.0.2.0/24
hat 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 liegen zwischen192.0.2.0
und192.0.2.225
.[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" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_SERVER_CONFIG_NAME -d @config.json
Wobei:
- PROJECT_NUMBER ist die Nummer Ihres Cloud-Projekts.
- PROJECT_ID ist die ID Ihres Cloud-Projekts.
- REGION ist die Region, die Ihrer Bitbucket-Serverkonfiguration zugeordnet ist.
- BITBUCKET_SERVER_CONFIG_NAME ist der Name Ihres Bitbucket-Serverkonfiguration.
Bei erfolgreicher Ausführung enthält der Antworttext eine neu erstellte Operation-Instanz.
Geben Sie den folgenden curl
-Befehl in Ihrem 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 Nummer Ihres Cloud-Projekts.
- PROJECT_ID ist die ID Ihres Cloud-Projekts.
- REGION ist die Region, die mit Ihrer Bitbucket Server-Konfiguration verknüpft ist.
- OPERATION_ID ist die ID des Vorgangs zum Erstellen der Bitbucket Server-Konfiguration.
Möglicherweise müssen Sie den GetOperation
API-Befehl so lange ausführen, bis die Antwort done: true
enthält, was bedeutet, dass der Vorgang abgeschlossen ist. Wenn die Bitbucket Server-Konfiguration erfolgreich erstellt wurde, wird sie im Feld response.value
angezeigt. Andernfalls finden Sie im Feld error
einen detaillierten Fehlerbericht.
Nächste Schritte
- Weitere Informationen zum Verbinden eines Bitbucket Server-Repositories
- Blau/Grün-Bereitstellungen in Compute Engine ausführen