使用凭证插件运行Jenkins管道步骤

分享于 

2分钟阅读

互联网

 

问题:

我有一个将目录复制到远程目录的基本管道。 如果我在纯文本中有用户名和密码,但是当我尝试使用withCredentials时,我会获得身份验证错误。 是否有特定的语法来引用这里? 管道如下所示


node {


 withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'creds-id', usernameVariable: 'username', passwordVariable: 'password']]){



 def remote = [:]


 remote.name = 'EU Server 1'


 remote.host = 'server1@server.com'


 remote.user = '$username'


 remote.password = '$password'


 remote.allowAnyHosts = true



 stage('Copy dir to server'){


 sshPut remote: remote, from: '/data/workspace', into: '/home/server1/workspace1'


 }


}



我得到了下面的错误


com.jcraft.jsch.JSchException: Auth fail


at com.jcraft.jsch.Session.connect(Session.java:519)


at com.jcraft.jsch.Session.connect(Session.java:183)


at com.jcraft.jsch.Session$connect$6.call(Unknown Source)




回答 1:

使用双引号而不是单引号。 单引号可以防止字符串插值:


remote.user ="$username"


remote.password ="$password"




回答 2:

答案是没有引号/var字符


remote.user = username


remote.password = password





plugin  PIP  STEP  管道  PIPE  Jenkins  
相关文章