Jenkins记录二:远程构建

1. 插件安装

远程机器上安装如下插件:

插件安装: Parameterized Remote Trigger


Parameterized_Remote_Trigger.png

2. 远程机器上的配置

2.1 Job触发器配置

构建触发器模块选择触发远程构建(例如,使用脚本)选项,并填写身份验证令牌,如:

触发远程构建配置.png


2.2 获取用户的API Token

新建一个Jenkins用户用来,用来触发远程构建,新建用户路径如下:

Jenkins首页->系统管理->管理用户->新建用户

比如,新建一个remote_user的用户,用户创建成功后,退出当前账号(一定要使用刚创建的账号进行登录,否则无法生成新创建用户的API Token),使用刚创建的remote_user登录,登录成功后,点击页面右上角的remote_user用户名,进入用户管理界面,点击设置选项,进入设置页,找到API Token配置部分:

用户设置页.png


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

API Token生成.png


3. 浏览器中构建

API Token身份验证令牌配置好后,不用登录到Jenkins系统,可以直接发起构建请求。

3.1 匿名用户具有可读权限

匿名用户具有可读权限的配置如下:

设置匿名用户具有可读权限.png


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
  • 同时需要在任务中,配置参数化构建过程
参数化构建过程.png

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

Linuxcurl命令用来发送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

构建后执行shell.png

软件测试QA的碎碎念.jpg

你可能感兴趣的:(Jenkins记录二:远程构建)