简体   繁体   English

如何在jenkinsfile中单独获取存储在Jenkins凭据中的用户名密码

[英]How to get username password stored in Jenkins credentials separately in jenkinsfile

I've stored username and password as credentials in jenkins. 我在jenkins中存储了用户名和密码作为凭据。 Now I would like to use them in my Jenkinsfile. 现在我想在我的Jenkinsfile中使用它们。

I am using withCredentials DSL, however, I'm not sure how to get the username password as separate variables so I can use them in my command. 我正在使用withCredentials DSL,但是,我不知道如何将用户名密码作为单独的变量,所以我可以在我的命令中使用它们。

This is what I'm doing: 这就是我正在做的事情:

withCredentials([usernameColonPassword(credentialsId: 'mycreds', variable: 'MYCREDS')]) {
  sh 'cf login some.awesome.url -u <user> -p password'
}

How can I the username and passwork separately? 我怎么能分别用户名和密码呢? I tried doing ${MYCREDS.split(":")[0]} but that doesn't seem to work. 我尝试过${MYCREDS.split(":")[0]}但这似乎不起作用。

You can use the UsernamePasswordMultiBinding to get credential data in separate values: 您可以使用UsernamePasswordMultiBinding以单独的值获取凭据数据:

withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId:'mycreds',
  usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']
])

So the following should work in your case: 所以以下内容适用于您的情况:

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

Here is a tiny bit simpler version of StephenKing's answer 这是StephenKing答案的一个简单版本

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

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM