一千萬個為什麽

搜索

將jenkins憑證(全局)傳遞給python腳本



我有一個全局jenkins憑證和一個包含該行的配置腳本

API_TOKEN = "Token XXX"

出於安全原因,我們無法將令牌保留在腳本本身中,因為它在版本控制中。有沒有辦法將jenkins憑證從jenkins傳遞給python配置腳本?

轉載註明原文: 將jenkins憑證(全局)傳遞給python腳本

一共有 2 個回答:

如果您使用的是Pipeline(即Jenkinsfile),請使用 withCredentials 。給出一個快速而骯臟的例子:

withCredentials([[
  $class: 'UsernamePasswordMultiBinding',
  credentialsId: 'my-credentials',
  usernameVariable: 'user',
  passwordVariable: 'pw',
]]) {
  sh("./my-python-script.py --user ${user} --password ${pw}")
}

您的憑據將從控制臺輸出中自動編輯,以防止敏感信息泄露。

特別是對於憑據,CloudBees建議使用憑據插件,該插件在可用於調用腳本的環境中註入憑據。從將秘密註入Jenkins構建喬布斯的:

  • Credentials plugin - provides a centralized way to define credentials that can be used by your Jenkins instance, plugins and build jobs.
  • Credentials Binding plugin - allows you to configure your build jobs to inject credentials as environment variables.
  • Plain Credentials plugin - a plugin dependency required by the Credentials Binding plugin.

在腳本中,您將從腳本環境中獲取變量:

API_TOKEN = os.getenv('API_TOKEN')

以類似的方式,您可以使用 EnvInject插件傳遞任意變量(憑證除外) (註意警告,tho)。見相關:

另一種可能的方法是配置Jenkins將值作為參數傳遞給腳本。在腳本中,您可以使用首選的處理腳本參數的方法來獲取值。