回答您的问题以及我如何配置我的流程:
1.配置Jenkins
- 安装 Publish over SSH 插件
- 配置 Jenkins => 系统配置
通过 SSH 发布部分
- 密钥 => -----BEGIN RSA PRIVATE KEY----- ...这是您的密钥 ... -----END RSA PRIVATE KEY----- 1.2.1.2 SSH 服务器 =>
- 名称:Server_1(它只是配置的名称)
- 主机名:example_server_1.com(您的服务器的网址)
用户名:ec2-user(亚马逊)
单击添加服务器按钮
- 名称:Server_2(它只是配置的名称)
- 主机名:example_server_2.com(您的服务器的网址)
- 用户名:ec2-user(亚马逊)
2.作业配置
- 打开作业 => 配置
- 检查此项目是否已参数化
添加选择参数
- 名称:服务器
选择:
server_1
server_2
- 选择通过 SSH 发送文件或执行命令=> SSH 服务器部分
- 名称:选择您的第一台服务器
- 输入传输集数据(源文件和/或 Exec_command)
- 单击高级
- 标签:server_1(这是您选择参数的首选)
- 单击添加服务器
- 名称:选择您的第二台服务器
- 输入传输集数据(源文件和/或 Exec_command)
- 单击高级
- 标签:server_2(这是您选择参数的第二个选择)
- 在按钮Add Server前面,单击Advanced
- 检查参数化发布
- 参数名称:服务器(这是您选择的参数的名称)
3.作业运行
运行作业并选择例如 Server => server_2。
您将在日志中看到:
SSH: Skipping [server_1] - Label server_1 does not match expression server_2
SSH: Publishing to [server_2] - Label server_2 matches expression server_2
SSH: Connecting from host [ip-10-0-0-37]
SSH: Connecting with configuration [server_2] ...
解释
该插件将名为“Server”的参数的值(您在作业开始之前选择)与您配置的标签进行比较。如果标签和参数匹配,则执行 SSH 命令。
希望对您有所帮助。因为我花了5个小时。