设为首页 收藏本站
查看: 1637|回复: 0

[经验分享] [转]Jenkins使用 管理节点

[复制链接]

尚未签到

发表于 2018-1-6 21:10:02 | 显示全部楼层 |阅读模式
  现在我们已经搭建好了基本的Jenkins环境,在这一集里,我们说一说如何管理节点。
  进入“系统管理”中的“管理节点”。
DSC0000.png

  创建Windos系统的奴隶节点
  先创建一台安装了Win7系统的虚拟机,作为Jenkins构建的奴隶节点。比如我这台机器IP为172.16.12.81,用户名为user1,密码为123456。然后在C盘创建路径C:\ci_jenkins作为Jenkins操作的根目录。另外还需要在这台机器上安装JDK或JRE,我以前配置时这里如果使用64位的JDK会有问题,所以我也不再实验了,这里直接安装32位的JDK。
  在Jenkins的“管理节点”页面上,点击“新建节点”,类型选择“DumbSlave”,名称比如叫“172.16.12.81_win7”,点击“OK”按钮进入设置页面。
  其中“# ofexecutors”我们选择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 aWindowsservice”,这种配置方式有点自虐,不过配置好的话是最好用的。
  点击“高级”按钮,在“Path to java executable”输入java路径,特别注意,不能写成java.exe
DSC0001.png

  保存后,点击“Launch slaveagent”按钮。看到下面的错误信息:
DSC0002.png

  别急,意料之中。在上个页面中你留意到有这么一个链接“subtleproblems”,里面就是配置windows系统奴隶节点的常见问题。
DSC0003.png

  我们回到Win7这台奴隶节点,按照链接里的内容好好修理修理它。
  首选要保证这个用户是本地的“Administrator”组成员,如果你和我一样是在安装操作系统时创建的用户,这一条是满足的。
  点击“开始”按钮,输入“gpedit.msc”,打开“本地组策略编辑器”。
  在“计算机配置”→“管理模版”→“系统”→“用户配置文件”中,将“在用户注销时不要强制卸载用户注册表”设置为“已启用”。
DSC0004.png

  下面就是设置防火墙的策略了,这个我嫌麻烦,干脆把防火墙关闭了。
DSC0005.png

DSC0006.png

DSC0007.png

  接下来打开“注册表编辑器”
DSC0008.png

  在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System下面创建一个 DWORD(32-位)值。
DSC0009.png

  设置 LocalAccountTokenFilterPolicy 值1。
DSC00010.png

  按 Ctrl + F,搜索“{76A64158-CB41-11D1-8B02-00600806D9B6}”,右键选择“权限”,需要注意的是,它在HKEY_CLASSES_ROOT\CLSID 下。
DSC00011.png

  点击“高级”
DSC00012.png

  切换到“所有者”页签,将“当前所有者”修改为“Administrators”组。
DSC00013.png

  再切换到“权限”页签,选择“Administrators”组,点击“编辑”按钮,修改成“完全控制”。
DSC00014.png

  再把“所有者”切换回“TrustedInstaller”(NTService\TrustedInstaller)
DSC00015.png

  注册表都设置好以后,最好注销再登录一下,让注册表生效。
  在“计算机管理”的“服务”中,找到“Remote Registry”服务。
DSC00016.png

  启动它,并设置启动类型为“自动”。
DSC00017.png

  现在重新在Jenkins页面上点击“Launch slaveagent”按钮。
DSC00018.png

  看到已经成功连接的提示
DSC00019.png

  回到首页,可以看到Win7的系统已经就绪。
DSC00020.png

  创建类Unix系统(Linux,OSX等)的奴隶节点
  对于类Unix系统,创建节点就要简单许多,一般默认都安装了SSH的服务,我们的计划是让Jenkins通过SSH来登录并管理奴隶节点。但通过用户名和密码访问SSH不是一个特别好的方式,我们可以配置通过私钥的方式来登录SSH。
  比如我们以一台CentOS系统的虚拟机为例,假设IP为172.16.12.82。我们先在上面创建一个用于登录的用户jenkins。然后登录到这个用户。
Java代码   DSC00021.png

  • [iyunv@svr82 ~]# useradd jenkins
  • [iyunv@svr82 ~]# su - jenkins
  • [jenkins@svr82 ~]$
  生成一个密钥对(这中间会有几次询问,都直接输入回车)。
Java代码  

  • [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 目录下创建了两个密钥:公钥>Java代码  

  • [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
Java代码  

  • [jenkins@svr82 .ssh]$ pwd
  • /home/jenkins/.ssh
  • [jenkins@svr82 .ssh]$ cat id_rsa.pub >> authorized_keys
  • [jenkins@svr82 .ssh]$ chmod 600 authorized_keys

  现在>
  还有一点需要特别注意的是假如你的 ~/.ssh 目录是自己手动创建的,或者>Java代码  

  • [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”
DSC00022.png

DSC00023.png

  这里面有个凭据域的概念,其实他的目的就是,假如我们配置了很多登录服务器的凭据,通过各个域来分类整理这些凭据,比如所有访问服务器A的凭据都在一个域里这种情况。我们目前暂时先不创建域,直接选择默认的“Globalcredentials”,点击左侧的“AddCredentials”添加访问服务器的凭据。
DSC00024.png


  在“Kind”里,我们选择“SSH Username with privatekey”;“Username”这里输入登录上面服务器的用户名“jenkins”;“Private Key”这里选择“Enterdirectly”,输入内容就是上面步骤里创建的>
DSC00025.png

  下面在这台CentOS服务器上装好JDK,准备工作基本上完成了。
Java代码  

  • [iyunv@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节点类似。
DSC00026.png

  在“Launch method”中选择“Launch slave agents on Unix machines viaSSH”;“Credentials”这里选择我们刚刚创建的凭据。
  特别要注意的是“JVMOptions”这里,“-Djava.awt.headless=true”不是每个类Unix系统都必须输入,但我发现在苹果的OSX系统中不设置会报错误“Can'tconnect to window server - not enoughpermissions.”。
DSC00027.png

  连接成功!
DSC00028.png

  现在我们有两个可以用的奴隶节点了:
DSC00029.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432367-1-1.html 上篇帖子: [原创] Jenkins + git + Robot 实现持续集成 下篇帖子: Jenkins遇到问题二:Jenkins服务器磁盘空间管理策略
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表