测试人社区

测试开发实战|Jenkins 踩坑 (二) | 管理、配置、运行 Node 节点与 Slave 分布式运行

Jenkins 踩坑 (二) | 管理、配置、运行 Node 节点与 Slave 分布式运行

原创 月关 4月19日

image

本文为霍格沃兹测试学院优秀学员 Jekins 学习踩坑笔记。测试开发技能进阶,文末加群。

1、总览

  • Jenkins 的任务可以分布在不同的节点上运行
  • 节点上需要配置 Java 运行环境,Java_Version >1.5
  • 节点支持 WindowsLinuxMac
  • Jenkins 运行的主机在逻辑上是 master 节点
  • master 节点的名字必须叫 master ,而 slave 节点的名字可以随便取。

2、配置远程节点

2.1 前提条件

  • 配置远程节点,首先要保证有远程的节点,无论是虚拟机或者是实体机
  • 新的节点要与 Jenkins Server 保持连接畅通
  • slave 支持远程运行,例如 ssh、jnlp
  • Jenkins 需要从 git 上获取项目,因此 slave 也需要与 git 建立联系1)以 GitHub 账号为例,先创建公钥私钥,命令 ssh-keygen -t rsa -C "xxxx@qq.com"

2)打开 GitHub->setting->SSH and GPG keys ,新建一个 SSH key ,输入公钥 id_ras.pub 中的内容。

3)使用 ssh git@github.com 尝试连接 GitHub,建立信任关系。

  • Java 环境 (我用的是jdk1.8)
  • maven 环境

2.2 登录方式

  • 远程用户名密码
  • 公钥私钥认证

2.3 配置位置

“系统管理” -> “管理节点”

3、节点创建

3.1 节点连接

1)在 master 机器上选择新建节点。

2)先以账号密码登录方式做演示:

3)保存后刷新状态,可以看到节点已经配置成功。

3.2 节点运行

1)在 job 中勾选"限制项目的运行节点",然后选择 slave 节点的标签保存。

2)构建后在控制台输出中就可以看到任务是由 slave 构建的。

4、闭坑

第一次连接slave时可能会连接失败,出现报错:

/var/jenkins_home/.ssh/known_hosts [SSH] No Known Hosts file was found at /var/jenkins_home/.ssh/known_hosts. Please ensure one is created at this path and that Jenkins can read it.

这是因为 master 和 slave 直接没有建立信任联系,解决方法如下:

1)在节点配饰的启动方式中,选择“手动信任”。

image

2)保存启动后会在web页面的左下方有个 手动信任的选项 (这里忘记截图了,比较懒,就不重新设置演示了,知道这个方法就好~),点进去选择 就 OK 了,这样就建立了信任联系,后面在启动时就畅通无阻了。

5、总结

  • Jenkins 节点配置方法
  • 节点上配通 GitHub
  • 节点上配通 Java 和 Maven
  • 提速 - 替换 Maven 源

以上,欢迎大家一起交流探讨。