jenkins的版本是2.70,使用下来感觉是一个不错的版本,至于如何搭建jenkins,在此就不多说了,推荐的方法是先安装tomcat,然后再加jenkins.war放在tomcat的webapp路径下来启动jenkins会比较好,这样不存在权限的问题,否则会出现root和jenkins用户权限的相关问题。

由于我的其中一台机器是centos的,没有图形化Jenkins,所以将这台centos作为jenkins master,安装jenkins。

在我们需要不同平台来出不同类型的包时,比如,需要windows平台打exe文件,需要ios系统打ipa的文件,需要linux系统打so,jar等,这种master-slaver的模式就很适用了。

以下分别介绍了当slave是mac系统的时候,当slave时centos系统的时候,当slave是windows的系统的时候,如何设置

一、当slave是mac系统的时候

先说说jenkins-master的设置:

1.系统管理-->管理节点-->新建节点

2.配置新建节点

Name:可以随意命名,用来标记slave机器,我个人喜欢标记为slave机器的系统,比如server-ios

描述:随意,一般设置为slave机器的ip地址

of excutors:slave主机slave的并行数,即同时可以下发多少个job到slave上执行

远程工作目录:用来放工程的文件夹,jenkins master上设置的下载的代码会放到这个工作目录下。

标签:标签一般设置为slave 主机的IP

用法:选择“只允许运行绑定在这台机器的job”

启动方式:选择“Lanch agent via Java Web Start”

    默认是没有这个选项的,需要做设置。参考:http://blog.csdn.net/e295166319/article/details/54946966

    该版本的配置如下:

Avalibility:keep this agent online as much as possible

如果要设置slave机器上对应的环境变量,可以勾选如下项设置:

至此,slave的设置就算结束了。

3.下载节点服务

slave设置结束后,会看到如下图,点击这个"Launch"会下载一个slave-agent.jnlp的文件。

4.将这个slave-agent.jnlp文件上传到slave机器上刚才设置的‘远程工作目录’下,双击这个文件,会跳出如下:

然后点击‘运行’,会看到如下:

注意,这个图框不能关掉,缩小就可以了,如果关掉,slave就会掉线,同理,如果发现slave不是在线状态,再次双击slave-agent.jnlp打开这个进程即可。

表示slave机器已经连接上了,此时查看master jenkins上,就可以正常看到slave机器是在线的,如下:

如上,server-ios就是刚才设置的slave主机,对应的系统类型,存储大小都是有的。

5.在jenkins上设置job下发到slave机器上执行

(1)master jenkins上点击‘新建’,新建一个自由风格的任务

(2)勾选参数化构建过程,设置如下:

(2.1)选择Node,如下

(2.2)然后默认的任务下发节点为刚才设置的server-ios;其中Name可随意设置,一般比较直观的,会设置代码工程名。

6.源码下载

7.添加构建脚本

最后点击构建的时候,会在执行状态中看到,已经下发到slave上,如下

这个任务就是刚才新建的任务,同样登陆slave机器上的工作目录(即前面节点设置的‘远程工作目录’),可以看到这个工程,如下:

至此,jenkins master-slave就算结束了。

二、当slave是centos系统的时候

同样,先说说如何再jenkins-master上设置节点

1.创建节点步骤和“当slave是mac系统的时候”一样,节点界面也是类似,我的如下:

2.节点保存后显示如下:

由于centos是非图形化界面的,所以倾向于使用命令行方式"Run from agent command line"启动slave.

如上截图,首先下载slave.jar,并放到centos slave的工作目录下(工作目录根据自己的设置,即新建节点时设置的‘远程工作目录’),我的远程工作目录如上设置为/root/src/,在slave.jar放到slave上后,执行dos2unix slave.jar;chmod 777 slave.jar后,执行上面截图的命令:

java -jar slave.jar -jnlpUrl http://192.168.8.246:8080/jenkins/computer/centos-233/slave-agent.jnlp -secret 0576e4e935a2d096f994dc5b0009737566dc2cc728efc1c440f3615607e697   &

设置后台运行,如果显示出现connected 表示slave启动成功,如下:

这时在jenkins master上看状态,显示在线,如下:

各项都能看到,至此,slave 已经启动了,关于如何下发任务到slave上,参考第一部分"当slave是mac的时候"即可。

【【备注:如果你是使用javaws 命令调jnlp文件,你可能需要做如下操作

  yum -y install libX11

  yum -y install libXext

  yum -y install  libXrender

  yum -y install  libXtst

】】

说明:使用上面的‘lanch agent with java web start ’方法在slave上执行命令来启动slave,这种方式对于centos来说,就我个人使用发现不太稳定,后面在网上搜到一种更好的方法,参考:http://blog.csdn.net/liuchunming033/article/details/52025541

我自己的设置如下:

其中我采用的是用户名密码的那种,使用的是从节点的登陆用户名密码,root/$password

但是在lanch的时候会报错,找不到java,此时需要在设置从节点的时候,添加对应的环境变量,如下:

这种方法不需要下载jnlp和slave.jar文件到slave的机器上,会直接使用上面填写的用户名和密码来登陆slave,lunch过程中可能还需要java来调用某个服务,所以需要指定jdk的路径(具体过程没有详细研究过)。

三、当slave是windows系统的时候

同样,先说说如何在jenkins-master上设置节点,如下:

节点设置后,查看节点如下:

然后点击“window_211”,显示如下页面,

点击‘launch’下载slave-agent.jnlp文件,复制该文件到windows slave主机上,放在节点设置时设置的“远程工作目录”下,双击该jnlp文件

然后显示如下:

然后显示如下connected表示连接成功,如下:

此时,查看jenkins master 主机上,显示已连接,如下:

至于节点的使用,参考“一、当slave是mac系统的时候”其中的任务设置即可。

备注:在配置当slave是centos和windows的时候,请先都一下“一、当salve是mac系统的时候”,centos和windows系统,除了节点的设置和连接不太一样,其他和mac slave的配置和使用是一样的,比如节点的使用,slave主机上是图框显示已经连接状态时,图框不能关掉,直接最小就好了。

我们可以根据任务对系统的而不同需求,下发任务到不同的节点,在配置任务时可以勾选“Restrict where this project can be run”,然后添加可用的节点lable,多个lable之间用 “||” 分隔,如下:

  也可以参考 “一、当salve是mac系统的时候” 章节部分的任务设置那里,设置Node的方式指定slave机器。

此外,如果slave是第一次下载代码,需要添加slave的key到gerrit上,并在slave上先下载一次代码看看时候ok,我遇到了询问时候要将gerrit 对应的host ip到known hosts中,需要收到输入'yes',如下:

(备注:如果是windows环境,可以先安装一个git bash ,然后在git bash下执行git clone 过程中添加信任关系)

下次就不要了。

我遇到一个问题:(希望对你有帮助)

场景:我的centos-204是一台centos的机器,本来用上面的centos slave方式搭建ok的,一直在使用中,之前重启机器slave相关服务也是可以自动起来的,但是最近我觉得我的这台机器构建太慢了,让运维帮我加成四核的cpu,结果他加完了,重启了机器,slave相关服务就怎么也起不来,一直报错:

没办法,查询了一圈还是还找到答案,后面干脆重新装了centos-204,启动方式还是“lunch slave agent via SSH”,依然起不来,着急啊,后面换成‘lunch slave agent via java web start’,然后重新下来slave.jar放到centos-204机器上配置的工作目录下,然后在slave.jar所在的路径下执行启动命令(&后台执行):

java -jar slave.jar -jnlpUrl http://192.168.8.246:8080/jenkins/computer/centos-204/slave-agent.jnlp -secret 40aa8b30d63226290a25a4e18e3bdfe867b975bd24d5e1fbbc46642f2d9d4d &

参考:

http://blog.csdn.net/jymn_chen/article/details/39931469

https://www.cnblogs.com/derekchen/p/5892286.html

http://blog.csdn.net/e295166319/article/details/54946966

https://www.jianshu.com/p/70982c43c3d1

Jenkins 主备master-slave模式搭建的更多相关文章

  1. jenkins的Master/Slave模式

    一. Master/Slave模式 分担jenkins服务器的压力,任务分配到其它执行机来执行 Master:Jenkins服务器 Slave:执行机(奴隶机).执行Master分配的任务,并返回任务 ...

  2. Jenkins—Master/Slave模式

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

  3. ActiveMQ集群支持Master/Slave模式

    现在ActiveMQ, 在Failover方面有两种解决方案:Pure Master Slave和Shared File System Master Slave.      先看Pure Master ...

  4. jenkins master/slave模式

    master是主机,只有master装jenkins slave是小弟机无需装jenkins,主要执行master分配的任务 一.新建slave 1.新建slave的方法:点击magian jenki ...

  5. ActiveMQ 基于zookeeper的主从(levelDB Master/Slave)搭建以及Spring-boot下使用

    0:说明 ActiveMQ 5.9.0新推出的主从实现,基于zookeeper来选举出一个master,其他节点自动作为slave实时同步消息.因为有实时同步数据的slave的存在,master不用担 ...

  6. MySQL master/slave 模式

    1 .复制 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并重 ...

  7. mysql master master slave 环境搭建

    master1:192.168.128.47 master2:192.168.128.96 slave:192.168.128.97   master1与master2互备,master2作为slav ...

  8. Jenkins设置Master/Slave

    说明:通过master/slave模式,可以在master节点上统一管理其他slave节点. 下面说明一步步实现master/slave模式. 第一步:以管理员登录jenkins.点击"系统 ...

  9. hadoop的master和slave模式

    hadoop的集群是基于master/slave模式. namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slav ...

随机推荐

  1. node_readline (逐行读取)

    node官方文档 用于逐行读取文件流, 和终端交互 读取文件流 const fs = require('fs'); const readline = require('readline'); var ...

  2. jquery-1.11.2.min.js

    /*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ !function(a,b){& ...

  3. robot framework教程-------虫师

    http://www.testclass.net/2017/09/28/happy-holidays/

  4. win10 安装 open live write

    安装完 open live write后将Memento.OLW_V1.0.0.3.7z解压到C:\Users\pc_name\AppData\Local\OpenLiveWriter\app-0.6 ...

  5. eclipse 注销和取消注销

    单行注释: CTRL + / 当行取消注释(一样的): CTRL + / 多行注释: CTRL + SHIFT + / 多行取消注释(斜杠换成反斜杠): CTRL + SHIFT + \

  6. Oracle DBLINK 简单使用

    oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink,以及通过dblink完成插入.修改.删除等操作 首先了解下环境:在tnsnames.ora中配置两个 ...

  7. 类中的函数带有self,不带self的区别

    1.类里函数不带self,这是我们调用类里的函数直接用类名.函数名() class shop(object): def scan_goods(): #括号内不带self print('浏览商品') d ...

  8. [dpdk] dpdk启动几个线程

    看别人的代码搞得有点晕,突然有点不确定,再确认一次. 使用 helloworld程序测试一下. /root/dpdk-16.07/examples/helloworld 一:  只启动一个核心. [r ...

  9. Hash算法解决冲突的方法

    https://blog.csdn.net/feinik/article/details/54974293 Hash算法解决冲突的方法一般有以下几种常用的解决方法1, 开放定址法:所谓的开放定址法就是 ...

  10. idhttp与cookie

    用关键词“idhttp cookie”在各大搜索引擎得到的结果,大多千篇一律,如果你搜索到这一篇,恭喜你,你有福了. 以下内容测试环境:delphi2007,  winxp sp3, indy10. ...