业务量变大时,单台的jenkins进行自动化构建部署,就显得没那么灵活,jenkins的集群并非像web服务器、mysql集群那样,jenkins的集群无需在额外的主机安装jenkins,但是用于java项目来说,要使用集群功能,额外的主机就必须要安装maven.

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

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

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

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

这里要注意两点:

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

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

4.配置节点

这里注意五点:

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

6.开始构建踩坑

前言:做到这儿了,就得总结一下集群slave节点的作用了,把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到较高版本即可

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

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

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

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

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

参考博客:https://yq.aliyun.com/articles/485302

jenkins集成ldap可以参考这两篇(貌似写的还行,毕竟我还没做过):

LinuxPanda:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_liunx_52_ldap_for_jenkins.html

运维咖啡吧:https://blog.csdn.net/weixin_42578481/article/details/81455704

jenkins集群节点构建maven(几乎是坑最多的)的更多相关文章

  1. 快速搭建Jenkins集群

    关于Jenkins集群 在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故 ...

  2. Jenkins集群下的pipeline实战

    关于Jenkins集群 在<快速搭建Jenkins集群>一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的 ...

  3. jenkins~集群分发功能和职责处理

    jenkins的多节点集群 在进行自动化部署时,你可以按着它们的项目类型去进行分别部署,这样即可以达到负载均衡,又可以达到一种职责的明确,比如像java的项目你可以使用linux服务来进行部署(拉代码 ...

  4. jenkins~集群分发功能的具体实现

    前一讲主要说了jenkins分发的好处<jenkins~集群分发功能和职责处理>,它可以让具体的节点干自己具体的事,比如windows环境下的节点,它只负责编译,发布windows的生态环 ...

  5. Jenkins 集群搭建

    一.前言 Jenkins是当下比较流行的一款功能强大的持续集成工具,它支持搭建集群,来提高多项目的构建速度,模式为主从模式,master会将任务分配到各个从节点进行并发构建,从而提高速度,下面介绍一下 ...

  6. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境

    写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...

  7. jenkins集群(二)(master --> slave) -- allure自动化测试报告部署

    一.前提 1.环境 1)已经部署好了jenkins环境,包括jenkins的“全局工具配置”也配好了. 2.master与slave的简单的概念 1)master:jenkins部署所在的机器 2)s ...

  8. Akka(12): 分布式运算:Cluster-Singleton-让运算在集群节点中自动转移

    在很多应用场景中都会出现在系统中需要某类Actor的唯一实例(only instance).这个实例在集群环境中可能在任何一个节点上,但保证它是唯一的.Akka的Cluster-Singleton提供 ...

  9. 搭建jenkins集群

    搭建jenkins集群是为了解决单点服务器存在的性能瓶颈,也有业务的需要,比如:java服务打包的环境我们需要linux,ios打包的服务器需要mac机. 一.创建agent节点 1.打开 系统管理- ...

随机推荐

  1. 【laravel】【转发】laravel 导入导出excel文档

    1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和 导出  ...

  2. 18/07/2017 R matrix

    矩阵:二维数组,元素拥有相同模式(数值型,字符型或者逻辑型) mymatrix <- matrix (vector, nrow_num_of_rows, ncol_num_of_columns, ...

  3. URAL - 2065 Different Sums (思维题)

    题意: 给n和k,让你用不小于 k 个不同的数字构成一个长度为n的序列,使得序列中不同的区间和的数目最小. n,k<=500 k-1个数填一些数字的一正一负,这样有些区间和为0. 剩下的都填0. ...

  4. 带有命名空间的xml解析,C#

    前一段时间做花旗的接口,返回的xml格式是带有命名空间的,可是难倒了我,找了好久才找到解决办法,给大家分享下,少走弯路. 1,直接进入正题,先看一段带有命名空间的xml,这段xml大概的意思是,前面是 ...

  5. python - 自动化测试框架 - logger

    # -*- coding:utf-8 -*- '''@project: Voctest@author: Jimmy@file: log.py@ide: PyCharm Community Editio ...

  6. day03_12 缩进介绍

    python比较变态,必须缩进,而C可以不缩进,世界上只有python这门语言要求必须缩进 tab键是缩进,shift+tab往左移动 SyntaxError:invalid syntax 语法错误 ...

  7. springMVC 引入静态资源Js的方式

    前两天项目出现了Js无法引入的情况,本篇博客先总结分析+批判自己犯的低级错,再说说几种访问静态资源的方式! 首先,由于在web.xml里面的servlet拦截匹配为<url-pattern> ...

  8. 大数相减 C语言

    #include <stdio.h> #include <string.h> using namespace std; ],b[]; void Sub() { ; if(a = ...

  9. DS博客作业——树

    DS博客作业--树 1.本周学习总结 1.思维导图 2.谈谈你对树结构的认识及学习体会. 在树这一章节,我们学习的是二叉树的算法. 树的构建:一种是直接给树的顺序存储结构的字符串,一种是通过先序遍历和 ...

  10. http.server()的理解

    http.server()相当于实例化一个server,等价于http.createServer(). 以下为个人理解 http.server()为创建一个http服务,http.server()可以 ...