Code Stream では、Gerrit プロジェクトでコード レビューが発生したときにパイプラインをトリガできます。Gerrit 用トリガの定義には、イベント タイプに応じて実行する必要がある Gerrit プロジェクトとパイプラインが含まれます。

Gerrit 用トリガは、監視対象の Gerrit サーバにある Gerrit リスナーを使用します。 Code Stream で Gerrit エンドポイントを定義するには、プロジェクトを選択し、Gerrit サーバの URL を入力します。次に、そのサーバに Gerrit リスナーを作成するときに、エンドポイントを指定します。

FIPS が有効になっている vRealize Automation インスタンスで Gerrit サーバを Code Stream エンドポイントとして使用している場合は、Gerrit 構成ファイルに正しいメッセージ認証キーが含まれていることを確認する必要があります。Gerrit サーバの構成ファイルに正しいメッセージ認証キーが含まれていない場合は、サーバが正常に起動せず、「PrivateKey/PassPhrase is incorrect」というメッセージが表示されます。

次の手順は、Gerrit リスナー定義で使用できる Gerrit エンドポイントを定義する方法を示しています。エンドポイントの編集が必要な場合のために、手順の最後にあるオプションの手順で、更新を実行する方法とタイミングを説明しています。

前提条件

  • 接続する Gerrit サーバにアクセスできることを確認します。
  • Code Stream で、プロジェクトのメンバーであることを確認します。メンバーでない場合は、プロジェクトにメンバーとして追加するように Code Stream 管理者に依頼します。Code Streamでプロジェクトを追加する方法を参照してください。

手順

  1. Gerrit エンドポイントを定義します。
    1. [構成] > [エンドポイント] の順にクリックして、[新規エンドポイント] をクリックします。
    2. プロジェクトを選択し、エンドポイントのタイプとして [Gerrit] を選択します。次に、名前と説明を入力します。
    3. このエンドポイントがインフラストラクチャのビジネス クリティカルなコンポーネントである場合は、[制限付きとしてマーク] を有効にします。
    4. Gerrit サーバの URL を入力します。
      デフォルト ポートを使用するには、URL でポート番号を指定するか、値を空白のままにします。
    5. Gerrit サーバのユーザー名とパスワードを入力します。
      パスワードを暗号化する必要がある場合は、 [変数の作成] をクリックし、次のいずれかのタイプを選択します。
      • シークレット。パスワードは、何らかのロールを持つユーザーがパイプラインを実行すると解決されます。
      • 制限付き。パスワードは、管理者ロールを持つユーザーがパイプラインを実行すると解決されます。

      値には、Jenkins サーバのパスワードなど、保護する必要があるパスワードを入力します。

    6. プライベート キーの場合は、Gerrit サーバへの安全なアクセスに使用する SSH キーを入力します。
      このキーは、 .ssh ディレクトリにある RSA プライベート キーです。
    7. (オプション) プライベート キーにパスフレーズが関連付けられている場合は、そのパスフレーズを入力します。
      パスフレーズを暗号化するには、 [変数の作成] をクリックし、次のいずれかのタイプを選択します。
      • シークレット。パスワードは、何らかのロールを持つユーザーがパイプラインを実行すると解決されます。
      • 制限付き。パスワードは、管理者ロールを持つユーザーがパイプラインを実行すると解決されます。

      値には、SSH サーバのパスフレーズなど、保護するパスフレーズを入力します。

  2. [検証] をクリックし、 Code Stream の Gerrit エンドポイントが Gerrit サーバに接続されていることを確認します。
    接続されていない場合は、エラーを修正し、もう一度 [検証] をクリックします。
    Gerrit トリガ用のエンドポイントを追加するときは、Gerrit エンドポイントが Gerrit サーバに接続できることを確認する必要があります。
  3. [作成] をクリックします。
  4. vRealize Automation 環境で FIPS が有効になっていることを確認します。または、Jenkins ジョブで Jenkins URL を使用して、FIPS が有効な環境を作成します。
    1. コマンド ラインからコマンドを実行するには、SSH 経由で vRealize Automation 8.x アプライアンスに接続し、root ユーザーとしてログインします。たとえば、https://cava-1-234-567.yourcompanyFQDN.com などの完全修飾ドメイン名 URL にポート 22、5480、または 443 で接続します。
    2. vRealize Automation の FIPS を確認するには、コマンド vracli security fips を実行します。
    3. コマンドが FIPS mode: strict を返すことを確認します。
  5. Gerrit サーバが、FIPS が有効な vRealize Automation インスタンスのエンドポイントである場合は、Gerrit 構成ファイルに正しいメッセージ認証 (MAC) キーが含まれていることを確認します。
    1. Gerrit を開き、SSH キー ペアを作成します。
    2. '$site_path'/etc/gerrit.config の Gerrit サーバ構成ファイルを見つけます。
    3. Gerrit サーバ構成ファイルに、hmac-MD5 を除くメッセージ認証コード (MAC) キーが 1 つ以上含まれていることを確認します。
      注: FIPS モードでは、 hmac-MD5 はサポートされる MAC アルゴリズムではありません。Gerrit サーバが正しく起動するようにするには、Gerrit サーバ構成ファイルでこのアルゴリズムを除外する必要があります。Gerrit サーバが正常に起動しない場合は、「 PrivateKey/PassPhrase is incorrect」というメッセージが表示されます。
      プラス記号 (+) で始まる、サポートされているメッセージ認証コード (MAC) のキー名が有効です。ハイフン (-) で始まる MAC キー名は、デフォルトの MAC のリストから削除されます。デフォルトでは、これらのサポートされる MAC は Gerrit サーバの Code Stream で使用できます。
      • hmac-md5-96
      • hmac-sha1
      • hmac-sha1-96
      • hmac-sha2-256
      • hmac-sha2-512
  6. (オプション) URL またはプライベート キーを変更するなどの目的で Gerrit エンドポイントを更新する前に、エンドポイントが Gerrit リスナーに接続されているかどうかを確認します。
    • エンドポイントが Gerrit リスナーに接続されていない場合は、次の手順を実行してエンドポイントを更新します。
      1. [構成] > [エンドポイント] の順にクリックし、更新するエンドポイントで [開く] をクリックします。
      2. エンドポイント定義を更新します。
      3. [検証] をクリックして、 Code Stream の Gerrit エンドポイントが Gerrit サーバに接続されていることを確認します。
      4. [保存] をクリックします。
    • エンドポイントが Gerrit リスナーに接続されている場合は、次の手順を実行してエンドポイントを更新します。
      1. 接続されている Gerrit リスナーを切断します。Code Stream で Gerrit トリガを使用してパイプラインを実行する方法を参照してください。
      2. 新しいエンドポイントを構成する手順を実行します。
      3. 更新されたエンドポイント定義を検証して保存します。
      4. Gerrit リスナーを再接続します。
      注: Gerrit リスナーが切断されない場合は、現在の Gerrit エンドポイントの値が変更され、そのためにリスナーが Gerrit サーバと通信できなくなっていることが原因である可能性があります。この問題が発生した場合は、まず、リスナーが Gerrit サーバと通信できるようにエンドポイント定義を変更します。次に、Gerrit リスナーを切断し、再接続します。

次のタスク

詳細については、他のセクションを参照してください。Code Stream で Gerrit トリガを使用してパイプラインを実行する方法を参照してください。