1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

Jenkins增加节点的两种方式

1987web2023-10-06WEB开发92
单节点的Jenkins在实际生产中是很少使用的,满足不了生产环境的业务,所以我们一定是使用Jenkins集群来做持续集成,Jenkins的集群搭建是非常简单的,而且有多种方式。下面我们来介绍一下。

单节点的Jenkins在实际生产中是很少使用的,满足不了生产环境的业务,所以我们一定是使用Jenkins集群来做持续集成,Jenkins的集群搭建是非常简单的,而且有多种方式。下面我们来介绍一下。

安装Jenkins

先找一台机器安装Jenkins,安装好后这台机器就作为Jenkins集群的master节点,注意从节点是不需要安装Jenkins的,只需要安装jdk、版本管理工具(git/svn)、构建所需工具即可。安装好Jenkins后,我们就可以添加从节点了。需要进行一下准备:

  • 安装插件:SSH Slaves
  • 打开agent控制项

在全局安全配置中,选中下面的选项

添加节点

回到系统管理页面,选中节点管理->新建节点

添加固定节点

填写节点的相关信息,名称、标签、远程工作目录,重点就是启动方式了,我们主要使用两种启动方式

  • Launch agents via SSH

使用ssh协议,从master向slave发起连接,由master主动发起请求

  • 通过Java web启动代理

使用Java web的JNLP协议,从slave向master主动发起连接

节点启动方式配置

Launch agents via SSH

这种方式必须要先安装SSH Slaves插件,否则可能看不到,先配置一个全局凭证,配置用户名密码

在节点管理中添加一个固定节点,选择Launch agents via SSH方式,注意下面选择Non verifying Verification Strategy,其他的方式也可以选择,无非是选择用户密码还是选择私钥方式验证登录。

保存后,可以看到节点列表界面,此节点已经为连接状态

前提是安装好了jdk,如果不是做Java开发,在不是必须使用Java jdk的情况下,我推荐安装OpenJDK,可以使用各种包管理工具(apt、yum)自动安装。

测试一下当前节点

使用之前创建的freestyle工程

保存后立即启动构建

通过执行日志我们看到任务运行成功了,我们登录到节点机器上,看一下配置的工作目录下是否更新了代码

通过Java web启动代理

这种方式也是jnlp的连接方式,这种方式非常优秀,可以无视系统,基本是通过socket方式连接

查看节点状态

通过jnlp方式配置的节点,有两种启动方式

  • 通过浏览器启动在节点机器上访问Jenkins网页,进入到上面这个节点状态页面,点击Launch按钮即可
  • 通过命令行启动命令已经给出来了,有一个agent.jar的链接,点击以后下载agent.jar文件,将文件拷贝到节点机器上,在其目录下执行页面给出的命令就行了。默认是在前台执行,可以使用nohup在后端执行即可

执行成功后,节点状态会自动刷新为正常。

同样我们可以使用freestyle工程进行验证

注意:

在上面截图中显示的命令地址为127.0.0.1,这样会导致节点无法注册成功,需要修改为机器的ip地址。首先要在Jenkins的配置中修改监听地址,系统管理->系统配置

将这里127.0.0.1修改为机器IP地址即可

(此处已添加圈子卡片,请到今日头条客户端查看)

三、添加node

启动方式选择--》 通过java web启动代理 --》选择 Use WebSocket

添加后保存,显示连接认证信息,和agent启动方法

四、节点服务器上启动前,需要安装jdk java环境

1、简单启动

验证节点链接是否正常

切换工作目录

cd /home/jenkins/workspec

下载agent.jar包

wget https://jenkinswh.uniontech.com/jnlpJars/agent.jar

验证文件

echo f6b23ae961a2d2b028d446df7b1ebf93ff6625b504dd4ce2 > secret-file

启动agent

setsid java -jar agent.jar -jnlpUrl https://jenkinswh.uniontech.com/computer/arm-kernel-build-31-85/slave-agent.jnlp -secret @secret-file -workDir "/home/jenkins/workspec" > /dev/null &

启动日志路径在工作目录下的 remoting/logs/下

简单启动,默认在前台,而且无法开机自启。 因什么原因挂掉以后,也不会自动重启。 所以,这只是用来验证的启动方式,不推荐正式使用

2、systemd启动

使用systemd作为守护进程

下载agent.jar

切换工作目录

sudo mkdir /home/jenkins/workspace

cd /home/jenkins/workspace

下载agent.jar包

sudo wget https://jenkinswh.uniontech.com/jnlpJars/agent.jar

sudo chmod +x agent.jar

添加

echo f6b23ae961a2d2b028dasdf446df7b1ebf93fcbeaa5695c8a > secret-file

准备env.sh

在sudo vim/home/jenkins/workspace/jenkins_env中,写入以下环境变量:

JNLP_URL=https://jenkinswh.uniontech.com/computer/arm-kernel-build-31-85/slave-agent.jnlp

JNLP_SECRET=f6b23ae961a2d2b028d446df7b1eadfasf3fcbeac8a54ce2

JNLP_WORKDIR=/home/jenkins/workspace

其中,JNLP_URL和JNLP_SECRET需要根据节点信息而修改。

配置systemd

新增文件/etc/systemd/system/jenkins-agent.service

jenkins添加jnlp-slave节点

一、前言有时候,jenkins只提供web访问,master节点与node节点无法通过ssh访问,所以无法通ssh的方式添加node,于是只能通过启动java