透過 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 金鑰名稱。依預設,在 Code Stream 中針對 Gerrit 伺服器提供了以下支援的 MAC:
      • 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 觸發器執行管線