Jenkins自动化CI CD流水线之4--Master-Slave架构
一、介绍
jenkins的Master-slave分布式架构主要是为了解决jenkins单点构建任务多、负载较高、性能不足的场景。
Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行构建。一个master(jenkins服务所在机器)可以关联多个slave用来为不同的job或相同的job的不同配置来服务。
二、安装
前提:slave所在服务器必须有java环境
jenkins web端进行操作:
系统管理->管理节点->新建节点
1)进行基础配置,配置选项中的内容是可变的,根据情况来
注意这里需要配置凭据,也就是配置slave所在服务器用户和密码
之后保存,如果无误的话就会直接启动了,如图下所示是有问题的
通过看输出日志,我们发现是jdk的问题,一般来说,其会判断slave所在服务器有没有jdk,如果有的话其就会进行检测(其自己回去几个路径下进行检查),如下图所示,就是没有检查到(因为jdk是我们自己装的,路径并不是默认的路径)。
没有检查到的话其就会去oracle官网下载,来为slave所在服务器进行安装,但是因为中国的原因,被墙了,所以也会下载失败,最终就导致彻底失败了,失败如图下:
有两种方法解决:推荐方法1:
方法1:
在配置时高级的选项里指定java路径:如下图所示:
方法2:
为java路径做一个软链接,保证jenkins可以检测到java。
[root@web ~]# ln -s /usr/local/jdk1.8/bin/java /usr/bin/java [root@web ~]# ll /usr/bin/java lrwxrwxrwx 1 root root 26 Jul 25 17:33 /usr/bin/java -> /usr/local/jdk1.8/bin/java
之后在看已经成功了!!!!!
并且我们也可以在slave所在服务器看到:
jar包就是负责接收master任务的。
三、配置
在项目job中进行配置:
可通过标签或者名称进行匹配(标签可在安装时配置)
四、构建
我们可以发现控制台的日志,其也是slave构建的
之后查看构建完的工作目录,也有我们预想中的文件。
这样基本上就实现了借助jenkins的slave去构建job了。
目前我们是在slave构建也在slave上部署,之后我们可以通过脚本,比如借助rsync、ansible等部署在其他服务器上。
五、扩展
我们也可以为我们的slave服务器在配置时候加上标签,这样也会方便我们选择,用法也不单单局限在一台服务器上,可以让多台slave去竞选。