Jenkins是一个持续集成服务器,能够代替人进行很多复杂枯燥重复性的工作,是一个优秀的自动化构建工具。
安装Jenkins
下载地址:http://jenkins-ci.org/,选择Windows的native package进行下载。安装过程与所有的windows安装程序一样,简单和傻瓜。不说了。
安装完成之后会自动创建一个windows服务:jenkins,默认使用的端口是8080,在安装了jenkins的机器上打开http://localhost:8080/,看到类似下面的界面(这里我创建了两个job),说明jenkins已经安装成功。
如果需要修改默认的端口,打开安装目录下的jenkins.xml文件,修改 <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar “%BASE%\jenkins.war” –httpPort=8081</arguments>后保存,重新启动jenkins服务即可。
安装插件
Jenkins提供了大量的插件帮我们更好的进行持续集成。由于我的工作中用到的插件有Git,RobotFramework,所以我的jenkins中安装了相应的插件。从Jenkins首页进入到“系统管理”–>“管理插件”,点击“可选插件”,在右上角搜索“Git”,勾选Gitplugin, GitHubPlugin ,GitClientPlugin,RobotFrameworkplugin,点击“立即安装”。如果你的git仓库是private的还需要安装SSHSlavesplugin , SSHCredentialsPlugin ,否则git不成功,有的版本已经默认装了这些。
添加slave节点
我们启动Jenkins服务的这台机器在Jenkins里叫做master,而其他的连到master上的机器(物理机、虚拟机都可以)都是slave,也叫节点。
点击“系统管理”——>“管理节点”,就看到如下界面(我已经添加了一个slave节点,叫作Mylaptop):
点击“新建节点”,输入节点名称“192.108.1.100”,并选择“Dumb Slave”,点击“OK”,将出现下面的页面:
上图有几个需要注意的地方:
a、executors:表示在slave上可以并行执行几个线程,也可以点后面的问号看说明。建议设置为1。
b、远程工作目录:在slave上创建jenkins工作目录的路径,我一般设置为C:\jenkins。
c、标签:可以给slave加上一个或多个标签,通过标签选择slave。
d、启动方法:启动slave的方法,推荐选第二个Launch slave agents via Java Web Start。
注意:如果是用来执行RF自动化测试案例的slave,严禁选择windows service的方式,否则后果自负。
设置好之后点保存。如图:
点击新建的slave节点,将显示下面的页面:
启动slave节点
切换到准备作为slave的机器上,在浏览器中输入jenkins服务器的地址,例如:http://{jenkinsIP}:{port}/computer/,点击对应的slave节点进入页面(页面和上图一样)。
点击图中的launch按钮,他会提示你下载该文件slave-agent.jnlp。按照提示下载该文件,并保存在本地。为了能成功launch这个slave,要确保下面两点:
1、将slave-agent.jnlp用notepad打开后,确认其中的URL是可用的Jenkins地址。这个文件的内容可能像下面这样:
- <jnlp spec=“1.0+” codebase=”<span style=”color:#CC0000;”>http://jenkins:8080/</span>computer/192.168.1.100/”><information><title>Slave Agent for 192.168.1.100</title><vendor>Jenkins project</vendor><homepage href=“https://jenkins-ci.org/”/></information><security><all-permissions/></security><resources><j2se version=“1.5+”/><jar href=”<span style=”color:#CC0000;”>http://jenkins:8080</span>/jnlpJars/remoting.jar”/><property name=“hudson.showWindowsServiceInstallLink” value=“true”/></resources><application-desc main-class=“hudson.remoting.jnlp.Main”><argument>e529e13fd41accb41186aabdf5fa49eb37b3d5c50018353e600634b994f46027</argument><argument>192.168.1.100</argument><argument>-url</argument><argument><span style=“color:#CC0000;”>http://jenkins:8080</span>/</argument><argument>-url</argument><argument>http://10.86.12.66:8080/</argument></application-desc></jnlp>
<jnlp spec="1.0+" codebase="<span style="color:#CC0000;">http://jenkins:8080/</span>computer/192.168.1.100/"><information><title>Slave Agent for 192.168.1.100</title><vendor>Jenkins project</vendor><homepage href="https://jenkins-ci.org/"/></information><security><all-permissions/></security><resources><j2se version="1.5+"/><jar href="<span style="color:#CC0000;">http://jenkins:8080</span>/jnlpJars/remoting.jar"/><property name="hudson.showWindowsServiceInstallLink" value="true"/></resources><application-desc main-class="hudson.remoting.jnlp.Main"><argument>e529e13fd41accb41186aabdf5fa49eb37b3d5c50018353e600634b994f46027</argument><argument>192.168.1.100</argument><argument>-url</argument><argument><span style="color:#CC0000;">http://jenkins:8080</span>/</argument><argument>-url</argument><argument>http://10.86.12.66:8080/</argument></application-desc></jnlp>
要把其中的url换为jenkins服务器的地址http://{jenkinsIP}:{port}
2、另外,slave-agent.jnlp 是用javaws来运行的,因此slave机器上必须安装java并设置好环境变量。
现在,我们在slave-agent.jnlp点击右键,选择“Launch”。之后会弹出一个页面:
如果上面的正常的话,过一会几分钟后,这个界面应该就会变成下面的界面,就是多了一个File菜单,下拉这个File菜单就有一个选项他会提示你是否想设置为一个自启动的服务。可能将当前的slave设置成一个服务,每次机器重启的时候都自动启动slave服务,这样就不能每次都去启动这个slave agent了。
注意事项
上面的操作我们都是在匿名用户下进行的设置,上面设置的前提是我们没有在jenkins的系统管理–>Configure Global Security ,没有勾选“启用安全”。
如果勾选了“启用安全”,一定要进入系统管理 -> Configure Global Security 中给anonymous用户的slave部分的设置权限,否则jenkins slave agent的窗口中显示Connected一会之后有可能出现了Terminated的状态。
验证
现在我们的jenkins环境就搭建好了。我们进入到jenkins的节点管理里面,可以看到刚才添加的slave节点已经没有红色的叉叉了。