jenkins的集群无需在额外的主机安装jenkins,但是用于java项目来说,要使用集群功能,额外的主机就必须要安装maven.

1.系统管理-->全局安全配置-->JNLP代理协议的TCP端口

指定端口40000(指定小端口有时候有时候会报错)

jenkins 集群 HA jenkins集群搭建_git

2.系统管理-->管理节点-->新建节点

jenkins 集群 HA jenkins集群搭建_maven_02

3.创建凭据

是从jenkins连到其他服务器的方式,要么账号密码,要么用密钥对.目前将10.0.0.28这台机子作为构建maven项目的节点,当你用账号密码时,很容易就能通过验证.

并且还是将jenkins的公钥拷贝到目标主机的某个普通用户家目录下,这样的话网上的大多博客就不管用了.这里是将jenkins的公钥拷到了目标主机的root目录下,其实这已经算是成功了.

[jenkins@jenkins-test .ssh]$ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.28

jenkins 集群 HA jenkins集群搭建_git_03

这里要注意两点:

Username要写成root,我在第一次的时候将Username写成了java-node,结果这个节点一直无法连接到目标主机;

空着的Passphrase,不清空的话,浏览器会把jenkins的登录密码给你写在这里,虽然不会影响结果,但会让你产生疑惑,到底是哪个帮我通过了认证,现在这个是空的(ID不用管,让它空着,保存后会自动生成),那就只能是私钥帮你通过了认证.

4.配置节点

jenkins 集群 HA jenkins集群搭建_jenkins 集群 HA_04

这里注意五点:

a.远程工作目录,必须填写,但是在目标主机上可以不存在;

b.用法-只允许绑定到这台机器的job;

c.启动方式:Lanch slave agents on unix machines  vis SSH;

d.填写主机ip和刚才生成的凭据;

e.Host Key选Non verifying Verification Strategy,选第一个可能会报错,但其实是不会的(我已经试过了),节点连接成功标志:Agent successfully connected and online

5.分配任务到节点

在项目中配置:General-->Restrict where this project can be run

jenkins 集群 HA jenkins集群搭建_git_05

6.开始构建踩坑

把java-maven这个job给了java-node之后,它的构建环境就不在本机10.0.0.27上了,构建环境就转移到了10.0.0.28上,但是怎么去构建的配置还在项目里写着,

配置里写什么,10.0.0.28上就得有什么,上一篇博客已经在28上安装了jdk,但没有安装Maven,也没有升级git,还得job中修改执行shell的语句.

a.第一次构建时,git版本低报的错,升级git到较高版本即可

jenkins 集群 HA jenkins集群搭建_java_06

 

b.第二次构件,maven的路径不对

jenkins 集群 HA jenkins集群搭建_jenkins 集群 HA_07

我在10.0.0.28上,把maven装到了/usr/local下,然后在构建时,jenkins报错:说在/data/apache-maven-3.3.9下找不到maven,那为什么要去这个路径下找呢,因为全局工具配置中maven的配置在/data下,有图有真相,前言里面说过了,配置在27上写着,28就得跟着有,所以做了个软链就ok了.

jenkins 集群 HA jenkins集群搭建_java_08

c.报错说找不到deploy-java.sh

jenkins 集群 HA jenkins集群搭建_git_09

目前执行shell的命令是deploy-java.sh testweb 10.0.0.41,因为28上没有这个脚本,要么把脚本弄过去,要么将命令改为其他语句,如:java -jar target/testweb-$version_tag.jar

7.修改完后,保存,构建

jenkins 集群 HA jenkins集群搭建_git_10