Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统。如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenkins的master/slave模式了。
一、Master/Slave模式
Jenkins有非常丰富的插件,可以做很多事情,而部署Jenkins的服务配置性能是有限的,当Jenkins要完成上百个任务时,就会占用非常多的资源,甚至有些资源之间是有冲突的,所以为了分担Jenkins服务器的压力,引入了master/slave模式。
- master:Jenkins服务器。主要负责UI展示、任务调度、系统管理工作
- slave:执行机(奴隶机)。主要执行master分配的任务,并返回任务的进度和结果
类似于我们在职场中的“主管-小弟”模式,主管可以接上级的各种任务,并将任务分派到各位小弟手中,跟踪各位小弟的任务进展和任务结果
一个master + 多个slave = 一个主管 + 多个小弟
二、Master上添加执行机
1.以系统管理员的账号登录Jenkins系统
进入Manage Jenkins—>Manage Nodes:
2.开启JAVA Web启动代理
进入Manage Jenkins—>Configure Global Security:
开启后,保存
3.添加一个新的节点
4.配置节点信息
5.保存配置
保存后,在节点列表中,可以看到此节点,并且右下角有个红色的叉,表示slave执行机尚未与master主机连接
三、slave机向master主机注册
在slave机的浏览器当中,访问master的Jenkins地址,点击下图中的slave机名字,可以进入执行机页面
以windows为例,在执行机页面中,点击Launch图标,会下载slave-agent.jnlp
双击slave-agent,jnlp,弹出下图,点击运行
windows出现下图弹框,说明已经与master主机连接成功
在浏览器刷新一下执行机页面,会自动显示已经连接的状态
四、集成自动化项目
配置好执行机之后,接下来我们就可以使用slave机执行自动化任务了,在Job的配置中,General选项勾选 限制项目的运行节点(Resrict where this project can be run),在 标签表达式(Label Expression)中输入执行机名字或者标签名来指定当前任务由哪个slave执行机来执行,后续的构建内容全部都是在此执行机上执行,因此该执行机必须具备执行此任务的能力,即执行机机器上必须有运行自动化脚本的环境