一、jenkins分布式简单介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

二、jenkins工作原理

选择Gitlab作为git server。Gitlab的功能和Github差不多,但是是开源的,可以用来搭建私有git server,也提供非常强大的web GUI,比如开发者互相review源代码的时候就会很方便。

系统的工作流程大概分为以下几步:

1> 开发者将新版本push到git server (Gitlab)。

2> Gitlab随后触发jenkins master结点进行一次build。(通过web hook或者定时检测)

3> jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给jenkins来做。

4> 我们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。

三、jenkins 主从配置

  1、环境介绍

  jenkins 版本:2.204.1

  jenkins master部署与window7,slave节点为linux

  2、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节点应该就显示在线:

    

  3、遇到问题及解决方法

    参考链接:

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

  遇到的坑还的自己填自己多总结多回顾、、、、

jenkins-master-slave节点配置总结的更多相关文章

  1. Jenkins进阶-Slave 节点的配置(11)

    Jenkins的主节点无法满足当前的发布需求,所以我们需要增加一个从节点,我们是本着节约的模式,所以主从节点均需要有任务来进行构建: 1.系统管理->管理节点: 2.添加从节点,管理节点-> ...

  2. jenkins中slave节点连接的两种常用方式

    我们在使用jenkins的时候,一般来说肯定是有slave节点的,本来网上也有好多关于jenkins节点配置的教程,我也就不写了.简单说明一下:任务一般是在slave上面运行的.当然不是讲master ...

  3. 【我的Android进阶之旅】Jenkins挂载slave节点,增强分布式编译的效率

    由于公司的Jenkins任务越来越多,而且所有的Android Jenkins任务都在同一台服务器上进行编译,而且该服务器配置Jenkins任务最多3个任务同时运行,所以有时候大家一起编译的时候,只能 ...

  4. Jenkins Master/Slave架构

    原文:http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html 一 Jenkins Master/Slave架构 Master/Slav ...

  5. 基于Kubernetes构建企业Jenkins master/slave CI/CD平台

    搭建平台目的: k8s中搭建jenkins master/slave架构,解决单jenkins执行效率低,资源不足等问题(jenkins master 调度任务到 slave上,并发执行任务,提升任务 ...

  6. 配置Jenkins的slave节点的详细步骤适合windows等其他平台(转)

    @  新建一个slave节点在Jenkins服务器上 1,进入Jenkins的主界面,进入“Manage Jenkins” 页面: 2,点击如下图中的“Manage  Nodes”: 3,进入页面后点 ...

  7. 配置Jenkins的slave节点的详细步骤适合windows等其他平台

    @  新建一个slave节点在Jenkins服务器上 1,进入Jenkins的主界面,进入"Manage Jenkins" 页面: 2,点击如下图中的"Manage  N ...

  8. Jenkins master slave设置遇到的坑以及解决办法

    写好了selenium测试脚本,本地运行没问题,但是现在流行分布式运行,并行执行以显得高大上. 然而,装高大上是要付出代价的. Selenium Grid 已经完美实现分布式和并行了. 奈何现在会Je ...

  9. Jenkins—Master/Slave模式

    Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统.如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenki ...

  10. Jenkins 进阶篇 - 节点配置

    当我们使用 Jenkins 构建的项目达到一定规模后,一个 Jenkins 服务可能承受不了负载,会导致很多的构建任务堆积,严重的话还会拖垮这台服务器,导致上面的服务无法使用.例如我们公司目前在 Je ...

随机推荐

  1. gcc/g++以c++11的方式编译

    方法一: 在程序头加上预定义编译器命令 #pragma GCC diagnostic error "-std=c++11" 通过#pragma 指示 GCC编译器处理错误的方式以c ...

  2. UVA - 1606 Amphiphilic Carbon Molecules(两亲性分子)(扫描法)

    题意:平面上有n(n <= 1000)个点,每个点为白点或者黑点.现在需放置一条隔板,使得隔板一侧的白点数加上另一侧的黑点数总数最大.隔板上的点可以看做是在任意一侧. 分析:枚举每个基准点i,将 ...

  3. oracle数据库常用操作语句 、创建视图

    新增字段:alter table 表名 add (NAME VARCHAR(12), NAME NUMBER(10) );--如果添加单个字段可以不用括号包起来,例如 alter table cust ...

  4. C语言-浮点类型

    C语言-浮点类型 浮点类型 在0的两侧有一小块区域,这个区域非常接近0,但是不等于0,是float(表达范围数量级10^-38^)或者double(达范围数量级10^-308^)无法表达的,而0是可以 ...

  5. window10 家庭版安装docker和php开发环境

    前期工作   一.在宿主机创建文件夹 D:\wnmp\mysql57-conf D:\wnmp\mysql57-log D:\wnmp\nginx110-conf D:\wnmp\nginx110-l ...

  6. (简单模拟)P1003 铺地毯

    题解: 从最后一个输入的数据开始排查,如果说你找到了这个点上面有地毯,那么就直接输出这个值,如果没找到就按照题干的意思输出-1. #include<iostream>#include< ...

  7. JZOJ-2019-11-5 B组

    T1 给出一二维01矩阵\(f_{i,j}\), 定义点\((x_a, y_a), (x_b, y_b)\)的「距离」为\(max\{|x_a-x_b|, |y_a-y_b|\}\) 求出一矩阵\(w ...

  8. 基本pipline用法

    #!groovynode { stage('代码获取') { checkout([$class: 'SubversionSCM', additionalCredentials: [], exclude ...

  9. BZOJ 4084 [Sdoi2015]双旋转字符串

    题解:hash 至今不会unsigned long long 的输出 把B扔进map 找A[mid+1][lenA]在A[1][mid]中的位置 把A[1][mid]贴两遍(套路) 枚举A[mid+1 ...

  10. ES6 之 对象的扩展

    1.Object.is() 判断俩个值是否相等 +0 不等于 -0 NaN 等于自身 console.log(Object.is('foo','foo')); // true console.log( ...