jenkins - 使用凭据插件运行 Jenkins 流水线步骤的问题
问题描述
我有一个将目录复制到远程目录的基本管道。如果我有纯文本的用户名和密码,它可以正常工作,但是当我尝试使用 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)
解决方案
这样做的方法是调用不带引号或 $ 的变量,如下所示
def remote = [:]
remote.name = 'EU Server 1'
remote.host = 'server1@server.com'
remote.user = username
remote.password = password
remote.allowAnyHosts = true
推荐阅读
- javascript - 从列表选项更新 D3 线图
- javascript - 仅包含导出的文件会降低测试覆盖率 Jest
- node.js - Heroku 错误代码=H10 desc="App crashed" method=GET path="/" dyno= connect= service= status=503 bytes= protocol=https
- android - 在 Espresso 中,我可以检测视图是否包含文本 * 或 * 其他文本
- java - 如何根据成员对象的字段值而不是成员对象 ID 获取实体
- python - Python - 尽可能快地获取随机颜色,给定种子数
- postgresql - 至少有一条重复记录具有“x”。Postgres sql EXISTS 或 INNER JOIN
- php - 两个文件 fopen 与一个大文件 fopen 的性能
- java - 没有尝试方法 IOException 的 BufferedWriter
- javascript - 我的代码中是否有任何错误,这不起作用,Jquery Ajax