我的测试环境:
控制节点:main_node
受控节点:node1,node2
该示例是使用三台虚拟机搭建的测试环境,实体机搭建过程与虚拟机相同。
Jenkins安装方式参考windows系统下Jenkins的下载、安装与启动
示例中我安装的jenkins版本为2.346.2 LTS,不同的版本在启动方式的描述上会有偏差,下面选择启动方式时会有详细介绍。
官方下载地址:https://www.oracle.com/java/technologies/downloads/
下载jre需要注册官方账号,根据流程提示进行注册即可下载。
配置节点信息时需要指定到受控节点的工作目录,相当于jenkins的在受控节点上上的workspace。
示例中我在node1和node2的C盘上均创建了WorkSpace目录。
控制节点与受控节点需处于同一网络环境中,且需要有通过防火墙的权限。
因为我的测试环境是在虚拟机上搭建的,所以我直接关闭了防火墙。如果测试环境在内网直接关闭防火墙也不会有太大风险,如果测试环境是在外网则需配置可以通过防火墙的ip和服务,直接关闭防火墙会有风险。
默认禁用代理,需手动开启,否则选择启动方式时不会出现使用java web/ssh的选项。
此示例为使用java web的方式进行启动,所以选择开启tcp权限,如果要进行ssh启动则开启ssh权限即可。
Manager Jenkins -> Configure Global Security -> Agents
Manager Jenkins -> Manage nodes and clouds
可以选择新建一个节点可也以选择复制节点,比如我的node1和node2的配置只有ip不同,那么在我配置node2时可以直接复制node1,然后改一下差分点即可。
启动方法选用了使用java web启动,不同版本对这个选项的描述不同,旧版该选项名为Launch agent via Java Web Start,还有的版本叫做Launch agent by connecting it to the master,最新版中只有Launch agent by connecting it to the controller这一选项,但是和之前的配置过程是一样的。
配置信息中的远程工作目录和自定义工作目录,填写在环境准备中在受控节点上创建的工作目录。
节点新建成功后并不是可以直接和控制节点连接上的,节点列表界面会显示节点未在线,需要下载服务,放到受控节点运行才能建立连接,查看节点信息可以获得下载网址。
获得下载网址后可以在控制节点进行下载然后传到受控节点上,也可以直接在受控节点上访问该网址进行下载,如果在受控节点上不能访问该网址则需排查网络问题,需满足【一、环境准备】中【4、网络环境】的要求。
将下载好的服务放到对应的受控节点上,放到哪个目录下都可以,不一定放在工作目录下,双击启动即可,显示Connected即为受控节点侧连接成功。
注意:受控节点侧显示连接成功Connected并不代表控制节点和控制节点之间就可以进行通信,仅能代表控制节点可以与该受控节点建立连接。因为jenkins可以对节点的连接进行控制(具体参考【四、节点连接控制】),是否能进行通信需以控制节点jenkins的节点信息界面为准。
在节点信息界面显示Agent is connected即为可通信状态。
节点列表处,可代理的节点会显示该节点的物理信息。
进行一个简单的test,在node1和node2中分别创建一个项目test1,test2的工作目录,并放入一个test.bat,bat中打印"test on node1"/“test on node2”。
jenkins安装时会自动创建一个master节点绑定到本机,在存在该节点以外的其他自定义节点的情况下,构建时才会出现限制项目运行的节点该选项,勾选该选项后填入要绑定的节点即可。
构建部分直接写入./test.bat即可。
在节点信息侧可以看到绑定在该节点上的项目。
如果构建的是流水线项目,则直接使用agent指定到【 2、配置节点】中的节点标签即可,例:agent {label “节点标签”}。
删除节点后,若受控节点上服务并未手动关闭,则新建一个名字相同的节点即可重新连接到原来的受控节点上,因此若是误删节点重新创建与原来配置相同的节点即可恢复使用。若想永久性的该链接则需到受控节点上删除相应的服务。
注意:哪怕所有的配置都相同,只有节点名不同,配置成功之后也是两个不同的服务。
因为在创建节点时选择的是保持在线,所以就算手动断开连接也会马上进行重连恢复连接,若想保持一段时间的断联可以使用【3、临时断开此节点】。断开连接的时间中受控节点上的状态切换为Terminated,恢复连接后会切换到Connected。