jenkins搭建_快速搭建Jenkins集群

关于Jenkins集群

在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故障的隐患也有分散作用,今天就来实战快速搭建Jenkins集群,Jenkins版本是2.190.2;

如何做到快速搭建集群

通过Docker可以省去大部分准备工作,您只需在Linux电脑上安装docker,在辅以少量命令和操作即可完成集群搭建;

环境信息

本次实战的环境一共要用三台电脑,它们的设置都是一样的,如下:

  1. 操作系统:CentOS Linux release 7.6.1810
  2. 防火墙关闭
  3. docker:1.13.1

三台电脑的信息如下:

a041c4019300cb67388646488681e31c.png

建议agent2节点的内存大于4G,因为下一篇的实战操作会用agent2编译构建spring-framework,对内存的需求略大;

准备工作

  1. 后面的所有操作都是root账号;
  2. 在每台电脑上创建文件夹/usr/local/jenkins

创建Jenkins的master

  • 登录master机器,执行以下命令:
docker run  -u root  -idt  --name master  -p 8080:8080  -p 50000:50000  -v /usr/local/jenkins:/var/jenkins_home  -v /var/run/docker.sock:/var/run/docker.sock  jenkinsci/blueocean:1.19.0
  • 执行docker logs master,会在控制台显示jenkins的登录秘钥,如下图红框所示:
9fd9573473b2f1b9e3bf22e199d3a6b8.png
  • 浏览器输入地址:http://192.168.133.131:8080 ,显示Jenkins登录页面,如下图所示,在红框位置输入刚才复制的登录秘钥即可登录:
85ba0493d4e83c5e750bf1890ce3e582.png
  • 选择安装推荐的插件
69408c155417e679787c9938a18376bd.png
  • 静候插件在线安装完成:
1c2246fe174bc82900804760c515e610.png
  • 接下来是创建管理员和使用实例url的操作,这里就不多说了,您按实际情况自行斟酌;
  • 至此,Jenkins的master已经搭建好,接下来将agent1和agent2作为工作节点加入集群;

加入agent1

  • 在Jenkins网页上新增节点,操作如下图,先进入节点管理页面:
f5eaeb744358fe3c98c68024cd0e2be0.png
  • 如下图,新增一个节点,名为agent1
d0447835d036ead98c246150b35e7ff6.png
  • 接下来的节点详情信息如下图,注意四个红框中的内容要和图中保持一致:
dc88db86a1e6b7db71e0c6d45910546f.png
  • 保存成功后会显示机器列表,如下图,图标上的红叉表示机器不在线(此时agent1还没有接入),点击红框:
68c32f8ff2740653642133cd21676e1d.png
  • 如下图所示,红框中的命令就是agent1的启动命令,执行该命令的机器会以agent1的身份加入集群:
67208edc941441dee92e17daf5cbc41b.png
  • 注意上图红框中的agent.jar是个名为agent.jar的文件的下载链接,将此文件下载到agent1电脑的/usr/local/jenkins目录下;
  • ssh登录agent1电脑,执行以下命令,即可将agent1加入Jenkins集群:
docker run  -u root  -idt  --name agent  -v /usr/local/jenkins:/usr/local/jenkins  bolingcavalry/openjdk-with-sshpass:8u232  java -jar /usr/local/jenkins/agent.jar  -jnlpUrl http://192.168.133.131:8080/computer/agent1/slave-agent.jnlp  -secret 44c3e8d1531754b8655b53294bbde6dd99b3aaa91a250092d0d3425534ae1058  -workDir "/usr/local/jenkins"

上述命令中的后半部分,即java -jar …就是前面图片红框中的agent1启动命令,唯一要改变的是将agent.jar改成绝对路径/usr/local/jenkins/agent.jar

  • 上述命令的镜像是bolingcavalry/openjdk-with-sshpass:8u232,其Dockerfile内容如下,可见非常简单,就是OpenJDK镜像里面安装了sshpass,这样的容器可以在执行ssh命令时带上远程机器的密码,而不用等待用户输入密码,这样便于shell脚本执行ssh命令:
FROM openjdk:8u232ARG DEBIAN_FRONTEND=noninteractiveRUN apt-get update && apt-get install --assume-yes sshpass
  • 去Jenkins的网页上查看节点列表,如下图,可见agent1已经成功加入:
bb4b2cd971164daf90837086bd373f69.png

加入agent2

agent2加入集群的方式和agent1大部分是一样的,只有以下两点要注意:

  1. 在Jenkins页面上创建节点,名称是agent2
  2. agent2的标签是gradle,如下图红框所示:
f3664720acb56db763bb040684417fc2.png
  • 此时agent2也加入成功:
4fe76a38d1b7fc6a111a0e98d6136412.png

至此,Jenkins集群搭建完成,这两个节点带有不同的标签,下一篇文章《Jenkins集群下的pipeline实战》,我们在这个集群环境创建pipeline任务,并通过标签被分配到不同的节点上,实现多节点并行执行;

欢迎关注公众号:程序员欣宸

1a80d5353ae7850009b91132532747bd.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值