Jenkins如何在一个构建任务中通过SSH的Label和参数进行参数化控制多台远端服务器?
前提:
在做自动化部署时,遇到难题,发现SSH只能固定控制具体的1台远程服务器执行任务。
但现实中是需要在多台服务器上安装和部署。在网上查了资料,终于看到解决办法,虽然还是没达到随意一台机器,只能做到多台。
需求:
需要在一个构建任务中对多个服务器进行构建。
解决方案:
通过SSH的Label和参数来进行参数化选择多个机器的其中1个远端服务器来执行构建任务。
具体详细操作如下:
1.配置jenkins Configure
Dashboard-->Manage Jenkins-->Configure System,在Publish over SSH操作中,配置多个服务器
例如:
服务器1:10.1.1.104
服务器2:10.1.1.118
都能够连接到服务器,如下图。
2.构建任务时,配置参数server_name
3.SSH(设置多个相同的构建任务,但选择不同的SSH),并使用Label和参数
3.1、创建构建任务,选择Send files or execute commands over SSH
执行脚本,例如:
#查看目录
ls
3.2、需要勾选Verbose output in console,这样SSH执行就会在控制台输出
-->选择Name下方的”高级”按钮,展开后,勾选Verbose output in console。
3.3、SSH的参数化控制多台服务器,主要是Label配置和勾选参数化
-->勾选Label,并输入值和参数的值一样
3.4、SSH设置使用参数server_name
-->点击最下方的”高级”按钮,在Parmeterzied publishing下方的Parameter name处输入参数的名称。
4.执行构建
选择其中1个参数执行。
5.执行后,查看控制台结果,执行成功。
希望对大家有用,有用点个赞,原创,谢绝转载。
参考:
如何使用Publish over SSH插件标签字段控制Jenkins中的参数化发布 - 码客
https://plugins.jenkins.io/publish-over-ssh