Mit Code Stream können Sie eine Pipeline auslösen, wenn eine Codeüberprüfung in Ihrem Gerrit-Projekt stattfindet. Der Auslöser für die Gerrit-Definition umfasst das Gerrit-Projekt und die Pipelines, die für verschiedene Ereignistypen ausgeführt werden müssen.
Der Auslöser für Gerrit verwendet einen Gerrit-Listener auf dem zu überwachenden Gerrit-Server. Um in Code Stream einen Gerrit-Endpoint zu definieren, wählen Sie ein Projekt aus und geben die URL für den Gerrit-Server ein. Anschließend geben Sie den Endpoint an, wenn Sie einen Gerrit-Listener auf diesem Server erstellen.
Wenn Sie einen Gerrit-Server als Code Stream-Endpoint in einer FIPS-fähigen vRealize Automation-Instanz verwenden, müssen Sie sicherstellen, dass Ihre Gerrit-Konfigurationsdatei die korrekten MAC-Schlüssel (Message Authentication Code) enthält. Wenn die Konfigurationsdatei des Gerrit-Servers nicht die korrekten MAC-Schlüssel enthält, kann der Server nicht ordnungsgemäß gestartet werden. Folgende Meldung wird angezeigt: PrivateKey/PassPhrase is incorrect
Das folgende Verfahren zeigt die Definition eines Gerrit-Endpoints, den Sie in der Definition des Gerrit-Listeners verwenden können. Wenn Sie einen Endpoint bearbeiten müssen, wird in einem optionalen Schritt am Ende des Verfahrens erläutert, wie und wann das Update durchgeführt werden sollte.
Voraussetzungen
- Vergewissern Sie sich, dass Sie auf den Gerrit-Server zugreifen können, mit dem Sie eine Verbindung herstellen möchten.
- Vergewissern Sie sich, dass Sie Mitglied eines Projekts in Code Stream sind. Falls Sie kein Mitglied sind, bitten Sie einen Code Stream-Administrator, Sie als Mitglied eines Projekts hinzuzufügen. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Hinzufügen eines Projekts in Code Stream.
Prozedur
- Definieren Sie einen Gerrit-Endpoint.
- Klicken Sie auf und dann auf Neuer Endpoint.
- Wählen Sie ein Projekt aus und wählen Sie Gerrit als Endpoint-Typ aus. Geben Sie dann einen Namen und eine Beschreibung ein.
- Wenn dieser Endpoint eine geschäftskritische Komponente in Ihrer Infrastruktur ist, aktivieren Sie Als eingeschränkt kennzeichnen.
- Geben Sie die URL für den Gerrit-Server ein.
Zur Verwendung des Standardports können Sie eine Portnummer mit der URL angeben oder den Wert leer lassen.
- Geben Sie den Benutzernamen und das Kennwort für den Gerrit-Server ein.
Wenn das Kennwort verschlüsselt werden muss, klicken Sie auf
Variable erstellen und wählen Sie den Typ aus:
- Geheimer Schlüssel: Das Kennwort wird aufgelöst, wenn ein Benutzer mit einer beliebigen Rolle die Pipeline ausführt.
- Eingeschränkt: Das Kennwort wird aufgelöst, wenn ein Benutzer mit der „Admin“-Rolle die Pipeline ausführt.
Geben Sie als Wert das Kennwort ein, das sicher sein muss, z. B. das Kennwort eines Jenkins-Servers.
- Geben Sie für den privaten Schlüssel den SSH-Schlüssel ein, der für den sicheren Zugriff auf den Gerrit-Server verwendet wird.
Dieser Schlüssel ist der private RSA-Schlüssel, der sich im
.ssh-Verzeichnis befindet.
- (Optional) Wenn dem privaten Schlüssel eine Passphrase zugeordnet ist, geben Sie die Passphrase ein.
Um die Passphrase zu verschlüsseln, klicken Sie auf
Variable erstellen und wählen Sie den Typ aus:
- Geheimer Schlüssel: Das Kennwort wird aufgelöst, wenn ein Benutzer mit einer beliebigen Rolle die Pipeline ausführt.
- Eingeschränkt: Das Kennwort wird aufgelöst, wenn ein Benutzer mit der „Admin“-Rolle die Pipeline ausführt.
Geben Sie als Wert die Passphrase ein, die sicher sein muss, z. B. die Passphrase für einen SSH-Server.
- Klicken Sie auf Validieren und vergewissern Sie sicher, dass der Gerrit-Endpoint in Code Stream mit dem Gerrit-Server verbunden ist.
Wenn keine Verbindung hergestellt wird, korrigieren Sie alle Fehler und klicken Sie erneut auf
Validieren.
- Klicken Sie auf Erstellen.
- Stellen Sie sicher, dass FIPS in der vRealize Automation-Umgebung aktiviert ist. Alternativ kann der Jenkins-Job zum Erstellen der FIPS-fähigen Umgebung mithilfe der Jenkins-URL verwendet werden.
- Zum Ausführen des Befehls über die Befehlszeile stellen Sie über SSH eine Verbindung zur vRealize Automation 8.x-Appliance her und melden sich als Root-Benutzer an. Beispiel: Stellen Sie eine Verbindung zur vollqualifizierten Domänennamen-URL, wie z. B. https://cava-1-234-567.yourcompanyFQDN.com, auf Port 22, 5480 oder 443 her.
- Für die Suche nach FIPS in vRealize Automation führen Sie den Befehl vracli security fips aus.
- Stellen Sie sicher, dass
FIPS mode: strict
vom Befehl zurückgegeben wird.
- Wenn Ihr Gerrit-Server als Endpoint in einer FIPS-fähigen vRealize Automation-Instanz fungiert, stellen Sie sicher, dass die Gerrit-Konfigurationsdatei die korrekten MAC-Schlüssel (Message Authentication Code) enthält.
- Öffnen Sie Gerrit und erstellen Sie ein SSH-Schlüsselpaar.
- Suchen Sie nach der Konfigurationsdatei des Gerrit-Servers unter '$site_path'/etc/gerrit.config.
- Stellen Sie sicher, dass die Konfigurationsdatei des Gerrit-Servers mindestens einen MAC-Schlüssel (Message Authentication Code) enthält, ausgenommen
hmac-MD5
.
Hinweis: Im FIPS-Modus stellt
hmac-MD5
einen nicht unterstützten MAC-Algorithmus dar. Um den ordnungsgemäßen Start des Gerrit-Servers zu gewährleisten, darf die Konfigurationsdatei des Gerrit-Servers diesen Algorithmus nicht enthalten. Bei nicht ordnungsgemäßem Start des Gerrit-Servers wird folgende Meldung angezeigt:
PrivateKey/PassPhrase is incorrect
Unterstützte Schlüsselnamen des MAC-Schlüssels (Message Authentication Code), die mit einem Pluszeichen (+) beginnen, werden aktiviert. Die MAC-Schlüsselnamen, die mit einem Minuszeichen (-) beginnen, werden aus der Liste der Standard-MACs entfernt. Standardmäßig stehen diese unterstützten MACs in
Code Stream für den Gerrit-Server zur Verfügung:
hmac-md5-96
hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
- (Optional) Stellen Sie vor dem Aktualisieren eines Gerrit-Endpoints zum Ändern einer URL oder eines privaten Schlüssels sicher, dass der Endpoint mit einem Gerrit-Listener verbunden ist.
- Wenn der Endpoint nicht mit einem Gerrit-Listener verbunden ist, führen Sie die folgenden Schritte aus, um den Endpoint zu aktualisieren:
- Klicken Sie auf und dann auf dem zu aktualisierenden Endpoint auf Öffnen.
- Aktualisieren Sie die Definition des Endpoints.
- Klicken Sie auf Validieren und stellen Sie sicher, dass der Gerrit-Endpoint in Code Stream mit dem Gerrit-Server verbunden ist.
- Klicken Sie auf Speichern.
- Wenn der Endpoint mit einem Gerrit-Listener verbunden ist, führen Sie die folgenden Schritte aus, um den Endpoint zu aktualisieren:
- Trennen Sie alle angehängten Gerrit-Listener. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden des Gerrit-Auslösers in Code Stream zum Ausführen einer Pipeline.
- Führen Sie die Schritte zum Konfigurieren des neuen Endpoints aus.
- Validieren und speichern Sie die aktualisierte Endpoint-Definition.
- Verbinden Sie die Gerrit-Listener erneut.
Hinweis: Wenn die Gerrit-Listener nicht getrennt werden, liegt dies möglicherweise daran, dass sich die aktuellen Werte des Gerrit-Endpoints geändert haben, wodurch die Listener nicht mehr mit dem Gerrit-Server kommunizieren können. Wenn dieses Problem auftritt, nehmen Sie zunächst Änderungen an der Endpoint-Definition vor, damit die Listener mit dem Gerrit-Server kommunizieren können. Trennen Sie anschließend die Gerrit-Listener und verbinden Sie sie erneut.
Nächste Maßnahme
Weitere Informationen finden Sie in den anderen Abschnitten. Weitere Informationen hierzu finden Sie unter Vorgehensweise zum Verwenden des Gerrit-Auslösers in Code Stream zum Ausführen einer Pipeline.