【问题标题】:Jenkins ssh on server ip passed as build parameter服务器 ip 上的 Jenkins ssh 作为构建参数传递
【发布时间】:2016-10-14 17:12:54
【问题描述】:

我的问题很简单 - 是否有一个 Jenkins ssh 插件,我可以通过它使用不同的服务器 ip 完成参数化构建。我试过“通过 ssh 发布”,但服务器 ips 已在 jenkins 配置页面中注册,我找不到将它们添加为构建参数的方法。

【问题讨论】:

  • 您打算如何将正确的值放入参数中?它是来自环境变量,还是另一个构建的结果,还是用户在构建时输入的,还是...?
  • 它是用户在构建时输入的。
  • wiki.jenkins-ci.org/download/attachments/53608875/… 我想使用 ${TARGET_SERVER_IP} 之类的参数来代替预定义服务器的组合框。
  • 您可以在 SSH 站点的服务器地址字段中添加“${TARGET_SERVER_IP}”字符串。它会警告你,它无法连接到服务器,继续。然后,添加一个构建参数 TARGET_SERVER_IP,并在该步骤的组合框中选择您的“user@${TARGET_SERVER_IP}:22”站点

标签: ssh jenkins


【解决方案1】:

您必须将所有可能的服务器添加为 SSH 服务器,为每个服务器分配一个标签(可能是 ip)并为每个服务器设置传输集/执行命令,即使它们都相同。

为您的构建添加一个字符串参数作为服务器名称,即。服务器。

然后在构建配置中所有服务器底部的“高级”部分下打开“参数化发布”。你给它上面添加的参数的名称(SERVERS),它将包含一个与所有标签进行比较的正则表达式。

正则表达式基于 Java - 所以 .* 匹配所有标签。带有完整 ip 地址的字符串只会匹配以该 ip 作为标签的一台服务器。

这有点笨拙,但确实有效。

【讨论】:

  • 变量应该以'$'作为前缀还是它是原始的?即-$SERVERSSERVERS。我将尝试这个并自己找出答案,但这对以后来这里的其他人很有用。另外,你有这个文档的链接吗?
  • 我们如何为每个SSH服务器分配一个标签?我在全局配置页面的 SSH 服务器部分看不到。
  • @JamesSelvakumar:您可以在构建配置本身中为您添加的每个服务器执行此操作。应该有一个“标签”复选框。它位于您选择服务器名称的正下方的“高级”部分中。当您选中标签复选框时,会在您设置标签的位置出现一个文本字段。
【解决方案2】:

这里有几个选项:

  1. 您希望运行多个构建,每个构建具有不同的 IP 地址,并且 IP 地址不会改变。将Matrix build 与用户定义的轴一起使用。
  2. 您想运行一个构建,但每次运行它时,您都想手动输入一个新的 IP 地址。使用build with parameters 插件。
  3. 您想运行一个构建,而要使用的 IP 地址可以从另一个构建派生。使用parameterized build trigger 插件。

可能还有更多选择,所以如果我没有完全正确地理解你的情况,只需稍微修改你的问题,我会相应地修改这个答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 2016-09-24
    相关资源
    最近更新 更多