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