【问题标题】:How to inject dynamic secret parameters from Jenkins job to ssh shell script如何将 Jenkins 作业中的动态秘密参数注入 ssh shell 脚本
【发布时间】: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


    【解决方案1】:

    一个很好的起点是Injecting-Secrets-into-Jenkins-Build-Jobs

    您也可以使用 Jenkins 的 Environment Injector 插件。但请务必在使用此插件时查看安全通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2016-12-08
      • 2017-05-13
      • 2018-07-16
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多