jenkins - 在脚本中将 PASSWORD 凭据变量从 Jenkins 传递到 sshpass
问题描述
我在 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 环境变量正确吐出到单引号中。
到目前为止,我似乎已经尝试了几千种选择,有人有什么好主意吗?
提前致谢
解决方案
尝试不使用单引号。
sshpass -p ${PASSWORD} scp ${WORKSPACE}/target/citest-1.0-SNAPSHOT.jar root@target_service:/
是否有任何特定理由将其保留在单引号中?因为单引号不会插入变量。
推荐阅读
- python - Python 何时评估导入的文件?
- c++ - 向着色器添加线条不会绘制任何内容
- r - R:如何使用 3 维数组的边距作为同一函数的单独参数?
- reactjs - 具有不同道具数量的对象的 TS 类型
- excel - 显示 3 个单元格的特定组合的真或假
- ios - swift - 当用户关闭应用程序时将图像上传到 Firebase 存储
- installation - 在 linux 上启动较新的 Karaf (4.2.8),功能:repo-add camel 不起作用
- xslt - 在分组中按变量选择节点
- python - conda 更新不起作用 - conda 列表下的包版本保持不变
- hikaricp - 在 CachedRowSet 查询上返回 null