Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务器ip上的Jenkins ssh作为构建参数传递_Ssh_Jenkins - Fatal编程技术网

服务器ip上的Jenkins ssh作为构建参数传递

服务器ip上的Jenkins ssh作为构建参数传递,ssh,jenkins,Ssh,Jenkins,我的问题很简单-是否有一个Jenkins ssh插件,我可以用它完成不同服务器IP的参数化构建。我尝试了“通过ssh发布”,但服务器IP已在jenkins配置页面中注册,我无法找到将其添加为构建参数的方法。此处有几个选项: 您希望运行多个构建,每个构建具有不同的IP地址,并且IP地址不会更改。与用户定义的轴一起使用 您希望运行一个生成,但每次运行它时,您都希望手动输入一个新的IP地址。使用插件 您希望运行一个版本,并且可以从另一个版本派生要使用的IP地址。使用插件 可能还有更多的选择,所以如果我

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

此处有几个选项:

  • 您希望运行多个构建,每个构建具有不同的IP地址,并且IP地址不会更改。与用户定义的轴一起使用
  • 您希望运行一个生成,但每次运行它时,您都希望手动输入一个新的IP地址。使用插件
  • 您希望运行一个版本,并且可以从另一个版本派生要使用的IP地址。使用插件

  • 可能还有更多的选择,所以如果我没有完全理解您的场景,只需修改一下您的问题,我将相应地修改此答案。

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

    在构建中为服务器名称添加一个字符串参数,即SERVERS

    然后在构建配置中所有服务器底部的高级部分下打开“参数化发布”。您可以为它指定您在上面添加的参数(服务器)的名称,该参数将保存一个与所有标签进行比较的正则表达式

    正则表达式基于Java-so.*匹配所有标签。一个具有完整ip地址的字符串将只与一台服务器匹配,并将该ip作为标签


    它有点笨重,但确实有效。

    您打算如何将正确的值输入到参数中?它是来自一个环境变量,还是另一个生成的结果,或者是用户在生成时输入的,或者…?它是用户在生成时输入的。我想用${TARGET\u SERVER\u IP}这样的参数来代替这个带有预定义服务器的组合框。您可以在SSH站点的服务器地址字段中添加“${TARGET\u SERVER\u IP}”字符串。它会警告您,它无法连接到服务器,请继续。然后,添加一个构建参数TARGET_SERVER_IP,并在步骤的组合框中选择“user@${TARGET_SERVER_IP}:22”站点该变量的可能重复项应以“$”作为前缀还是原始?ie-
    $SERVERS
    SERVERS
    。我将尝试这个,并为自己找到答案,但这将对稍后来到这里的其他人有用。另外,您是否有相关文档的链接?如何为每个SSH服务器分配标签?在全局配置页面的SSH服务器部分中,我看不到这一点。@JamesSelvakumar:对于添加到其中的每台服务器,您都可以在构建配置本身中执行此操作。应该有一个“标签”复选框。它位于“高级”部分,您可以在该部分中选择服务器的名称。选中“标签”复选框时,将在设置标签的位置显示一个文本字段。