Repositories aus GitHub Enterprise in einem privaten Netzwerk erstellen

<ph type="x-smartling-placeholder"></ph>

Mit Cloud Build können Sie Trigger auf einer GitHub Enterprise-Instanz erstellen. Auf dieser Seite wird erläutert, wie Sie Builds mit GitHub Enterprise-Triggern aufrufen Als Antwort auf Commits oder Pull-Anfragen von einer GitHub Enterprise-Instanz und erklärt, wie Sie aus verschiedenen Quellen GitHub Enterprise, wenn Ihre Instanz in einem privaten Netzwerk gehostet wird.

Hinweise

  • Cloud Build and Service Directory APIs aktivieren.

    Aktivieren Sie die APIs

  • Wenn Sie noch keinen privaten Pool erstellt haben, folgen Sie der Anleitung unter Private Pools erstellen und verwalten um einen privaten Pool zu erstellen. Sie benötigen einen privaten Pool, in einem privaten Netzwerk erstellen.

Repositories aus GitHub Enterprise in einem privaten Netzwerk erstellen

Führen Sie die folgenden Schritte aus, um die GitHub Enterprise-Instanz zu verbinden von einem privaten Netzwerk zu Cloud Build:

  1. Zugriff auf den Cloud Build-Dienst-Agent zur Verwendung gewähren 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 Google Cloud-Projekt-ID.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY ist die ID Ihres Google Cloud-Projekt, das Ihr Service Directory enthält.
  2. Gewähren Sie Zugriff auf Ihre VPC-Netzwerkressource, wobei PROJECT_ID_CONTAINING_NETWORK_RESOURCE die ID Ihres Google Cloud-Projekt, das Ihre Netzwerkressource enthält.

    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \
      --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
      --role="roles/servicedirectory.pscAuthorizedService"
    
  3. Richten Sie einen Service Directory-Dienst ein, indem Sie die folgenden Schritte ausführen:

    1. Konfigurieren Sie einen Namespace für Ihren Dienst:

       gcloud service-directory namespaces create NAMESPACE --location=REGION --project=PROJECT_ID_CONTAINING_SERVICE_DIRECTORY
      

      Ersetzen Sie Folgendes:

      • NAMESPACE ist der Name Ihres Service Directory-Namespace.
      • LOCATION ist die Region, in der Sie Verbindungen erstellen und Repositories verknüpfen.
      • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY ist die ID Ihres Google Cloud-Projekt, das Ihr Service Directory enthält.
    2. Konfigurieren Sie einen Dienst für Ihren Namespace:

       gcloud service-directory services create SERVICE --namespace=NAMESPACE --location=LOCATION
      

      Ersetzen Sie Folgendes:

      • SERVICE ist der Name Ihrer Service Directory-Ressource.
      • NAMESPACE ist der Name Ihres Service Directory-Namespace.
      • LOCATION ist die Region, in der Sie Verbindungen erstellen und Repositories verknüpfen.
    3. Konfigurieren Sie einen Endpunkt für Ihren Dienst:

       gcloud service-directory endpoints create ENDPOINT_NAME \
         --namespace=NAMESPACE \
         --service=SERVICE \
         --location=LOCATION \
         --address=INSTANCE_IP_ADDRESS \ 
         --port=PORT \
         --network=projects/PROJECT_ID_CONTAINING_NETWORK/locations/us-central1/ networks/NETWORK
      

      Ersetzen Sie Folgendes:

      • ENDPOINT_NAME ist der Name des Endpunkts.
      • NAMESPACE ist der Name Ihres Service Directory-Namespace.
      • SERVICE ist der Name Ihrer Service Directory-Ressource.
      • LOCATION ist die Region, in der Sie Verbindungen erstellen und Repositories verknüpfen.
      • INSTANCE_IP_ADDRESS ist die IP-Adresse Ihres GitHub Enterprise-Kontos. in Ihrem Netzwerk. Beispiel: 123.45.67.89. Weitere Informationen finden Sie unter Hosts außerhalb von Google Cloud mit Service Directory erreichen.
      • PORT ist der Name Ihres Ports für HTTPS.
      • PROJECT_ID_CONTAINING_NETWORK ist die ID Ihres Google Cloud-Projekts, das Ihr VPC-Netzwerk enthält.
      • NETWORK ist der Name Ihres VPC-Netzwerks.

    Sie können jetzt die Dienstressource (projects/{PROJECT_ID}/locations/{LOCATION}/namespaces/{NAMESPACE}/services/{SERVICE}) verwenden, um die Verbindung in den folgenden Schritten zu erstellen.

  4. GitHub Enterprise-Host verbinden

  5. GitHub Enterprise-Repository verbinden

  6. Erstellen Sie einen GitHub Enterprise-Trigger, um Repositories zu erstellen, die in Ihrem GitHub Enterprise-Instanz

Mit Service Directory Hosts außerhalb von Google Cloud erreichen

Service Directory verwendet den IP-Adressbereich 35.199.192.0/19 um Ihren GitHub Enterprise-Host zu verbinden. Sie müssen diesen Bereich auf die Zulassungsliste setzen in Ihrem Firewall. Außerdem muss das private Netzwerk für das Routing konfiguriert werden über die Cloud VPN- oder Cloud Interconnect-Verbindung.

Wenn Ihre Verbindung einen Cloud Router verwendet, können Sie sie so konfigurieren, dass Werben Sie den Bereich für Ihr privates Netzwerk.

Weitere Informationen finden Sie unter Zugriff auf private Netzwerke konfigurieren.

Mit Cloud Load Balancing Hosts außerhalb von Google Cloud erreichen

Lässt Ihre Netzwerkkonfiguration das Weiterleiten des Service Directory-IP-Adressbereich 35.199.192.0/19 mit dem Cloud VPN oder Cloud Interconnect können Sie mithilfe von Cloud Load Balancing einen Load-Balancer erstellen, der Traffic an Ihren Host weiterleitet.

Verwenden Sie beim Erstellen des Service Directory-Endpunkts die IP-Adresse der Weiterleitungsregel des Load-Balancers statt die IP-Adresse Ihres Hosts. Sie können einen internen HTTPS-Load-Balancer oder einen TCP-Load-Balancer (internes Transmission Control Protocol) beim Erstellen Ihren Endpunkt.

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

  • Um Ihren Host zu erreichen, ist nur eine Netzwerk-Endpunktgruppe für Hybridkonnektivität erforderlich.
  • Der TCP-Load-Balancer benötigt den unverschlüsselten privaten Schlüssel für Ihre SSL-Verbindung nicht Zertifikat.
  • Ihre Cloud VPN-Einrichtung muss Cloud Router mit globales dynamisches Routing Wenn Ihr Cloud VPN statisches Routing verwendet, können Sie einen Proxy, der stattdessen Cloud Service Mesh verwendet. Weitere Informationen finden Sie unter Edge-Netzwerkdienste für Hybridbereitstellungen 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 Siehe Regionalen internen Proxy-Network Load Balancer mit Hybridkonnektivität einrichten.

Nächste Schritte