将 PASSWORD 凭据变量从 Jenkins 传递到脚本中的 sshpass
Passing the PASSWORD credentials variable from Jenkins to sshpass in a script
我在 jenkins 中设置了一些全局凭据,用户名密码类型。
我现在必须将文件 scp 到我的管道内的目标服务器。
为了论证,假设我的密码变量是 secretpassword。
有谁知道如何获取密码以正确使用 sshpass?
这是我正在尝试做的事情的要点
sh '''
sshpass -p'${PASSWORD}' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''
无论我怎么尝试,我似乎都无法获得将密码传递给 sshpass 的正确语法
如果我执行以下操作,效果很好
sh '''
sshpass -p 'secretpassword' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''
所以我显然只是弄乱了如何让 PASSWORD env 变量正确地吐出到单引号中。
到目前为止我似乎已经尝试了几千种选择,有没有人有什么好主意?
提前致谢
试试不用单引号。
sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
是否有任何特定原因将其保留在单引号中?因为单引号不会插入变量。
只有当你有多个 sh 命令到 运行 时才使用 '''
,如果它只是一个命令那么就这样做,它应该可以正常工作
sh "sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/ "
如果需要使用'''
然后在不带单引号的情况下使用它
sh '''
sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''
我在 jenkins 中设置了一些全局凭据,用户名密码类型。
我现在必须将文件 scp 到我的管道内的目标服务器。
为了论证,假设我的密码变量是 secretpassword。
有谁知道如何获取密码以正确使用 sshpass?
这是我正在尝试做的事情的要点
sh '''
sshpass -p'${PASSWORD}' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''
无论我怎么尝试,我似乎都无法获得将密码传递给 sshpass 的正确语法
如果我执行以下操作,效果很好
sh '''
sshpass -p 'secretpassword' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''
所以我显然只是弄乱了如何让 PASSWORD env 变量正确地吐出到单引号中。
到目前为止我似乎已经尝试了几千种选择,有没有人有什么好主意?
提前致谢
试试不用单引号。
sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
是否有任何特定原因将其保留在单引号中?因为单引号不会插入变量。
只有当你有多个 sh 命令到 运行 时才使用 '''
,如果它只是一个命令那么就这样做,它应该可以正常工作
sh "sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/ "
如果需要使用'''
然后在不带单引号的情况下使用它
sh '''
sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
'''