1、jenkins分布式简单介绍
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工做,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能html
2、jenkins工做原理
选择Gitlab做为git server。Gitlab的功能和Github差很少,可是是开源的,能够用来搭建私有git server,也提供很是强大的web GUI,好比开发者互相review源代码的时候就会很方便。java
系统的工做流程大概分为如下几步:linux
1> 开发者将新版本push到git server (Gitlab)。git
2> Gitlab随后触发jenkins master结点进行一次build。(经过web hook或者定时检测)web
3> jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本能够作的事情不少,好比编译,测试,生成测试报告等等。这些本来须要手动完成的任务均可以交给jenkins来作。windows
4> 咱们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。服务器
3、jenkins 主从配置
一、环境介绍并发
jenkins 版本:2.204.1ssh
jenkins master部署与window7,slave节点为linux分布式
二、jenkins主从配置
Manage Jenkins-》Mange Nodes-》
新建节点
节点名称:随便写,为了快速区分能够master或slave+响应IP区分开
配置节点:
名称:定义slave的惟一名称标识,能够是任意字符串,一般设置为slave主机名、ip地址
描述:关于slave的描述,一般用于描述与其它salve的区别
可执行器数量:这个值控制着Jenkins并发构建的数量. 所以这个值会影响Jenkins系统的负载压力. 使用处理器个数做为其值会是比较好的选择。
增大这个值会使每一个构建的运行时间更长,可是这可以增大总体的构建数量,由于当一个项目在等待I/O时它容许CPU去构建另外一个项目。
设置这个值为0对于从Jenkins移除一个失效的从节点很是有用,而且不会丢失配置信息
远程工做目录:
指定slave的工做目录路径(提早在slave节点建好路径)。最好设置为绝对路径,如“/var/jenkins”或“c:\jenkins”。这里填写的是相对于slave主机的路径,正常状况下,没必要对master主机可见
用法:
尽量的使用这个节点:
这是默认和经常使用的设置. 在这种模式下,Jenkins会尽量的使用这个节点.任什么时候候若是一个构建能使用这个节点构建,那么Jenkins就会使用它.
只容许运行绑定到这台机器的Job
Jenkins只会构建哪些分配到这台机器的Job. 这容许一个节点专门保留给某种类型的Job.例如,在Jenkins上连续的执行测试,你能够设置执行者数量为1,那么同一时间就只会有一个构建, 一个实行者不会阻止其它构建,其它构建会在另外的节点运行.个
启用方式:
launch agent agents via ssh:经过ssh启动代理
launch agent by connecting it to the master:启动代理程序,将其链接到主服务器
launch agent via execution of command on the master:经过执行主机上的命令来启动代理
let jenkins control this windows agent as a windows service:让jenkins做为一个windows服务来控制这个windows代理
保存节点后,显示以下:
点击launch下载slave-agent.jnlp和agent.jar包,并上传slave节点服务器且启动
执行命令须从上复制:java -jar agent.jar -jnlpUrl http://XXX.XXX.XXX.XXX:8080/computer/XXX/slave-agent.jnlp -secret 19b1c0348b0312ffa16e5eca13dc9eb28258f2f8701ce94e90f33b4846312b5e -workDir "/data/jenkins" &
设置后台运行,若是显示出现connected 表示slave启动成功,以下
此刻新建slave节点应该就显示在线:
三、遇到问题及解决方法
参考连接:
https://www.cnblogs.com/lxs1314/p/7551309.html
https://www.cnblogs.com/majestyking/p/10421492.html
https://www.cnblogs.com/zndxall/p/8297356.html
https://cloud.tencent.com/developer/article/1087020
遇到的坑还的本身填本身多总结多回顾、、、、