单台Jenkins服务器可以满足企业测试环境及生产环境使用Jenkins自动部署+测试平台,如果每天更新发布多个WEB网站,Jenkins需要同时处理很多的任务。
基于Jenkins分布式,也即多Slave方式可以缓解Jenkins服务器的压力,Jenkins多实例架构如下图所示,可以在Windows、Linux、MAC等操作系统上执行Slave。
Jenkins Slave架构图
Jenkins多Slave原理是将原本在Jenkins Master端的构建项目分配给Slave端去执行,Jenkins Master分配任务时,Jenkins Master端通过SSH远程Slave,在Slave端启动slave.jar程序,通过Slave.jar实现对网站工程的构建编译以及自动部署。所以在Slave端服务器必须安装Java JDK环境来执行Master端分配的构建任务。配置多Slave服务器方法和步骤如下:
(1) 在Slave服务器,创建远程执行Jenkins任务的用户,名称为jenkins,Jenkins工作目录/home/Jenkins,Jenkins Master免秘钥登录Slave服务器或者通过用户名和密码登录Slave;
(2) Slave服务器安装JAVA JDK版本,并将其软件路径加入系统环境变量。
(3) Jenkins master端平台添加管理节点,系统管理à管理节点à新建节点à输入节点名称,分别如下图所示:
Jenkins Slave配置
Jenkins Slave配置
Jenkins Slave配置
(4) 配置www_slave节点,指定其Jenkins编译工作目录,设置IP地址,Credentials Add添加登录Slave用户名和密码,如下图所示:
Jenkins Slave配置
Jenkins Slave配置
(5) Jenkins Slave配置完毕,查看SLAVE状态如如图22-31所示:
Jenkins Slave状态信息
(6) 单击www_slave节点,然后选择launch salve agent,单击测试Slave Agent是否正常工作,如图22-32所示:
Jenkins Slave Agent测试
(7) 出现如下图所示,即证明Slave添加成功:
Jenkins Slave测试
Jenkins Slave测试
(8) 如上配置完毕,Jenkins-master通过ssh方式来启动slave的slave.jar脚本,java –jar slave.jar,Slave等待master端的任务分配,单击www.jfedu.net,然后选择立即构建,如下图所示:
Jenkins Slave构建任务
(9) Jenkins+Slave配置完毕后,如果同时运行多个任务,会发现只会运行一个任务,另外的任务在等待,那需要怎么调整呢,需要配置JOB工程勾选“在必要的时候并发构建”即可,如图22-35(a)、22-35(b)所示:
图22-35(a) Jenkins Slave构建多任务
Jenkins Slave构建多任务