1. 插件安装
远程机器上安装如下插件:
插件安装: Parameterized Remote Trigger

2. 远程机器上的配置
2.1 Job触发器配置
在构建触发器模块选择触发远程构建(例如,使用脚本)选项,并填写身份验证令牌,如:

2.2 获取用户的API Token
新建一个Jenkins用户用来,用来触发远程构建,新建用户路径如下:
Jenkins首页->系统管理->管理用户->新建用户
比如,新建一个remote_user的用户,用户创建成功后,退出当前账号(一定要使用刚创建的账号进行登录,否则无法生成新创建用户的API Token),使用刚创建的remote_user登录,登录成功后,点击页面右上角的remote_user用户名,进入用户管理界面,点击设置选项,进入设置页,找到API Token配置部分:

点击添加新 Token,在点击生成,将生成的token,copy下来,后面需要用到:

3. 浏览器中构建
API Token和身份验证令牌配置好后,不用登录到Jenkins系统,可以直接发起构建请求。
3.1 匿名用户具有可读权限
匿名用户具有可读权限的配置如下:

3.1.1 非参数化构建
浏览内输入如下地址,可直接构建Job:
http://ip:port/job/mydemo/build?token=123456
3.1.2 参数化构建
http://ip:port/job/mydemo/buildWithParameters?token=123456&my=two
- 参数化构建需要使用:
buildWithParameters; - 同时需要在任务中,配置参数化构建过程

3.2 匿名用户不具有可读权限
未设置匿名用户具有可读权限的情况下,在浏览器请求上面的网址后,Jenkins会跳转到登录页。
4. Linux中构建
4.1 非参数化构建
Linux环境通过curl命令触发运行构建:
curl -X post -u remote_user:11bb82e22440e2c0b704cf9647xxxxxxxx http://ip:port/job/mydemo/build?token=123456
-
remote_user:登录Jenkins的用户名: -
remote_user冒号后是该用户的API Token;
Linux的curl命令用来发送HTTP请求,请求格式为:
curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器 IP 地址]:[服务器端口 号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]
参数说明:
-
-X:指定请求方式 -
-v:显示响应结果 -
-u:携带用户名/密码 -
-H:携带请求消息头信息
4.2 参数化构建
执行命令:
curl -X post -u remote_user:11bb82e22440e2c0b704cf9647xxxxxxxx http://ip:port/job/mydemo/buildWithParameters?token=123456&mydemo=one&report=123
5. 应用
不登录到Jenkins上,执行构建任务:
在浏览器中输入
http://ip:port/job/mydemo/build?token=123456格式的地址,页面是空白的,但是构建任务已经开始执行了,这时要知道所在的Jenkins是否具有匿名用户访问权限;-
Liunx上可直接使用
curl命令来发请求:curl -X post -u remote_user:11bb82e22440e2c0b704cf9647xxxxxxxx http://ip:port/job/mydemo/build?token=123456
参数化构建和非参数化构建,使用不同的请求URL,具体的参照
步骤3和4;
一个(本地)Jenkins触发另一个(远程)Jenkins执行指定job:
比如有这么一个场景,开发代码通过Jenkins部署成功后,希望自动运行下已有的自动化用例,这时可以在开发部署发布的job中增加一个构建后的操作,选择执行 shell,命令输入如下类似内容,这样开发代码发布成功后,就会触发远程的Jenkins执行相应的job:
curl -X post -u remote_user:11bb82e22440e2c0b704cf9647xxxxxxxx http://ip:port/job/mydemo/build?token=123456

