Verbindung zu einem Bitbucket-Rechenzentrums-Host herstellen

Auf dieser Seite wird erläutert, wie Sie eine Verbindung zu einem Bitbucket-Rechenzentrum-Host mit Cloud Build herstellen.

Hinweis

  • Cloud Build, Secret Manager, and Compute Engine APIs aktivieren.

    Aktivieren Sie die APIs

Einrichten

Bevor Sie Ihren Bitbucket Data Center-Host verbinden, müssen Sie einen API-Schlüssel abrufen, um eingehende Ereignisse vom Bitbucket Data Center zu authentifizieren und zu akzeptieren. Außerdem müssen Sie in Ihrem Google Cloud-Projekt IAM-Berechtigungen erteilen, um persönliche Zugriffstokens im Bitbucket-Rechenzentrum zu erstellen und so Webhooks zu erstellen und Repository-Daten abzurufen.

API-Schlüssel abrufen

Wenn Sie Ihre Host-Repositories verbinden und eingehende Webhook-Ereignisse authentifizieren möchten, benötigen Sie einen API-Schlüssel.

So erhalten Sie einen API-Schlüssel:

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

    Öffnen Sie die Seite Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen.

  3. Klicken Sie auf API-Schlüssel.

    Es wird ein Dialogfeld mit Ihrem erstellten API-Schlüssel angezeigt. Notieren Sie sich Ihren API-Schlüssel.

  4. 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.

Persönliche Zugriffstokens erstellen

Sie müssen zwei persönliche Zugriffstokens in Bitbucket-Rechenzentrum erstellen, um die folgenden Aufgaben auszuführen:

Diese persönlichen Zugriffstokens sind die erforderlichen Mindestberechtigungen. Sie können in Bitbucket Data Center nach Bedarf zusätzliche Berechtigungen konfigurieren. Wählen Sie zum Beispiel Bitbucket Data Center-Konto aus, um nur auf einen Teil der Repositories auf Ihrer Bitbucket Data Center-Instanz zuzugreifen. So können Sie genau steuern, was in Cloud Build verfügbar ist.

Nachdem Sie Ihre persönlichen Zugriffstokens erstellt haben, speichern Sie Ihre Tokenwerte sicher, um eine Verbindung zu Ihrem Bitbucket Data Center-Repository herzustellen.

Verbindung zu einem Bitbucket-Rechenzentrums-Host herstellen

Console

So verbinden Sie Ihren Bitbucket Data Center-Host über die Google Cloud Console mit Cloud Build:

  1. Öffnen Sie die Seite Repositories verwalten in der Google Cloud Console:

    Seite „Repositories verwalten“ öffnen

  2. Klicken Sie auf Host verbinden.

    Der Bereich Host verbinden wird angezeigt.

    Geben Sie die folgenden Informationen ein, um die Bitbucket-Rechenzentrumsinstanz mit Cloud Build zu verbinden:

    • Host-URL: Die Host-URL der Bitbucket-Rechenzentrumsinstanz. Beispiel: https://bbs.example-test.com:7990
    • Google Cloud API-Schlüssel: Ihr API-Schlüssel zum Authentifizieren Ihrer Anmeldedaten.
    • CA-Zertifikat: Ihr selbst signiertes Zertifikat. Ihr Zertifikat darf nicht größer als 10 KB sein und sollte im PEM-Format vorliegen (.pem, .cer oder .crt). Wenn dieser Bereich leer ist, wird ein Standardsatz von Zertifikaten verwendet.
    • Nutzername: Der Nutzername Ihres Bitbucket-Rechenzentrums. Dieses Konto sollte Administratorzugriff auf die Repositories haben, die Sie mit Cloud Build verbinden möchten.
    • Zugriffstoken für Lesezugriff: Das Token für Ihr Bitbucket Data Center-Konto mit Lesezugriff.
    • Administrator-Zugriffstoken: Ihr Bitbucket Data Center-Konto mit persönlichem Token mit Administratorberechtigungen für Projekte und Repositories.
    • [OPTIONAL] Netzwerkprojekt: Die Netzwerkprojekt-ID Ihres lokalen Netzwerks.
    • [OPTIONAL] Netzwerkname: Der Netzwerkname für Ihr lokales Netzwerk.
  3. Klicken Sie auf Host verbinden.

    Wenn sich Ihre Bitbucket-Rechenzentrumsinstanz in einem Peering-Netzwerk befindet, kann das Verbinden des Hosts mehrere Minuten dauern.

    Sie werden zum Bereich Repository verbinden weitergeleitet.

    Nachdem Sie eine Hostverbindung erstellt haben, werden Ihre persönlichen Zugriffstokens und Ihr Webhook-Secret in Secret Manager sicher gespeichert. Sie können Ihre Secrets auf der Seite Secret Manager ansehen und verwalten.

gcloud

Wenn Sie den Bitbucket Data Center-Host über gcloud-Befehle mit Cloud Build verbinden möchten, müssen Sie den Befehl gcloud alpha builds enterprise-config bitbucketserver create im Terminal ausführen. Anders als beim Verbinden Ihres Hosts mit der Google Cloud Console müssen Sie Ihre persönlichen Zugriffstokens und Ihr Webhook-Secret in Secret Manager manuell speichern, bevor Sie den folgenden Befehl ausführen:

gcloud alpha builds enterprise-config bitbucketserver create
--name=BITBUCKET_DATA_CENTER_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 \
--ssl-ca-file=SSL_CA_FILE

Dabei gilt:

  • BITBUCKET_DATA_CENTER_CONFIG_NAME der Name Ihrer Bitbucket-Rechenzentrumskonfiguration ist.
  • USERNAME ist Ihr Bitbucket-Rechenzentrums-Nutzername.
  • HOST_URI ist der Host-URI Ihrer Bitbucket Data Cemter-Instanz.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname des Administrator-Zugriffstokens, das in Secret Manager gespeichert ist. Das erwartete Format für in Secret Manager gespeicherte Secrets ist projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/${VERSION_NUMBER}. Du kannst latest als Version angeben, um die neueste Version deines Secrets zu verwenden. Dies gilt für jede in Secret Manager gespeicherte Ressource.
  • READ_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname des Zugriffstokens, das in Secret Manager gespeichert ist.
  • WEBHOOK_SECRET_SECRET_VERSION ist der Ressourcenname des Webhook-Secret, das in Secret Manager gespeichert ist.
  • API_KEY ist der Google Cloud API-Schlüssel.
  • [Optional] PEERED_NETWORK ist das VPC-Netzwerk, mit dem Ihre Bitbucket-Rechenzentrumsinstanzen lokal verbunden werden.
  • SSL_CA_FILE der Pfad zu einer lokalen Datei mit Ihrem SSL-Zertifikat ist, das für Anfragen an das Bitbucket Data Center verwendet werden soll. Das Zertifikat muss das PEM-Format haben.

API

Verwenden Sie die folgende JSON-Vorlage, um den Bitbucket-Rechenzentrums-Host über die API mit Cloud Build zu verbinden. Anders als beim Verbinden des Hosts mit der Google Cloud Console müssen Sie hier vor dem Aufrufen der API Ihre persönlichen Zugriffstokens und das Webhook-Secret manuell in Secret Manager speichern:

  {
      "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,
      "sslCa": SSL_CERTIFICATE
  }

Dabei gilt:

  • HOST_URI ist der Host-URI Ihrer Bitbucket-Rechenzentrumsinstanz.
  • USERNAME ist Ihr Bitbucket-Rechenzentrums-Nutzername.
  • API_KEY ist der Google Cloud API-Schlüssel.
  • ADMIN_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname des Administrator-Zugriffstokens, das in Secret Manager gespeichert ist. Möglicherweise müssen Sie Ihrem Cloud Build-Dienstkonto service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com die Secret Manager-Rolle zuweisen. Weitere Informationen finden Sie unter Einem Dienstkonto Secret-Rolle zuweisen.

  • READ_ACCESS_TOKEN_SECRET_VERSION ist der Ressourcenname des Zugriffstokens, das in Secret Manager gespeichert ist.

  • WEBHOOK_SECRET_SECRET_VERSION ist der Ressourcenname des Webhook-Secret, das in Secret Manager gespeichert ist.

  • [Optional] PEERED_NETWORK ist das VPC-Netzwerk, mit dem Ihre Bitbucket-Rechenzentrumsinstanzen lokal verbunden werden.

  • [Optional] SSL_CERTIFICATE ist das SSL-Zertifikat, das für Ihre Bitbucket Data Center-Instanzen lokal verwendet wird.

Geben Sie im Terminal den folgenden curl-Befehl 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/global/bitbucketServerConfigs/?bitbucketServerConfigId=BITBUCKET_DATA_CENTER_CONFIG_NAME -d @config.json

Dabei gilt:

  • PROJECT_ID ist die ID Ihres Cloud-Projekts.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME der Name Ihrer Bitbucket-Rechenzentrumskonfiguration ist.

Bei erfolgreicher Ausführung enthält der Antworttext eine neu erstellte Operation-Instanz.

Geben Sie im Terminal den folgenden curl-Befehl 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/global/operations/OPERATION_ID

Dabei gilt:

  • PROJECT_NUMBER ist die Nummer Ihres Cloud-Projekts.
  • PROJECT_ID ist die ID Ihres Cloud-Projekts.
  • OPERATION_ID ist die ID des Konfigurationsvorgangs für den Bitbucket-Rechenzentrum.

Möglicherweise müssen Sie den GetOperation API-Befehl weiter ausführen, bis die Antwort done: true enthält, was darauf hindeutet, dass der Vorgang abgeschlossen ist. Wenn die Bitbucket-Rechenzentrumskonfiguration erfolgreich erstellt wurde, wird sie im Feld response.value angezeigt. Andernfalls finden Sie im Feld error einen detaillierten Fehlerbericht.

Weitere Informationen