Jenkins使用经验谈3(管理节点)
现在我们已经搭建好了基本的Jenkins环境,在这一集里,我们说一说如何管理节点。
进入“系统管理”中的“管理节点”。
创建Windos系统的奴隶节点
先创建一台安装了Win7系统的虚拟机,作为Jenkins构建的奴隶节点。比如我这台机器IP为172.16.12.81,用户名为user1,密码为123456。然后在C盘创建路径 C:\ci_jenkins 作为Jenkins操作的根目录。另外还需要在这台机器上安装JDK或JRE,我以前配置时这里如果使用64位的JDK会有问题,所以我也不再实验了,这里直接安装32位的JDK。
在Jenkins的“管理节点”页面上,点击“新建节点”,类型选择“Dumb Slave”,名称比如叫“172.16.12.81_win7”,点击“OK”按钮进入设置页面。
其中“# of executors”我们选择4,表示可以同时进行4个构建。
“Remote FS root”填写之前创建的目录 C:\ci_jenkins
“Labels” 是这样的,假如你的需求是要求同时在 WindowsXP,Win7这两个操作系统上构建,你就创建两个奴隶节点,一个安装WindowsXP系统,一个安装Win7系统,这两个节点的名称不一样,但Labels 可以设置成一样的 win,这样在创建Job时指定在Label为win的节点上构建时,两台机器都会进行构建,当然这里可以用空格分隔地添加几个Label。
“Launch method”这里我们选择“Let Jenkins control this Windows slave as a Windows service”,这种配置方式有点自虐,不过配置好的话是最好用的。
点击“高级”按钮,在“Path to java executable”输入java路径,特别注意,不能写成 java.exe。
保存后,点击“Launch slave agent”按钮。看到下面的错误信息:
别急,意料之中。在上个页面中你留意到有这么一个链接“subtle problems”,里面就是配置windows系统奴隶节点的常见问题。
我们回到Win7这台奴隶节点,按照链接里的内容好好修理修理它。
首选要保证这个用户是本地的“Administrator”组成员,如果你和我一样是在安装操作系统时创建的用户,这一条是满足的。
点击“开始”按钮,输入“gpedit.msc”,打开“本地组策略编辑器”。
在“计算机配置”→“管理模版”→“系统”→“用户配置文件”中,将“在用户注销时不要强制卸载用户注册表”设置为“已启用”。
下面就是设置防火墙的策略了,这个我嫌麻烦,干脆把防火墙关闭了。
接下来打开“注册表编辑器”
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下面创建一个 DWORD(32-位)值。
设置 LocalAccountTokenFilterPolicy 值 1。
按 Ctrl + F,搜索 “{76A64158-CB41-11D1-8B02-00600806D9B6}”,右键选择“权限”,需要注意的是,它在 HKEY_CLASSES_ROOT\CLSID 下。
点击“高级”
切换到“所有者”页签,将“当前所有者”修改为“Administrators”组。
再切换到“权限”页签,选择“Administrators”组,点击“编辑”按钮,修改成“完全控制”。
再把“所有者”切换回“TrustedInstaller”(NT Service\TrustedInstaller)
注册表都设置好以后,最好注销再登录一下,让注册表生效。
在“计算机管理”的“服务”中,找到“Remote Registry ”服务。
启动它,并设置启动类型为“自动”。
现在重新在Jenkins页面上点击“Launch slave agent”按钮。
看到已经成功连接的提示
回到首页,可以看到Win7的系统已经就绪。
创建类Unix系统(Linux,OSX等)的奴隶节点
对于类Unix系统,创建节点就要简单许多,一般默认都安装了SSH的服务,我们的计划是让Jenkins通过SSH来登录并管理奴隶节点。但通过用户名和密码访问SSH不是一个特别好的方式,我们可以配置通过私钥的方式来登录SSH。
比如我们以一台CentOS系统的虚拟机为例,假设IP为172.16.12.82。我们先在上面创建一个用于登录的用户jenkins。然后登录到这个用户。