【问题标题】:how to load jenkins username and password as env vars in a jenkins file如何将jenkins用户名和密码作为环境变量加载到jenkins文件中
【发布时间】:2022-10-05 22:18:27
【问题描述】:

在 Jenkins 凭证中,我有几种类型的凭证。 其中一个名为my_password 的类型为“秘密文本”,在 Jenkinsfile 中,我可以像这样访问:

    environment {
        my_env_var = credentials(\'my_password\')
    }

现在,我创建了一个名为user_and_pass 的“带密码的用户名”类型的凭证,我可以在同一个凭证中设置这两个字段。 如何同时访问这两个参数,并将它们加载到环境变量中? 我在想类似的事情:

    environment {
        my_user = credentials(\'user_and_pass\').someFunctionThatReturnsUser()
        my_pass = credentials(\'user_and_pass\').someFunctionThatReturnsPass()

    }

但我不认为它是这样工作的。

  • 请参阅Documentation - 当您定义用户名和密码密码并使用凭据 MYVARNAME = credentials(\'user_and_pass\') 时,MYVARNAME 将设置为 username:password 并且将自动定义两个额外的环境变量:MYVARNAME_USRMYVARNAME_PSW 分别。

标签: jenkins jenkins-pipeline


【解决方案1】:

当您从"username and password" secret 取回凭据时,您会得到一个字符串,其中包含用户名和密码,由冒号分隔,格式为username:password

检查是否使用usernamePassword工作,如in here
它来自Jenkins Credentials Binding Plugin

withCredentials(
  [usernamePassword(credentialsId: 'mycreds', 
                    usernameVariable: 'USERNAME', 
                    passwordVariable: 'PASSWORD')]) {
  sh 'cf login some.awesome.url -u $USERNAME -p $PASSWORD'
}

【讨论】:

    【解决方案2】:

    在 Jenkins 仪表板中,单击管理 Jenkins,单击安全选项卡下的管理凭据,单击系统以创建全局凭据。此凭据 ID (my-predefined-ssh-creds) 可按如下方式使用:

            stage('Example SSH Username with private key') {
            environment {
                SSH_CREDS = credentials('my-predefined-ssh-creds')
            }
    

    最近的文档可在Jenkins official documentation 获得

    【讨论】:

      猜你喜欢
      • 2017-01-03
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-16
      相关资源
      最近更新 更多