现在我们已经搭建好了基本的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。然后登录到这个用户。

Java代码  [root@svr82 ~]# useradd jenkins

[root@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 目录下创建了两个密钥:公钥 id_rsa.pub 和私钥 id_rsa。

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现在 id_rsa 和 id_rsa.pub 这两个文件不是必须要保留的这台服务器上,但你要保存好 id_rsa 因为这个是访问此服务器的私钥。还有一点需要特别注意的是假如你的 ~/.ssh 目录是自己手动创建的,或者 id_rsa 从其他地方拷贝来的,如果此时发现无法通过私钥进行 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”

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

在“Kind”里,我们选择“SSH Username with private key”;“Username”这里输入登录上面服务器的用户名“jenkins”;“Private Key”这里选择“Enter directly”,输入内容就是上面步骤里创建的 id_rsa 文件内容。

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

Java代码  [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.”。

连接成功!

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

posted on 2014-02-18 14:09 顺其自然EVO 阅读(5269) 评论(0)  编辑  收藏 所属分类: 持续集成

jenkins linux虚拟机,Jenkins实战演练之Linux节点任务配置相关推荐

  1. Kali Linux虚拟机安装完整安装过程及简单配置(视频)

    Kali Linux虚拟机安装完整安装过程及简单配置 点击上述视频播放 转载于:https://www.cnblogs.com/wildernessdreams/p/8408804.html

  2. 克隆linux虚拟机密码是多少,Linux虚拟机的克隆及问题处理

    一.克隆Linux虚拟机 1.为什么要克隆虚拟机? 第一:我们要搭建分布式集群,需要多台虚拟机 第二:我们不想像安装第一台虚拟机那样从头到尾做多次重复的操作,既浪费时间又没有什么技术含量. 那么怎么办 ...

  3. linux虚拟机如何加网卡,linux虚拟机添加新的网卡

    linux虚拟机添加新的网卡 在vmware workstation虚拟机中添加虚拟网卡,默认是找到不到该设备的,必须要手动配置相关的信息才行. 首先查看系统中默认网卡的信息 ifconfig [ro ...

  4. kali linux 虚拟机iso 下载,Kali Linux 2016.2发布提供虚拟机以及系统镜像下载

    Kali Linux 2016.2发布提供虚拟机以及系统镜像下载 Kali Linux 2016.2发布提供虚拟机以及系统镜像下载,本次Kali Linux 2016.2提供了五种桌面模式,分别为Gn ...

  5. linux虚拟机查询用户列表,linux基础(用户管理)

    一.用户的管理 1.思考:系统中为什么要有用户? 底层的安全设定的一部分,用户有特定的权力.限制权力 组:用来共享权力的 两种: 能决定的叫附加组(不一定都有) 不能改变的组 初始组(所有用户都有) ...

  6. linux虚拟机中dns安装,linux虚拟机dns服务器配置步骤(linux服务器配置dns步骤)

    但是启动不了DNS服务器,向高手求解,最好说明具体安装DNS的步骤 安装包之后:1.DNS主配置文件与区域数据文件配置 在/var/named/chroot/etc目录下创建DNS的主配文件:name ...

  7. 虚拟机做linux服务器,linux虚拟机做服务器(linux搭建虚拟机)

    1.安装配置VM虚拟机:2.创建虚拟机,并配置虚拟机内操作系统的硬件标准:通过虚拟机制作出的系统不仅可以模拟出硬件资源.将实验环境与真机文件分离保证数据. 首先安装vsftpd软件,然后配置文件. 首 ...

  8. linux虚拟机如何确认zone,linux下修改时区(TIMEZONE)

    今天用虚拟机做实验,ntpdate无数次,时间还是不对.最后发现是时区设置的是纽约!!! 正好记录一下修改时区的方法. 1.查看自己的系统时区 方法1: [root@localhost ~]# dat ...

  9. 查询linux kafka安装目录,Linux下安装并(单节点)配置启动Kafka

    1. 从Kafka官网下载最新的Kafka,目前最新版本为0.9.0.1 2. 下载完毕后,上传到Linux服务器,并解压tar -xzf kafka_2.11-0.9.0.1.tgz 3. 修改Zo ...

  10. linux虚拟机dhcp启动失败,Linux 的dhcp启动异常之No subnet declaration for eth1 (192.168.48.134)...

    最近折腾Centos自动化安装,需要的dhcp服务,使用yum -y install dhcp安装dhcp.dhcp-common的rpm包,启动dhcp时异常报错, 由于dhcp是及服务,关于dhc ...

最新文章

  1. Python+selenium 自动化-读取excel记录的脚本执行登陆操作实战演示
  2. 前端进阶-Event
  3. Linux下history命令详解---转载
  4. 关于HOG特征的一个Python代码
  5. selenium webdirver之ruby-开发ide安装
  6. SpringMVC 配置注解的映射器、适配器(重点)
  7. 【华为云技术分享】云图说 | 华为云MCP多云容器平台,让您轻松灾备!
  8. 【JAQS】jaqs与DataCore 框架安装,学习笔记(一)
  9. java我的世界混搭包_Minecraft辐射混搭包地图
  10. scala编程_Scala编程语言简介
  11. 关于安装CNPM 与搭建VUE空白项目
  12. linux下安装inode客户端
  13. python程序输入两个整数、实现加减乘除_加减乘除
  14. 关于阿里云域名购买与DNS解析教程
  15. Android O (8.0) 新特性介绍
  16. python--Django快速入门之模板层详解
  17. CSDN日报20170312——《成功人士的七个习惯》
  18. 【图像】搜索相同,或者相似照片
  19. readmemh函数引用的txt格式_memory - 在Verilog中,我尝试使用$ readmemb来读取.txt文件,但它仅在内存中加载xxxxx(不必担心) - 堆栈内存溢出...
  20. Empire简介及安装

热门文章

  1. sicily 1295. 负权数
  2. java对象创建、对象内存布局、对象的访问定位、句柄池、直接指针
  3. 线程基础阶段性总结和扩展(二)——ThreadLock
  4. 软件设计原则(七) 迪米特法则
  5. SpringBoot项目获取Spring容器中的bean
  6. Spring与MyBatis整合源码分析
  7. vsCode 快捷键、插件
  8. 【学习资料】Gradle Android重要的学习资料
  9. AutoLearnSkills.lua --升级自动学习技能
  10. 配置F5 负载均衡(转)