一、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. 使用Oracle VM VirtualBox安装CentOS 7.6操作系统

    使用Oracle VM VirtualBox安装CentOS 7.6操作系统                                                               ...

  2. C语言-存储类&作用域&生命周期&链接属性

    1.概念解析(1)存储类 a.存储类就是存储类型,也就是描述C语言变量在何种地方存储. b.内存有多种管理办法:栈.堆.数据段.bss段..text段......一个变量的存储类属性就是描述这个变量存 ...

  3. Express ~ 获取表单 get 和 post 提交方式传送参数的对比

      一,获取 get 提交的参数   var id = req.query.id || ''   二,获取 post 提交的参数 var name = req.body.name || ''

  4. spark on yarn 安装笔记

    yarn版本:hadoop2.7.0 spark版本:spark1.4.0 0.前期环境准备: jdk 1.8.0_45 hadoop2.7.0 Apache Maven 3.3.3 1.编译spar ...

  5. java课程之团队开发冲刺阶段2.3

    一.总结昨天进度 1.完成整合功能 二.遇到的问题 1.在整合的过程中,总是发现在switch开关提醒了两次,后来发现是因为我使用了setChecked方法,而这个方法触发onCheckedChang ...

  6. Dubbo与Zookeeper 简介

    转自http://blog.csdn.net/congcong68/article/details/41113239 首先说一下Dubbo解决什么问题: (1)当服务越来越多时,服务Url配置管理变得 ...

  7. Spring Boot without the web server

    https://stackoverflow.com/questions/26105061/spring-boot-without-the-web-server/28565277 1. spring.m ...

  8. spring boot rest 接口集成 spring security(1) - 最简配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  9. UML-使用多态性和“Do It Myself”模式处理支付

    1.概念 "Do It Myself"使用多态性(和信息专家),这是常见的方法. Do It Myself:我(一个软件对象)是对实际对象的抽象,由我来完成这些通常由实际对象所完成 ...

  10. dd if= of= MBR

    1.备份分区表信息 sudo fdisk -l >hda.txt  #分区表信息重定向输出到文件中 2.备份MBR sudo dd if=/dev/sda of=mbr bs=512 count ...