如何在CentOS7中搭建jenkins slave

jenkins ginotang 2478℃ 0评论

如何在CentOS7中搭建jenkins slave

虽然标题使用的是CentOS7,但是实际上搭建过程基本上适用于任何Linux操作系统。

jenkins是一个分布式的CI/CD系统,可以部署在Linux、windows和mac OSX等操作系统中,我们可以根据不同类型的项目把集成过程下发给不同的agent(通过在Pipeline中的agent指令)。

slave的搭建过程其实很简单,具体对slave的要求如下:

  • slave不需要安装jenkins
  • slave必须安装java运行环境
  • 必须安装项目对应的编译环境

也就是说,slave除了不用安装jenkins外,其他master有的slave都应该安装。

slave环境准备

必须确保jenkins master可以连接到slave,通过下面两种方式的其中一种:

  1. 用户名和密码
  2. ssh密钥认证

创建用户

由于jdk安装十分简单,我们跳过jdk的安装步骤。先说第二种方式,由于jenkins是运行于jenkins用户账号下面的,同样地,我们登录到slave主机,创建jenkins用户。

创建ssh key

下面的步骤需要在master主机操作。

注意:master下的jenkins用户是不能登录的,因此首先要让它可登录

找到jenkins用户所在行,把/bin/false改为一个可登录的shell,例如/bin/bash

接着切换到jenkins用户,创建ssh key

因为jenkins用户的home目录是/var/lib/jenkins,因此ssh key生成后会保存到/var/lib/jenkins/.ssh/目录下面。

复制ssh key到slave主机

接下来就是把刚生成的公钥复制到slave中,复制后公钥会保存到slave的/home/jenkins/.ssh/authorized_keys文件中。

slave环境准备结束

在Jenkins master的web UI中添加slave

菜单导航到系统管理 -> 管理节点 -> 新建节点 如图:

勾选固定节点,输入节点名称,然后OK。

输入相关信息,远程工作目录一般是slave主机jenkins用户的home目录

点击上图中的Add按钮,添加ssh凭证,凭证类型有多种,这里选择SSH Username with private key

在之前的过程中我们使用ssh-keygen命令生成了两个文件,一个是id_rsa.pub公钥,另一个id_rsa就是密钥(private key),通过下面的命令可以查看

完成后点击添加回到上一个画面,Credentials中选择刚创建的凭证,保存。没有意外的话,slave主机就创建完毕

让master的jenkins不可登录

这个步骤是可选的,上面我们设置了jenkins用户的bash是/bin/bash,目的是生成ssh key,基于安全考虑,完成之后jenkins用户的shell就可以重新设置为/bin/false

测试slave

创建一个简单的Pipeline构建项目,编写下面的Pipeline

构建项目,观察控制台输出

hostname输出centos7-host1,证明slave正常运作

总结

整个过程没有什么难点,主要就是下面几点

  1. master的jenkins用户改为可登录,便于创建ssh key
  2. slave中创建jenkins用户,且该用户必须是可登录的
  3. 复制master的公钥到slave
  4. 在master的jenkins webui中添加节点

转载请注明:Pure nonsense » 如何在CentOS7中搭建jenkins slave

喜欢 (0)
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x