【发布时间】:2020-07-04 21:20:48
【问题描述】:
感谢您花时间阅读我的问题。
我有一个 jenkins 作业,它通过 ssh 在远程机器上执行 shell 脚本。
此脚本以“形式”的方式询问用户名和密码,因此不能将两个变量作为参数发送。此脚本还验证用户名和密码是否设置为远程计算机上的环境变量,如果是,它会在不要求输入的情况下运行。
这是我给詹金斯工作构建的命令:
ssh admin@10.24.66.254 'SVN_USER=foo SVN_PASSWORD=bar sh /app/script.sh'
--> 脚本运行正常,但它在 jenkins 作业配置和控制台输出中显示了我的凭据。
--> 现在我考虑对作业进行参数化,以便它动态询问用户名/密码,但我不知道如何将它们注入我的命令行,以便我可以将它们作为 env vars 传输到远程机器。
当我这样做时:
ssh admin@10.24.66.254 'SVN_USER=$LOGIN SVN_PASSWORD=$PWD sh /app/script.sh'
它不认为 $LOGIN 和 $PWD 是 jenkins 输入变量,因为用于执行脚本的简单引号。
希望我能把情况说清楚,谢谢阅读!
【问题讨论】:
标签: shell variables jenkins dynamic ssh