Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

释放双眼,带上耳机,听听看~!

为了演示多节点的jenkins环境,我这里补充一篇文章,介绍如何在一个master的jenkins环境上添加一个windows节点。由于我的master 机器是linux,所以我现在就一步一步介绍如何添加一个windows Jenkins 节点到一个linux的master的jenkins,顺便测试一下agent这个指令。

1.到 new node页面

点击到jenkins->Manage Jenkins->Manage Nodes

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

可以在我jenkins环境上(anthony/123456)去把你自己电脑作为一个node添加到我的环境里,我放开了anthony用户的管理权限,希望大家小心操作,不要影响到别人的使用。

点击上图中的New Node

2.填写windows节点信息

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

点击下一步,注意下拉选择的位置

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

上面的Launch method只有2项,这两项其实配置起来很困难。接下来,我们需要改动一个地方,让出来第三项。

3.到Manage Jenkins->Configure Global Security

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

记得勾选红圈的这个第三个协议,点击保存设置。

4.New Node页面,设置如下图

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

注意上面红圈,有些配置和接下来后面是有必然关系的。这里特别提醒一点,这个labels名称,以后在pipeline中的agent{…} 是需要用得到的。

5.保存之后,页面如下

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

这个红色的X表示我们刚刚添加的windowns 节点并没有开始工作。点击这个win节点名称。

6.launch按钮,下载jenkins agent jar到windows机器上

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

上面提供两种方法,第一种下载文件,默认java去启动和运行程序。第二个,你可以拷贝这个命令,放到一个记事本文件,然后保存为bat文件,双击bat文件也可以运行。当然直接拷贝命令到cmd也可以,bat文件是方便下次你开机之后启动,连接到master环境。

7.下载文件,默认是java去运行该程序

Java运行成功之后,会打开一个小窗口。

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

看到这个connect,我们刷新当前jenkins页面,变成如下内容。

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

而且,在我前面配置的路径D:\JenkinsNode下自动创建了一个remote的文件夹。接下来如果运行job,还会自动创建生成更多文件到这个路径。

下面来复习一下agent的语法,写一个pipeline,让代码在win-anthony-demo这个节点去执行。之前我们的pipeline代码都是在我linux机器上运行。

pipeline代码如下


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1pipeline {
2    agent {
3        node {
4            label "win-anthony"
5            customWorkspace "${env.JOB_NAME}/${env.BUILD_NUMBER}"
6        }
7   }
8   stages {
9       stage ("list directory") {
10           steps {
11               script {
12                    bat "dir"
13               }
14           }
15       }
16
17       stage ("Which java") {
18           steps {
19               script {
20                    bat "java -version"
21               }
22           }
23       }
24   }
25}
26

提醒:我前面文章中的pipeline代码存在单引号和双引号问题,很多的地方是用中文的单引号和中文的双引号,注意改过来。

我这里新建一个pipeline job,进行了测试。

Jenkins job:http://65.49.216.200:8080/job/agent-demo/

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

然后看控制台,也发现运行没有问题,一切正常。这里我们再回到D:\JenkinsNode,看看会发生什么。

Jenkins高级篇之Pipeline-补充篇-如何添加一个windows节点的jenkins agent 服务

所以,如果和我一样配置的windows的Jenkins节点,这个节点默认的workspace就是D:\JenkinsNode。这里提醒一下这行代码你需要去理解。customWorkspace "${env.JOB_NAME}/${env.BUILD_NUMBER}", 可以试试,如果注销这行代码,看看路径有什么变化。

最后,这种windows节点的缺点就是不能关机,一旦关机或者休眠,影响到agent这个Java进程,你就可以需要重写启动这个文件,到这个node的页面,点击launch按钮。当然linux也不能关机停电,但是稳定性比windows要强很多,所以,win作为节点机器去跑代码还是很少见,在生产环境。

给TA打赏
共{{data.count}}人
人已打赏
安全经验

职场中的那些话那些事

2021-9-24 20:41:29

安全经验

elk+redis 搭建nginx日志分析平台

2021-11-28 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索