Jenkins配置完成之后还需要进行主从节点的配置,这个主从节点是什么一开始我也不知道,但是听起来就好像一个分布式的东西,后来查了查是这个样子的。
Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。
说白了就是主机提供用户界面,从机执行构建工作。
那么配置主从关系的重点就是如何让主机和从机建立连接关系了,我们的linux环境是最小安装模式,也就是没有图形界面的那种,所以我们通过SSH来进行链接。
Jenkins内置有ssh客户端实现,可以用来与远程的sshd通信,从而启动slave agent。这是对*unix系统的slave最方便的方法,因为*unix系统一般默认安装有sshd。在创建ssh连接的slave的时候,你需要提供slave的host名字,用户名和ssh证书。创建public/privatekeys,然后将public key拷贝到slave的~/.ssh/authorized_keys中,将private key保存到master上某文件夹中。jenkins将会自动地完成其他的配置工作,例如copy slave agent的binary,启动和停止slave。但是你的job运行所依赖其他的项目需要你自己设置。
背景扯完了,开始干活。
首先要在从机上创建一个用户,这个用户是用来让Jenkins主机来链接用的,可以想象我们远程登陆用的用户名。
执行
/usr/sbin/useradd -m jenkins-ceshi -d /home/jenkins-ceshi
Jenkins-ceshi就是我们创建的用户,如果需要配置多台从机,最好将用户名通过一种编码管理起来。
现在我们将当前用户切换为刚刚创建的jenkins-ceshi。执行
su - jenkins-ceshi
(注意,这里是su空格-空格jenkins-ceshi,不知道能不能看清楚。)
成功之后能看到这样的结果。
文章图片
之后,执行ssh-keygen来创建公钥私钥对。
文章图片
其中在三个enter行要连按三次回车,分别表示。。。英语就不解释了,自己翻译- -。
这样我们的私钥就创建好了。然后我们创建authorized_keys。这个东西用来存放公钥,并且控制访问权限。同样需要生成这个东西。
执行
cd .ssh
cat id_rsa.pub > authorized_keys
chmod 755 authorized_keys
然后我们就能看到这个文件了。
文章图片
拷出来我们的id_rsa文件(可以用WinSCP或Xftp等远程工具操作),之后的工作可以在主机上进行了。
进入主机,先把从机生成的id_rsa文件存放到一个文件夹中。例如:/var/lib/jenkins/key/ceshi,然后使用chown命令设置这个文件夹的所有者为jenkins。
进入Jenkins页面,进入证书管理。
文章图片
点击全局证书
文章图片
这里可以看到已经添加好的证书,我们点击添加证书。
文章图片
然后就进入了这个页面
文章图片
这里简单说一下,kind要选SSH的,Username和我们的刚刚创建linux一样,这样也便于管理。Private key这里写上我们刚刚存放id_rsa的路径,点击ok就行了。
前面的铺垫工作完成了(呵呵- -),接下来进行主从节点的配置。
在jenkins主页中点击系统管理,点击节点管理。
文章图片
文章图片
点击新建节点,然后进入这个页面。
文章图片
节点名称,最好能标志出这个节点的功能,或是模块的构建任务之类的。
文章图片
这里我就不添加了,找了一个已经存在的配置。重要的地方都注释了。
好了接下来点击launch slave agent就可以了。
文章图片
写的够长了吧,还有一些可能会出现的错误,配合下一篇博客食用,风味更佳。
【Linux Is Not Matrix——jenkins配置主从节点】业界良心,只此一回了。
推荐阅读
- Linux|109 个实用 shell 脚本
- linux笔记|linux 常用命令汇总(面向面试)
- Linux|Linux--网络基础
- linux|apt update和apt upgrade命令 - 有什么区别()
- linux|2022年云原生趋势
- Go|Docker后端部署详解(Go+Nginx)
- 开源生态|GPL、MIT、Apache...开发者如何选择开源协议(一文讲清根本区别)
- GitHub|7 款可替代 top 命令的工具