现在我们已经搭建好了基本的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。然后登录到这个用户。
[root@svr82 ~]# useradd jenkins
[root@svr82 ~]# su - jenkins
[jenkins@svr82 ~]$
生成一个密钥对(这中间会有几次询问,都直接输入回车)。
[jenkins@svr82 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jenkins/.ssh/id_rsa):
Created directory '/home/jenkins/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkins/.ssh/id_rsa.
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.
The key fingerprint is:
6b:81:28:af:5e:54:bb:af:cf:e3:f5:2d:0a:aa:50:71 jenkins@svr82.vow.funshion.com
[jenkins@svr82 ~]$
现在可以看到在jenkins用户的家目录下的 .ssh 目录下创建了两个密钥:公钥 id_rsa.pub 和私钥 id_rsa。
[jenkins@svr82 ~]$ ls -l ~/.ssh/
总计 8
-rw------- 1 jenkins jenkins 1675 10-14 18:26 id_rsa
-rw-r--r-- 1 jenkins jenkins 412 10-14 18:26 id_rsa.pub
现在将公钥添加到这台主机的 authorized_keys 文件中,并修改权限为600
[jenkins@svr82 .ssh]$ pwd
/home/jenkins/.ssh
[jenkins@svr82 .ssh]$ cat id_rsa.pub >> authorized_keys
[jenkins@svr82 .ssh]$ chmod 600 authorized_keys
现在 id_rsa 和 id_rsa.pub 这两个文件不是必须要保留的这台服务器上,但你要保存好 id_rsa 因为这个是访问此服务器的私钥。
还有一点需要特别注意的是假如你的 ~/.ssh 目录是自己手动创建的,或者 id_rsa 从其他地方拷贝来的,如果此时发现无法通过私钥进行 ssh 连接时,请检查下面文件/目录的权限是否和我列出的一样。
[jenkins@svr82 ~]$ ls -l ~/.ssh/authorized_keys
-rw------- 1 jenkins jenkins 412 10-14 18:51 /home/jenkins/.ssh/authorized_keys
[jenkins@svr82 ~]$ ls -l ~/.ssh/id_rsa
-rw------- 1 jenkins jenkins 1675 10-14 18:26 /home/jenkins/.ssh/id_rsa
[jenkins@svr82 ~]$ ls -ld ~/.ssh
drwx------ 2 jenkins jenkins 4096 10-14 18:51 /home/jenkins/.ssh
回到Jenkis的页面上,我们先来配置一下访问这个服务器的“Credential”,在Jenkins页面的左侧快捷栏中点击“Credentials”
这里面有个凭据域的概念,其实他的目的就是,假如我们配置了很多登录服务器的凭据,通过各个域来分类整理这些凭据,比如所有访问服务器A的凭据都在一个域里这种情况。我们目前暂时先不创建域,直接选择默认的“Global credentials”,点击左侧的“Add Credentials”添加访问服务器的凭据。
在“Kind”里,我们选择“SSH Username with private key”;“Username”这里输入登录上面服务器的用户名“jenkins”;“Private Key”这里选择“Enter directly”,输入内容就是上面步骤里创建的 id_rsa 文件内容。
下面在这台CentOS服务器上装好JDK,准备工作基本上完成了。
[root@svr82 ~]# java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)
下面在Jenkins的“系统管理”→ “管理节点”中点击“新建节点”,填写内容和之前创建Windows节点类似。
在“Launch method”中选择“Launch slave agents on Unix machines via SSH”;“Credentials”这里选择我们刚刚创建的凭据。
特别要注意的是“JVM Options”这里,“-Djava.awt.headless=true”不是每个类Unix系统都必须输入,但我发现在苹果的OSX系统中不设置会报错误“Can't connect to window server - not enough permissions.”。
连接成功!
现在我们有两个可以用的奴隶节点了:
- 大小: 5.4 KB
- 大小: 37.9 KB
- 大小: 2.7 KB
- 大小: 5.5 KB
- 大小: 19.4 KB
- 大小: 63 KB
- 大小: 53.4 KB
- 大小: 30.3 KB
- 大小: 17.2 KB
- 大小: 105.4 KB
- 大小: 7.9 KB
- 大小: 41.4 KB
- 大小: 16.1 KB
- 大小: 19.3 KB
- 大小: 38 KB
- 大小: 19.9 KB
- 大小: 68.8 KB
- 大小: 17 KB
- 大小: 11.6 KB
- 大小: 13.1 KB
- 大小: 43 KB
- 大小: 21.1 KB
- 大小: 36.9 KB
- 大小: 23.6 KB
- 大小: 22.4 KB
- 大小: 13.9 KB
- 大小: 38.4 KB
- 大小: 30.8 KB
- 大小: 26.1 KB
分享到:
相关推荐
jenkins配置windows机器的从节点jenkins配置windows机器的从节点
文章目录方法1_普通执行java -jar agent.jar的命令来连接(失败)方法2_重新下载agent.jar然后赋权,再执行java -jar命令(失败)方法3_联系root用户管理员,执行java -jar命令(成功) 环境背景: Linux环境下,...
Jenkins使用手册.pdf
教你如何使用Jira+Jenkins 搭建DevOps平台,学会使用Jira进行敏捷开发管理流程。
主要介绍了Jenkins节点配置实现原理及过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
使用JIRA和Jenkins进行项目管理
Jenkins-sonar持续集成使用文档
Jenkins 使用指南精简版,需要的下载吧!
jenkins的最基础的配置入门。主要是jenkins如何配置maven。
介绍了Jenkins的部署过程,Jenkins的基本使用方法,同提到了部署和使用过程中的注意事项
Jenkins使用手册,简述了Jenkins在windows平台下的使用方法。
jenkins从头搭建文档
2.1 使用rpm 安装 jenkins 10 2.2 使用war 安装 jenkins 12 第3章 Jenkins配置 13 3.1 系统管理 13 3.2 管理插件 13 3.3 系统设置 14 3.4 Global Tool Configuration 15 第4章 JOB配置 17 4.1 新建JOB 17 4.2 源码...
jenkins 2.346.3.zip
jenkins自动化部署unity打包apk、ipa,jenkins插件使用,jenkins权限管理
使用Jenkins进行Unity自动构建的环境搭建笔记
jenkins-2.346.3.war
文档详细的从简单的jenkins中创建单机job,远程job,node、证书,以及复杂的pipeline构建过程,让初学者轻松快速上手;