(转)Jenkins集群配置(Maste…

来源:互联网 发布:b站好看的视频 知乎 编辑:程序博客网 时间:2024/06/08 16:14
规模大点的还是比较有用,收之。
原文地址:(转)Jenkins集群配置(Master-Slave)作者:zhou
http://www.cnblogs.com/itech/archive/2011/11/09/2243025.html
http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html
https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines

Jenkins的Windows Slave的配置

参考:

https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines
 

一 创建新的Slave

注意Jenkins中slave称为note。 所以下面文章中的slave和node指的是一回事。

 

1)在ManageJenkins-->Manage Nodes -->New Node下:输入Node Name,且选择DumbSlave作为Slave的类型,然后OK。

 

 

2)在Slave的配置页面,输入如下:

*executors的数量,1或多个;

*输入Slave上的跟目录,例如c:jenkins;

*Usage选择:Leave this machine for tied jobsonly;

*Lunch Method选择:Launch slave agentsvia Java Web Start 

*Avaliablitiy选择:Keep thisslave online as much as possible;

* 然后保存;

 

 

3)在slave所在的机器登录jenkinsmaster,且进入Manage Jenkins-->ManageNodes-->新建的Note,点击launch,然后安装slave为service如下:

 

 

 

4)安装成功后显示如下: 

 

 

二 在slave上运行job

对上面的slave增加label,从而表示此slave的用处,且同时对uage选择leave this machine fortied jobs only:

 

对Jenkins构建JavaHelloWorld 中的job修改如下:

选择restrict where thisproject can be run 且输入note(slave)的label。

另外注意SVN的地址因该正确,jenkins会提示输入svn的用户名和密码。

 

 此时job将会在slave所在的机器运行,当然build所需要的环境要在slave上配置好哦,运行如下:

 

 

注意:对slave系统环境变量的修改,jenkins slave不会立即生效,需要重启jenkins slave service。例如我在slave上装了ant,设置到path中后仍然找不到,需要restart jenkins slave service。

 

更多参考:

 

https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
http://community.jboss.org/wiki/HudsonWindowsSlavesSetup

 

 

完! 

 

感谢,Thanks!


 

Jenkins Master/Slave架构

 

一 JenkinsMaster/Slave架构

 

 

Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。

 

 

 

 

当job被分配到slave上运行的时候,此时master和slave其实是建立的双向字节流的连接,其中连接方法主要有如下几种:

 

1)master通过ssh来启动slave

Jenkins内置有ssh客户端实现,可以用来与远程的sshd通信,从而启动slaveagent。这是对*unix系统的slave最方便的方法,因为*unix系统一般默认安装有sshd。在创建ssh连接的slave的时候,你需要提供slave的host名字,用户名和ssh证书。创建public/privatekeys,然后将public key拷贝到slave的~/.ssh/authorized_keys中,将private key保存到master上某ppk文件中。jenkins将会自动地完成其他的配置工作,例如copy slaveagent的binary,启动和停止slave。但是你的job运行所依赖其他的项目需要你自己设置。

 

 

2)master通过WMI+DCOM来启动windows slave

对于Windows的Slave,Jenkins可以使用Windows2000及以后内置的远程管理功能(WMI+DCOM),你只需要提供对slave有管理员访问权限的用户名和密码,jenkins将远程地创建windowsservice然后远程地启动和停止他们。

 

对于windows的系统,这是最方便的方法,但是此方法不允许运行有显示交互的GUI程序。

 

注意:不想其他类型的链接方式,此种方式slave(note)的名字非常重要,将被用来当做slave的地址访问slave。

 

 

3)实现自己的脚本来启动slave

如果上面成套的方法不够灵活,你可以实现自己的脚本来启动slave。你需要将启动脚本放到master,然后告诉jenkinsmaster在需要的时候调用此脚本来启动slave。

 

典型地,你的脚本使用远程程序执行机制,例如SSH,RSH,或类似的方法(在windows,可以通过cygwin或psexec来完成),

在脚本的最后需要执行类似java -jarslave.jar来启动slave。slave.jar可以从http://yourjenkinsserver:port/jnlpjars/slave.jar下载,也可以在脚本的开始先下载此slave.jar从而保证slave.jar正确的版本。但是如果使用ssh slave plugin的话,此plugin将自动地更新slave.jar。

 

 

4)通过Java webstart来启动slave

jave webstart(jnlp)是另一种启动slave的方法。用这种方法你需要登录到slave,打开浏览器,打开slave的配置页面来连接。还可以安装为windowsservice来使得slave在后台运行。

 

如果你需要运行的程序需要UI的交互,使用下面的方法:在slave系统上创建jenkins用户,设置自动登录,在系统的startupitems增加slave JNLP文件的快捷方式,使得slave在系统登录的时候自动启动。

 

 

5)直接启动slave

此方式类似于java webstart,可以方便地在*unix系统上将slave运行为daemon。需要配置slave为JNLP类型连接,然后在slave机器上执行

java -jar slave.jar -jnlpUrl http://yourserver:port/computer/slave-name/slave-agent.jnlp

二 Slave配置的好的建议
* 每个slave都有用户jenkins,所有的机器使用相同的UID和GID,使得slave的管理更加简单;
* 每个机器上jenkins用户的home目录都相同/home/jenkins, 拥有相同的目录结构使得维护简单;
* 所有的slave运行sshd,windows运行cygwin sshd;
* 所有的slave安装ntp client,用来与相同的ntp server同步;
* 使用脚本sh来自动地配置slave的环境,例如创建jenkins用户,安装sshd,安装java,ant,maven等;
* 使用脚本来启动slave,保证slave总是运行在相同的参数下:
#!/bin/bash JAVA_HOME=/opt/SUN/jdk1.6.0_04 PATH=$PATH:$JAVA_HOME/bin export PATH java -jar /var/jenkins/bin/slave.jar
 
完!

感谢,Thanks!

0 0
原创粉丝点击