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 用户身份登录。例如,在端口 22、5480 或 443 上连接到完全限定域名 URL,例如 https://cava-1-234-567.yourcompanyFQDN.com
    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 服务器配置文件是否包含一个或多个消息身份验证代码 (MAC) 密钥,hmac-MD5 除外。
      注: 在 FIPS 模式下, hmac-MD5 不是受支持的 MAC 算法。为确保 Gerrit 服务器正常启动,Gerrit 服务器配置文件必须排除此算法。如果 Gerrit 服务器未正确启动,则会显示以下消息: PrivateKey/PassPhrase is incorrect
      以加号 (+) 开头的受支持消息身份验证代码 (MAC) 密钥名称处于启用状态。以连字符 (-) 开头的 MAC 密钥名称将从默认 MAC 列表中移除。默认情况下,这些受支持的 MAC 可在 Code Stream 中用于 Gerrit 服务器:
      • hmac-md5-96
      • hmac-sha1
      • hmac-sha1-96
      • hmac-sha2-256
      • hmac-sha2-512
  6. (可选) 在更新 Gerrit 端点(例如更改 URL 或私钥)之前,请检查该端点是否已连接到 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 触发器运行管道