Jenkins:通过 SSH 发布到多个主机,无需复制/粘贴

Jenkins:通过 SSH 发布到多个主机,无需复制/粘贴

我使用 Jenkins 的 Publish Over SSH 插件将同一组文件传输到一组主机,然后在那里运行一个小脚本。但是,使用“添加服务器”功能需要我为每个附加服务器重复源文件、远程目录和执行命令。

https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin

我正在寻找一种方法来指定应该执行插件的 ssh 服务器列表,最好是并行执行,尽管服务器数量(4-12)对于顺序流来说也足够小。

一些项目特定的背景:

  • 发布任务是将 JMeter 服务器转移到多个负载生成器并在那里启动它
  • 它目前是“构建环境”部分的一部分,因为实际构建是 JMeter 场景的执行。如果将这些步骤中的任何一个移到其他部分更有意义,我愿意接受。

提前感谢您的建议。

答案1

您还可以配置“执行 shell”块并在那里运行以下命令:

#!/bin/bash
LISTFILE="servers.list"
for server in $(cat $LISTFILE); do 
  pssh -i -p $SESSIONS -O ConnectTimeout=$TIMEOUT -h $LISTFILE "$COMMANDS"
done

pssh 是一个免费的并行 ssh 客户端,更多信息可以在这里找到这里

相关内容