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

  1. Definieren Sie einen Gerrit-Endpoint.
    1. Klicken Sie auf Konfigurieren > Endpoints und dann auf Neuer Endpoint.
    2. Wählen Sie ein Projekt aus und wählen Sie Gerrit als Endpoint-Typ aus. Geben Sie dann einen Namen und eine Beschreibung ein.
    3. Wenn dieser Endpoint eine geschäftskritische Komponente in Ihrer Infrastruktur ist, aktivieren Sie Als eingeschränkt kennzeichnen.
    4. 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.
    5. 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.

    6. 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.
    7. (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.

  2. 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.
    Wenn Sie einen Endpoint für den Gerrit-Auslöser hinzufügen, müssen Sie bestätigen, dass der Gerrit-Endpoint eine Verbindung mit dem Gerrit-Server herstellt.
  3. Klicken Sie auf Erstellen.
  4. 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.
    1. 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.
    2. Für die Suche nach FIPS in vRealize Automation führen Sie den Befehl vracli security fips aus.
    3. Stellen Sie sicher, dass FIPS mode: strict vom Befehl zurückgegeben wird.
  5. 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.
    1. Öffnen Sie Gerrit und erstellen Sie ein SSH-Schlüsselpaar.
    2. Suchen Sie nach der Konfigurationsdatei des Gerrit-Servers unter '$site_path'/etc/gerrit.config.
    3. 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
  6. (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:
      1. Klicken Sie auf Konfigurieren > Endpoints und dann auf dem zu aktualisierenden Endpoint auf Öffnen.
      2. Aktualisieren Sie die Definition des Endpoints.
      3. Klicken Sie auf Validieren und stellen Sie sicher, dass der Gerrit-Endpoint in Code Stream mit dem Gerrit-Server verbunden ist.
      4. 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:
      1. 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.
      2. Führen Sie die Schritte zum Konfigurieren des neuen Endpoints aus.
      3. Validieren und speichern Sie die aktualisierte Endpoint-Definition.
      4. 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.