107  
查询码:00000851
jenkins系列之部署从节点
来源:https://blog.csdn.net/weixin_43931358/article/details/103496329
作者: 何旭 于 2021年06月25日 发布在分类 / 测试组 / 测试工具 下,并于 2021年06月25日 编辑
节点 jenkins

jenkins系列之部署从节点

可以说Jenkins更强大的功能之一是它能够跨大量的机器调度构建作业。设置很多构建服务器是很容易的(或者跨多台计算机共享负载,或者在不同的环境中运行构建作业)。
分布式构建通常用来吸收额外的负载,例如通过动态添加额外的机器应对构建作业中的高峰期,或者在特定操作系统或环境运行专门的构建作业。例如,你可能需要在一个特定机器或者操作系统上运行特定构建作业。例如,如果你需要使用InternetExplorer运行Web测试,则需要使用Windows机器。或者你的构建作业之一可能消耗大量资源,并且需要在自己专用的机器.上运行,而不会影响你其他的构建作业。
而jenkins提供了一套解决方案,可以更简单的实现部署从节点这个需求。

部署从节点

部署Linux从节点

在系统管理中找到节点管理,并点击
image.png

在节点列表我们可以看到目前只有一个master节点,没有其他节点,点击新建节点,创建从节点
image.png

名称自己输入,目前只能选择固定节点的方式,点击确定
image.png
进入到节点配置界面,在节点配置中我们需要设置从节点的配置:
名称:节点的名称。
描述:从节点的描述信息,用来说明为什么使用这个节点。
并发构建数:这个参数控制着Jenkins并发构建的数量。
远程工作目录: 从节点的工作空间目录所在位置,最好使用绝对路劲。
标签: 标签设定为了让master清楚将job分配到什么地方执行。
用法: 这里有2个选择,进行的使用这个例程和只允许运行绑定到这台机器的。选哪个都没问题,如果想只执行配置这个节点的job使用,那就选只允许运行绑定到这台机器的Job。
启动方法: 控制Jenkins如何启动此代理。(四种方法)
1.通过SSH启动代理通过通过安全的SSH连接发送命令来启动从节点。
从服务器必须可以从主服务器访问从服务器,必须提供一个可以登录目标计算机的帐户,不需要root。
2.通过在主服务器上执行命令来启动从节点
通过让jenkins执行来自主机的命令来启动代理。当主服务器能够通过SSH在另一台计算机上远程执行进程时,使用此选项。
3.让Jenkins作为Windows服务将此Windows从节点控制
通过Windows 内置的远程管理工具启动Windows从节点。适用于管理Windows从节点。从节点需要从主机可访问IP。
4.通过Java Web启动从节点
允许在就绪时将代理连接到Jenkins主服务器。

这里选择Launch agent agents via SSH也就是第一点。这里根据下方选项,输入从节点的ip,在认证选择的是账号密码的方式(生产环境尽量使用秘钥的方式)
可用性:决定Jenkins的启动和停止(三种方式)
1.尽可能保持代理在线
Jenkins会尽可能让代理保持在线。
如果该代理由于临时性网络故障,Jenkins会定期尝试重启它。
2.让代理在特定的时间段内在线或者离线
Jenkins会根据一个计划表来启动代理,并保持指定的时长。
如果在计划周期内代理掉线,Jenkins会定期尝试重启它。
当代理在线时间达到字段计划启动的时间,它将会被下线。
如果勾选了当有构建时保持在线,并且根据计划表应该下线,Jenkins会等所有的 构建任务完成后再下线。
3.当代理被需要时保持在线,空闲时离线
当代理被需要时Jenkins将会让代理上线,例如有排队的构建任务满足下列条件:

①在队列中排队时间达到需求延迟时间限制
②被构建任务指定(例如有一个匹配的标签表达式)

如果发生下述情况,代理将会被下线:

①代理没有需要构建的任务
②该代理已经空闲了指定的时间

这里选尽量保持代理在线。

节点属性:可以配置工具位置和环境变量
这里仅设置了jdk的位置
配置如图所示,点击保存
image.png

在节点列表中我们可以看到从节点test已经启动
image.png
在从节点所在服务器上查看工作目录和进程
[root@localhost ~]# ls /test/
remoting  remoting.jar
[root@localhost ~]# ps -ef |grep remoting.jar
root      74203  74149  0 11:15 ?        00:00:00 bash -c cd “/test” && /usr/local/jdk/bin/java  -jar remoting.jar -workDir /test -jar-cache /test/remoting/jarCache
root      74211  74203  2 11:15 ?        00:00:06 /usr/local/jdk/bin/java -jar remoting.jar -workDir /test -jar-cache /test/remoting/jarCache
root      74405  73386  0 11:19 pts/3    00:00:00 grep --color=auto remoting.jar

部署Windows从节点

在节点列表中点击新建节点

image.png
配置相关信息,这次选择通过Java web启动代理的方式启动,配置如图所示:
image.png

点击保存之后,发现Windows这个节点未在线,点击Windows-test这个节点查看详细信息
image.png
在详细界面中我们可以看到,代理启动过程失败,将命令中提示的agent.jar存在我们的工作目录中,然后通过Windows中的cmd执行启动命令。
image.png

image.png

C:\Users\Admin>java -jar D:\jenkins\agent.jar -jnlpUrl http://192.168.59.130:9090/computer/Windows-test/slave-agent.jnlp -secret cfce908ea4b584263e40321664220a63aa27767c4d0094299d67bb44b6944271 -workDir “D:\jenkins”
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
启动完成后,重新查看界面,Windows-test代理启动成功
image.png
在此两个不同的节点都部署完成了,我们可以根据需要部署相应的节点来满足我们的工作需要
image.png

小知识

在启动方式中选择第三种启动方式时,他提示使用Java web的方式进行启动,但是点开启动方式
image.png
发现启动方式中并没有他提示的那种启动方式
Launch agents using Java Web Start
image.png

在系统管理点击安全
在安全界面中,找到代理将禁用改为随机选取,并且勾选Java web这个选项,然后在下方勾选启动代理这个选项,最后点击应用、保存。如图所示:
image.png
重新回到节点配置界面就可以看到第四种启动方式了




 推荐知识

 历史版本

修改日期 修改人 备注
2021-06-25 11:06:45[当前版本] 何旭 v1.0

 附件
知识分享平台 -V 4.8.7 -wcp