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环境上(anthony/123456)去把你自己电脑作为一个node添加到我的环境里,我放开了anthony用户的管理权限,希望大家小心操作,不要影响到别人的使用。
点击上图中的New Node
2.填写windows节点信息
点击下一步,注意下拉选择的位置
上面的Launch method只有2项,这两项其实配置起来很困难。接下来,我们需要改动一个地方,让出来第三项。
3.到Manage Jenkins->Configure Global Security
记得勾选红圈的这个第三个协议,点击保存设置。
4.New Node页面,设置如下图
注意上面红圈,有些配置和接下来后面是有必然关系的。这里特别提醒一点,这个labels名称,以后在pipeline中的agent{…} 是需要用得到的。
5.保存之后,页面如下
这个红色的X表示我们刚刚添加的windowns 节点并没有开始工作。点击这个win节点名称。
6.launch按钮,下载jenkins agent jar到windows机器上
上面提供两种方法,第一种下载文件,默认java去启动和运行程序。第二个,你可以拷贝这个命令,放到一个记事本文件,然后保存为bat文件,双击bat文件也可以运行。当然直接拷贝命令到cmd也可以,bat文件是方便下次你开机之后启动,连接到master环境。
7.下载文件,默认是java去运行该程序
Java运行成功之后,会打开一个小窗口。
看到这个connect,我们刷新当前jenkins页面,变成如下内容。
而且,在我前面配置的路径D:\JenkinsNode下自动创建了一个remote的文件夹。接下来如果运行job,还会自动创建生成更多文件到这个路径。
下面来复习一下agent的语法,写一个pipeline,让代码在win-anthony-demo这个节点去执行。之前我们的pipeline代码都是在我linux机器上运行。
pipeline代码如下
pipeline {
agent {
node {
label "win-anthony"
customWorkspace "${env.JOB_NAME}/${env.BUILD_NUMBER}"
}
}
stages {
stage ("list directory") {
steps {
script {
bat "dir"
}
}
}
stage ("Which java") {
steps {
script {
bat "java -version"
}
}
}
}
}
提醒:我前面文章中的pipeline代码存在单引号和双引号问题,很多的地方是用中文的单引号和中文的双引号,注意改过来。
我这里新建一个pipeline job,进行了测试。
Jenkins job:http://65.49.216.200:8080/job/agent-demo/
然后看控制台,也发现运行没有问题,一切正常。这里我们再回到D:\JenkinsNode,看看会发生什么。
所以,如果和我一样配置的windows的Jenkins节点,这个节点默认的workspace就是D:\JenkinsNode。这里提醒一下这行代码你需要去理解。customWorkspace "${env.JOB_NAME}/${env.BUILD_NUMBER}", 可以试试,如果注销这行代码,看看路径有什么变化。
最后,这种windows节点的缺点就是不能关机,一旦关机或者休眠,影响到agent这个Java进程,你就可以需要重写启动这个文件,到这个node的页面,点击launch按钮。当然linux也不能关机停电,但是稳定性比windows要强很多,所以,win作为节点机器去跑代码还是很少见,在生产环境。
更多推荐
所有评论(0)