Auf dieser Seite wird erläutert, wie Sie einen GitLab-Host mit Cloud Build verbinden.
Hinweis
Aktivieren Sie die Cloud Build und Secret Manager APIs.
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Informationen zum Zuweisen von Rollen.
Verbindung zu einem GitLab-Host herstellen
Bevor Sie eine Hostverbindung für Ihre GitLab-Instanz erstellen, müssen Sie persönliche Zugriffstokens in GitLab erstellen. Gehen Sie dazu so vor:
Melden Sie sich in Ihrer GitLab-Instanz an.
Klicken Sie auf der GitLab-Seite für Ihre Instanz rechts oben auf Ihren Avatar.
Klicken Sie auf Profil bearbeiten.
Wählen Sie in der linken Seitenleiste Zugriffstokens aus.
Die Seite „Persönliche Zugriffstokens“ wird angezeigt.
Erstellen Sie ein Zugriffstoken mit dem Bereich
api, das zum Verbinden und Trennen von Repositories verwendet wird.Erstellen Sie ein Zugriffstoken mit dem Bereich
read_api, damit Cloud Build-Repositories auf Quellcode in Repositories zugreifen können.
Console
So verbinden Sie Ihren GitLab-Host mit Cloud Build:
Öffnen Sie in der Google Cloud console die Seite Repositories.
Die Seite Repositories wird angezeigt.
Wählen Sie oben auf der Seite den Tab 2. Generation aus.
Wählen Sie in der Projektauswahl in der oberen Leiste Ihr Google Cloud Projekt aus.
Klicken Sie auf Hostverbindung erstellen , um einen neuen Host mit Cloud Build zu verbinden.
Wählen Sie im linken Bereich GitLab als Quellanbieter aus.
Geben Sie im Abschnitt Verbindung konfigurieren die folgenden Informationen ein:
Region: Wählen Sie eine Region für Ihre Verbindung aus.
Name: Geben Sie einen Namen für Ihre Verbindung ein.
Wählen Sie im Abschnitt Hostdetails unter GitLab-Host die Option GitLab.com aus.
Optional: Wenn Sie die Verschlüsselungsschlüssel verwalten möchten, die zum Verschlüsseln der Zugriffstokens für Ihre GitLab-Repositories verwendet werden, rufen Sie den Abschnitt Verschlüsselung auf und wählen Sie einen Cloud Key Management Service-Schlüssel aus. Weitere Informationen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel für Secret Manager aktivieren.
Geben Sie im Abschnitt Persönliche Zugriffstokens die folgenden Informationen ein:
API-Zugriffstoken: Geben Sie das Token mit dem Bereichszugriff
apiein. Dieses Token wird zum Verbinden und Trennen von Repositories verwendet.API-Zugriffstoken mit Leseberechtigung: Geben Sie das Token mit dem Bereichszugriff
read_apiein. Cloud Build-Trigger verwenden dieses Token, um auf Quellcode in Repositories zuzugreifen.
Klicken Sie auf Verbinden.
Nachdem Sie auf die Schaltfläche Verbinden geklickt haben, werden Ihre persönlichen Zugriffstokens sicher in Secret Manager gespeichert. Nach der Hostverbindung erstellt Cloud Build in Ihrem Namen auch ein Webhook-Secret. Sie können Ihre Secrets auf der Seite Secret Manager ansehen und verwalten.
Sie haben jetzt eine GitLab-Verbindung erstellt.
gcloud
Bevor Sie Ihren GitLab-Host mit Cloud Build verbinden, führen Sie die folgenden Schritte aus, um Ihre Anmeldedaten zu speichern:
Erstellen Sie in Secret Manager ein Webhook-Secret, indem Sie den folgenden Befehl ausführen:
cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-Wenn Sie Ihre Secrets in einem anderen Google Cloud Projekt speichern als dem, das Sie zum Erstellen einer Hostverbindung verwenden möchten, geben Sie den folgenden Befehl ein, um Ihrem Projekt Zugriff auf den Cloud Build-Dienst-Agenten zu gewähren:
PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") CLOUD_BUILD_SERVICE_AGENT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \ --role="roles/secretmanager.admin"Wobei:
- PROJECT_ID ist Ihre Google Cloud Projekt-ID.
Sie können jetzt Ihren GitLab-Host mit Cloud Build verbinden.
Gehen Sie folgendermaßen vor:
So verbinden Sie Ihren GitLab-Host mit Cloud Build:
Geben Sie den folgenden Befehl ein, um eine GitLab-Verbindung zu erstellen:
gcloud builds connections create gitlab CONNECTION_NAME \ --host-uri=HOST_URI \ --project=PROJECT_ID \ --region=REGION \ --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \ --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \ --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSIONWobei:
- CONNECTION_NAME ist ein Name für Ihre GitLab-Hostverbindung in Cloud Build.
- HOST_URI ist die URI Ihrer GitLab-Instanz. Beispiel:
https://my-gle-server.net. - PROJECT_ID ist Ihre Google Cloud Projekt-ID.
- REGION ist die Region für Ihre Verbindung.
- API_TOKEN ist der Name Ihres Tokens mit dem Bereich
api. - READ_TOKEN ist der Name Ihres Tokens mit dem Bereich
read_api. - SECRET_VERSION ist die Version Ihres Secrets.
- WEBHOOK_SECRET ist Ihr Webhook-Secret.
Sie haben jetzt eine GitLab-Verbindung erstellt.
Alte oder abgelaufene GitLab-Zugriffstokens rotieren
Wenn Ihr GitLab-Zugriffstoken abläuft, wird die Cloud Build-Hostverbindung von ihrem GitLab-Repository getrennt. In folgenden Fällen werden Fehler angezeigt:
Wenn Sie versuchen, ein GitLab-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 die Meldung
Failed to list branches. You can still enter one manuallyangezeigt.
So rotieren Sie ein altes oder abgelaufenes Token für Ihre Verbindung:
Suchen Sie die Secrets, die mit Ihrer Hostverbindung verknüpft sind:
Führen Sie den folgenden Befehl aus:
gcloud builds connections describe CONNECTION_PATH --region=REGIONWobei:
- CONNECTION_PATH ist der Pfad Ihrer GitLab
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 GitLab
Hostverbindung in Cloud Build im Format
Suchen Sie in der Ausgabe des Befehls nach den Werten Ihrer Nutzertokenfelder.
readAuthorizerCredential.userTokenSecretVersionzeigt den Secret Manager-Namen des Tokensread_apiundauthorizerCredential.userTokenSecretVersionden Secret Manager-Namen des Tokensapi. Diese Namen werden als Secrets in Secret Manager gespeichert.
Rotieren Sie jedes Zugriffstoken in GitLab:
Rufen Sie das GitLab-Repository auf, das mit Ihrer Cloud Build-Hostverbindung verbunden ist.
Folgen Sie der Anleitung in der GitLab-Dokumentation, um ein Zugriffstoken zu rotieren. Wenn Sie ein Token rotieren, erstellt GitLab 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 Ihres 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 Token, das Sie rotiert haben, 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 GitLab-Repositorys
- Informationen zum Erstellen und Bereitstellen Ihrer Arbeitslasten mit von Google verwalteten CI/CD-Komponenten in Ihrer GitLab-Pipeline Google Cloud Weitere Informationen zu GitLab auf Google Cloud.