Repositories aus Bitbucket Data Center in einem privaten Netzwerk erstellen

Mit Cloud Build können Sie Trigger erstellen, um Builds aus Repositories zu erstellen, die in Bitbucket Data Centergehostet werden. So können Sie Builds als Reaktion auf Ereignisse wie Commit-Pushes oder Pull-Anfragen ausführen, die mit Ihrem Bitbucket Data Center-Repository verknüpft sind.

Auf dieser Seite wird erläutert, wie Sie die Triggerfunktion in einer Bitbucket Data Center-Instanz aktivieren können, wenn Ihre Instanz in einem privaten Netzwerk gehostet wird.

Hinweis

  • Aktivieren Sie die Cloud Build und Secret Manager APIs.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.

    APIs aktivieren

Repositories aus Bitbucket Data Center in einem privaten Netzwerk erstellen

Wenn Ihre Bitbucket Data Center-Instanz nur innerhalb eines VPC-Netzwerks zugänglich ist, müssen Sie einen VPC-Netzwerk Service Directory-Dienst einrichten und mit privaten Pools erstellen. Das Projekt, das Ihr VPC-Netzwerk enthält, kann sich in einem anderen Projekt befinden als das, das Ihren Service Directory-Dienst enthält. Gehen Sie so vor, um Service Directory einzurichten und einen Bitbucket Data Center-Trigger zu erstellen:

  1. Aktivieren Sie die Service Directory API.

  2. Weisen Sie dem Google Cloud Projekt, in dem Sie den Service Directory-Dienst erstellen möchten, die Rolle Project IAM Admin zu. Informationen zum Zuweisen von IAM-Rollen finden Sie unter Zugriff auf Cloud Build-Ressourcen konfigurieren.

  3. Richten Sie einen Service Directory-Dienst ein. Gehen Sie dazu so vor:

    1. Konfigurieren Sie einen Namespace für Ihr Google Cloud Projekt.

      Die Region, die Sie in Ihrem Namespace angeben, muss mit der Region übereinstimmen, die Sie in Ihrer Cloud Build-Hostverbindung angeben.

    2. Konfigurieren Sie einen Dienst in Ihrem Namespace.

    3. Konfigurieren Sie einen Endpunkt für Ihren registrierten Dienst.

      Beim Konfigurieren eines Endpunkts müssen Sie eine interne IP-Adresse verwenden und eine HTTPS-Portnummer angeben, damit Cloud Build Ihren Dienst erreichen kann.

    Weitere Informationen zur Konfiguration des privaten Netzwerkzugriffs finden Sie unter Privaten Netzwerkzugriff konfigurieren. Service Directory bietet auch die Integration mit Diensten wie Load-Balancern und Google Kubernetes Engine (GKE). Weitere Informationen finden Sie unter Service Directory und Load-Balancing oder Service Directory für GKE.

  4. Gewähren Sie dem Cloud Build-Dienstagenten Zugriff auf Service Directory:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding  PROJECT_ID_CONTAINING_SERVICE_DIRECTORY \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.viewer"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist Ihre Cloud Build-Projekt-ID.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY ist die ID Ihres Google Cloud Projekts, das Ihr Service Directory enthält.
  5. Gewähren Sie dem Cloud Build-Dienstagenten Zugriff auf VPC-Netzwerkressourcen:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.pscAuthorizedService"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist Ihre Cloud Build-Projekt-ID.
    • PROJECT_ID_CONTAINING_NETWORK_RESOURCE ist die ID Ihres Google Cloud Projekts, das Ihre Netzwerkressource enthält.
  6. Verwenden Sie private Pools, um Ihre Builds auszuführen. Wenn Sie noch keinen privaten Pool erstellt haben, lesen Sie den Abschnitt Neuen privaten Pool erstellen.

  7. Folgen Sie der Anleitung, um einen Bitbucket Data Center-Trigger zu erstellen , um Repositories zu erstellen, die in einer Bitbucket Data Center-Instanz gehostet werden.

    Wenn Sie beim Verbinden Ihres Bitbucket Data Center-Hosts mit Cloud Build ein selbst signiertes oder privates Zertifikat verwenden, müssen Sie den Host-URI als alternativen Antragstellernamen (Subject Alternative Name, SAN) Ihres Zertifikats festlegen.

Der Bitbucket Data Center-Trigger ruft jetzt gemäß Ihrer Konfiguration automatisch Builds auf Ihrer Bitbucket Data Center-Instanz auf.

Service Directory verwenden, um Hosts außerhalb von zu erreichen Google Cloud

Service Directory verwendet den IP-Adressbereich 35.199.192.0/19, um eine Verbindung zu Ihrem Host außerhalb von herzustellen Google Cloud. Sie müssen diesen Bereich einer Zulassungsliste in Ihrer Firewall hinzufügen. Außerdem muss Ihr privates Netzwerk so konfiguriert sein, dass dieser Bereich über die Cloud VPN- oder Cloud Interconnect-Verbindung weitergeleitet wird.

Wenn Ihre Verbindung einen Cloud Router verwendet, können Sie sie so konfigurieren, dass der Bereich an Ihr privates Netzwerk weitergegeben wird.

Weitere Informationen finden Sie unter Privaten Netzwerkzugriff konfigurieren.

Cloud Load Balancing verwenden, um Hosts außerhalb von zu erreichen Google Cloud

Wenn Ihre Netzwerkkonfiguration es nicht zulässt, den Service Directory-IP-Adressbereich 35.199.192.0/19 an die Cloud VPN oder Cloud Interconnect weiterzuleiten, können Sie einen Load-Balancer erstellen mit Cloud Load Balancing, der Traffic an Ihren Host weiterleitet.

Wenn Sie den Service Directory-Endpunkt erstellen, verwenden Sie die IP-Adresse der Weiterleitungsregel des Load-Balancers anstelle der IP-Adresse Ihres Hosts. Sie können beim Erstellen des Endpunkts einen internen HTTPS-Load-Balancer oder einen internen TCP-Load-Balancer (Transmission Control Protocol) verwenden.

Beachten Sie beim Erstellen des TCP-Load-Balancers Folgendes:

  • Zum Erreichen Ihres Hosts ist nur eine Netzwerk-Endpunktgruppe (NEG) mit Hybridkonnektivität erforderlich.
  • Für den TCP-Load-Balancer ist der unverschlüsselte private Schlüssel für Ihr SSL-Zertifikat nicht erforderlich.
  • Für Ihre Cloud VPN-Einrichtung muss Cloud Router mit globalem dynamischem Routing verwendet werden. Wenn Ihr Cloud VPN statisches Routing verwendet, können Sie stattdessen einen Proxy verwenden, der Cloud Service Mesh nutzt. Weitere Informationen finden Sie unter Netzwerk- Edge-Dienste für Hybrid- Bereitstellungen einrichten.

Weitere Informationen zum Erstellen eines HTTPS-Load-Balancers finden Sie unter Internen Application Load Balancer mit Hybridkonnektivität einrichten. Weitere Informationen zum Erstellen eines TCP-Load-Balancers finden Sie unter Regionalen internen Proxy-Network Load Balancer mit Hybridkonnektivität einrichten.

Datenfreigabe

Die von Cloud Build an Bitbucket Data Center gesendeten Daten helfen Ihnen, Trigger nach Namen zu erkennen und Build-Ergebnisse in Ihren Bitbucket Data Center-Repositories aufzurufen.

Die folgenden Daten werden zwischen Cloud Build und Bitbucket Data Center ausgetauscht:

  • Google Cloud Projekt-ID
  • Trigger name

Nächste Schritte