Jenkins学习笔记(三) master/slave的初步认识

在前面使用ant自动构建的helloworld的基础上,实现master把任务分发给slave

试验所用的三台机子(1台master:ubuntu,两台slave:分别为ubuntu、windows)

一、master上的环境设置:

1、  tomcat下部署的jenkins;

2、  gerrit代码审核服务器:(在本例中只用来充当源码仓库)

gerrit的端口可以自行设置更改,具体配置文件在GRRRIT_SITE/etc/gerrit.config

canonicalWebUrl=http://master_ip:8081 之前由于设置将此设置成127.0.0.1:8081导致只能在本地访问,给自己提个醒

3、  ant/java的安装配置,请设置好变量

二、slave上的环境设置:

1、  windows中安装cygwin,记得install ssh服务;

a)         在cygwin的shell中输入ssh-host-config

b)         全程yes

c)         net start sshd;net stop sshd(用来关闭和开启ssh服务)

2、  安装git/安装java/安装ant(安装较为简单,自行网上查阅)

PS:

实验中出现被分配任务后无法调用本地ant,最终在jenkins master上选用使用指定版本的ant,则master会自动将需要的ant包下载到slave的指定工作空间下的tool目录,且自动调用。

将JAVA加入path中请使用完整的路径,不要用%JAVA_HOME%来简写;并且将JAVA_HOME/lib下的tools.jar、dt.jar拷贝到Program Files/Java/jre6/lib下。否则可能出现unable to locate tools.jar的错误。

3、  ubuntu slave的设置和master的基本一致。

#实验中出现安装jdk后Jenkins无法识别的情况,而且已经确认jdk的环境变量已经设置好。之后改装openjdk,让其自行设置(jdk6/jdk7自选):

sudo apt-get install openjdk-7-jdk

sudo apt-get install openjdk-6-jdk

sudo apt-get install ant

出现没法下载的情况时请使用 sudo apt-get update 来获得最新的软件包列表。

三、通过ssh实现远程访问(该方法实现sshd无密码登陆)

a)         生成密钥对:ssh-keygen –t rsa

b)         将id_rsa.pub加入到要访问机器的~/.ssh/authorized_keys

ssh-copy-id –i  ~/.ssh/id_rsa.pub  username@servername

之后就能使用ssh username@servername 无密码登陆

PS:/etc/ssh/sshd_config 中开启PubkeyAuthentication yes

若生成密钥时使用了密码,则在登陆时候仍需要密码,此时可以使用ssh-agent来帮忙。使用ssh-add将自己的密钥交给其管理,只要输入一次密码之后就能无密码登陆。

四、节点设置和任务分发

1、  在master上建立ubuntu slave 节点:

 

2、  在master上建立windows slave 节点:设置与上图相仿。

3、  修改helloworld工程设置,从而实现给slave分配任务:

 

4、之后build就可以了。

PS:Windows下使用指定ant version。(手动安装的ant不知为何没法被调用,依照下图使用指定版本ANT)

 参考资料:

Jenkins Master/Slave架构:

http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html

Jenkins的Linux的Slave的配置:

http://www.cnblogs.com/itech/archive/2011/11/10/2244690.html

Jenkins的Windows的Slave的配置:

http://www.cnblogs.com/itech/archive/2011/11/09/2243025.html

展开阅读全文

没有更多推荐了,返回首页