jenkins分布式构建方案
一、架构:
Jenkins的Master-Slave分布式架构可以解决单点构建任务多、负载较高、性能不足的问题
二、原理:
对于jenkins的分布式框架,可以简单的理解为server-client模式,在jenkins中是Master-slave,也就是一个主的server叫Master,其他的子client都是slave,所以以后我们说slave就是指的一个一个的客户端,而master就是指的主机。
Master的作用:负责分发job任务的。把job分配给某个或者某几个slave来工作
Slave的作用:负责干活的,也就是do job的。一个一个的客户端来真正运行Master给我们的任务
Jenkins的分布式构建的核心概念是在slave主机部署一个slave.jar(linux上是remoting.jar),然后master主机和slave主机的slave.jar(linux上是remoting.jar)通讯实现分布式构建,因此部署Jenkins分布式构建的核心步骤是实现master主机和slave主机的无障碍(无密码)通讯,如图所示:

三、部署 :
前提条件:master节点需要安装jenkins、git、jdk,slave节点只需要安装jdk、git即可,不需要安装jenkins
环境准备:
- master节点:192.168.226.128
- slave 节点:192.168.226.129
本例子中的jenkins版本为2.289.3
1、master节点安装jenkins:
下载jenkins包,包名为jenkins.war,上传到master 机器上,执行命令nohup java -jar jenkins.war & 启动即可(本例子用root用户启动),此方式是直接通过java命令启动,也可以将jenkins.war包放在tomcat的webapps目录下,然后启动tomcat即可
2、启动后,通过IP或者域名进行访问,会提示输入初始化密码,密码位置如图:

登录后提示安装推荐的插件,如图:

注意:如果插件安装失败,可以先进入主界面后,点击系统配置–管理插件–高级,替换jenkin源为国内地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json ,如果还是不行,考虑jenkins版本过低,可升级尝试
可以不创建管理员用户,使用admin用户继续,如图:

实例配置可以不用动,保持原样即可,也可以根据需要修改,如图:

登录后,界面如图所示:

点击左侧的系统管理–全局工具配置,点击新增JDK,根据实际情况填写jdk位置(不建议自动安装与yum安装),如图:

在添加git位置,填写git的可执行文件位置即可,可用yum安装,如图:

3、slave节点新建用户jenkins(也可以使用其他用户),设置master节点到slave节点的免密登录,方法如下:
#slave节点执行命令,创建用户和组,并设置密码
groupadd jenkins
useradd -g jenkins jenkins
passwd jenkins
#master节点执行命令如下,一路回车即可
ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pub jenkins@192.168.226.129
4、打开master节点的Jenkins页面,点击左侧的系统管理-节点管理,如图:

点击左侧的新建节点,如图:

输入节点名称后,点击下方的确定,如图:




注意修改远程主机的/usr/loca/jenkins目录的文件夹权限,将属主和属组改为jenkins,否则会提示权限不够
点击节点列表中的test-slave,打开后点击启动代理即可,如图:

5、启动成功后,master节点会将remoting.jar文件拷贝到/usr/loca/jenkins目录下,并启动,如图:


在构建项目的时候,General选项下点击限制项目运行的节点,如图:

在构建任务的时候,可以发现已经通过test-slave来执行构建了,如图:

如何禁止master节点执行任务?
系统管理界面提示如图:

在主界面–点击系统管理–系统配置,将执行者数量修改为0,如图:

修改后,提示消失,此时只有slave节点才会执行任务,master不会执行任务


