從 Jenkins 而不是從 Jenkinsfile 為 Jenkins 管道設定範圍環境變量

從 Jenkins 而不是從 Jenkinsfile 為 Jenkins 管道設定範圍環境變量

是否有某種方法可以將非敏感資料儲存在 Jenkins 的建置配置範圍內,以便可以從管道腳本中讀取這些資料?

我們正在遷移到新的 Octopus Deploy 伺服器,我們的 Jenkinsfile 如下所示:

pipeline {
  environment {
    OCTOPUS_CLI_SERVER = "https://octopus.example.com"
    OCTOPUS_CLI_API_KEY = credentials("Octopus_Deploy_ApiKey")
  }
  // ...
}

我可以透過 Jenkins 憑證管理器集中更新 API 金鑰,但我必須OCTOPUS_CLI_SERVER在每個分支中編輯並提交更改,因為 URL 是硬編碼的。只要我改變這一點,我就想知道是否有比硬編碼新值更好的方法。

可以將八達通伺服器 URL 儲存在憑證管理員中並以相同的方式存取它,但隨後它的值將從日誌中刪除,這可能會很煩人。理想情況下,我正在尋找的內容對於多個項目可能具有不同的價值。例如,專案 A 和專案 B 都可能讀取名為“PUBLIC_DOMAIN”的變量,但其中一個將取得“a.example.com”,另一個將取得“b.example.com”。

我提到 Octopus Deploy 是因為它恰好是我們正在做出的更改,但這個問題可能適用於從 Jenkins 管道存取的任何數據,這並非特定於 Octopus Deploy。

答案1

有幾乎無限的方法可以做到這一點。我想到了以下三個:

  • 你可以使用Jenkins Pipeline 共享庫將配置值儲存在中央位置。

  • 您可以將該值儲存在遠端檔案或儲存庫中,並讓管道從遠端檔案或儲存庫中的檔案中讀取該值。

  • 您可以讓管道透過 HTTP REST API 從另一台伺服器取得值。

相關內容