在脚本中将密码凭据变量从Jenkins传递到sshpass
我在jenkins中设置了一些全局凭据,用户名密码类型 我现在必须将一个文件scp到管道中的目标服务器 为了参数起见,假设我的密码变量是secretpassword 有人知道如何获取密码以正确使用sshpass吗 这是我要做的事情的要点在脚本中将密码凭据变量从Jenkins传递到sshpass,jenkins,sshpass,Jenkins,Sshpass,我在jenkins中设置了一些全局凭据,用户名密码类型 我现在必须将一个文件scp到管道中的目标服务器 为了参数起见,假设我的密码变量是secretpassword 有人知道如何获取密码以正确使用sshpass吗 这是我要做的事情的要点 sh ''' sshpass -p'${PASSWORD}' scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/ ''' 不管我怎么做,我似乎都无法正确地将密码传递给ss
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.jarroot@target_service:/
有什么特别的理由把它保留在单引号中吗?因为单引号不会插入变量。请尝试不使用单引号
sshpass-p${PASSWORD}scp${WORKSPACE}/target/citest-1.0-SNAPSHOT.jarroot@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:/
'''
只有当您有多个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:/
'''