jenkins持续集成从0入门到实战【十】jenkins集群多节点

简介: 在实际工作中,如果Job非常多且构建频繁,`jenkins`的服务在效率上很难够支持。所以这种情况下我们更多的是采用1主多从的方式去进行构建,master节点主要做任务分发和调度,实际构建job的是slave节点,这时候我们就需要创建主从节点。

多节点构建

环境配置:

IP jenkins角色 用户 环境
192.168.2.195 master jenkins:ci jenkins maven java8 git
192.168.2.194 slave jenkisn:ci maven java8 git

从节点要求

  1. 尽量选择干净的节点
  2. 同样需要支持Java构建相关的环境
  3. 主从节点间需要支持免密通信
  4. 不需要在从节点手动安装jenkins,由master节点自动进行控制
  5. 需要有maven jdk git环境,用于后续构建

    • yum install git

多节点服务间免密配置

做节点主从,我们就需要给参与构建的slave节点和master进行免密通信的配置,方便构建过程中的调度通信。

目标:实现master的jenkins用户—》免密连接slave的jenkins用户

  • master机器上使用jenkins用户生成秘钥

    $ su jenkins
    # 进入当前目录下,查看是否已经有.ssh目录以及目录下的公私钥
    $ cd ~
    $ ls -a
    
    # 如果不存在,则执行如下命令进行生成
    $ ssh-keygen -t rsa
    # 按3次回车

    运行后会在当前用户的根目录生成一个.ssh文件夹

    image.png

  • .ssh文件夹中的文件描述

    • id_rsa : 生成的私钥文件
    • id_rsa.pub : 生成的公钥文件
    • know_hosts : 已知的主机公钥清单

    接下来需要将公钥导入到认证文件中

    $ su jenkins
    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    如果希望ssh公钥生效需满足至少下面两个条件:

    • .ssh目录的权限必须是700
    • .ssh/authorized_keys文件权限必须是600
  • 给对应文件授权

    $ chmod 700 ~/.ssh
    $ chmod 600 ~/.ssh/authorized_keys
  • authorized_keys文件拷贝到slave服务器的jenkins用户.ssh目录下

    # 使用root用户 在slave上创建jenkins用户
    $ groupadd ci
    $ useradd jenkins -g ci
    # 给创建一个密码 slave123
    $ passwd jenkins
    
    # 创建/home/jenkins/.ssh文件夹(如果存在则不用创建)
    $ su jenkins
    $ cd ~
    $ mkdir -p .ssh
    
    # 在master服务器上将jenkins用户.ssh/pub公钥文件拷贝到slave的jenkins用户的.ssh目录下,并命名为authorized_keys
    $ scp -p ~/.ssh/id_rsa.pub jenkins@192.168.2.194:/home/jenkins/.ssh/authorized_keys
  • 在master服务器上进行免密连接测试

    # 在jenkins服务器的/home/jenkins目录下创建filetest文件,并拷贝到应用服务器
    $ cd ~/
    $ touch filetest
    $ scp -p filetest jenkins@192.168.2.194:/home/jenkins/filetest
    # 进入到slave(192.168.2.194),检查/home/jenkins目录下是否出现filetest
    
    # 在jenkins服务器上使用ssh进行免密连接测试,成功后会出现Last Login的提示
    $ ssh jenkins@192.168.2.194
    Last login: Sun Sep 20 21:53:03 2022
    $ exit
  • 到此免密登录和拷贝实现成功,为接下来jar包部署提供了快捷的帮助

配置jenkins从节点凭据

image.png

image.png

image.png

image.png

从节点的指定

从节点需要支持:Git、Maven、Java,如果要执行Node环境,则需要配置node

image.png

image.png

属性详解

  • 名称:填节点名称,如slave1
  • 描述:节点描述,如:这是第一个从节点
  • 并发构建数(Number of executors):看着填数字,如:3
  • 远程工作目录 填写从节点上jenkins agent的工作目录,推荐只用绝对路径,如/home/jenkins/jk。注意jenkins要有该目录的读写权限
  • 标签:随意填写。jenkins可以通过标签指定一组从服务器运行某个构建任务
  • 用法:可以指定什么情况下使用该从节点,建议选择第二种。

    • 尽可能使用该节点
    • 只允许运行绑定到这台机器的Job:任务指定了使用该节点时,才用该节点运行
  • 启动方法:选择launch slave agents via SSH

    • 主机:填写从服务器的ip或域名
    • Credentials:填写SSH认证信息,可用户密码认证或SSH密钥认证方式
    • Host Key Verification Strategy 选择 Manually Trusted Key Verification Strategy,这会在完成配置后,第一次连接从节点时要求我们手动确认当前连接的从节点的身份。Host Key 验证是用来防止中间人攻击
    • 选中Require manual verification of initial connection
  • 可用性Availability:不修改
  • 高级

    • java路径 填写从主机上的java的路径,可以使用which java 查看。如果这里不填,jenkins会扫描一些特定路径,如果扫描不到java,就会报错,所以建议填写
    • 环境变量 勾选上,并填写运行构建任务所需要的环境变量。建议填上JAVA_HOME,免得jenkins运行构建任务时找不到java。
  • 工具位置

    image.png

  • 环境变量

    image.png

填完之后,点击【保存】 ,并启动代理

从节点你指定的远程目录下就会生成slave.jar文件

从节点发布

image.png

目录
相关文章
|
5天前
|
前端开发 关系型数据库 测试技术
django集成pytest进行自动化单元测试实战
在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率,相比于Django自带的测试框架,Pytest提供了更为丰富和强大的测试功能。本文通过一个实际项目ishareblog介绍django集成pytest进行自动化单元测试实战。
13 3
django集成pytest进行自动化单元测试实战
|
4天前
|
JSON 数据管理 关系型数据库
【Dataphin V3.9】颠覆你的数据管理体验!API数据源接入与集成优化,如何让企业轻松驾驭海量异构数据,实现数据价值最大化?全面解析、实战案例、专业指导,带你解锁数据整合新技能!
【8月更文挑战第15天】随着大数据技术的发展,企业对数据处理的需求不断增长。Dataphin V3.9 版本提供更灵活的数据源接入和高效 API 集成能力,支持 MySQL、Oracle、Hive 等多种数据源,增强 RESTful 和 SOAP API 支持,简化外部数据服务集成。例如,可轻松从 RESTful API 获取销售数据并存储分析。此外,Dataphin V3.9 还提供数据同步工具和丰富的数据治理功能,确保数据质量和一致性,助力企业最大化数据价值。
18 1
|
11天前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
34 3
|
11天前
|
jenkins Java 持续交付
【一键搞定!】Jenkins 自动发布 Java 代码的神奇之旅 —— 从零到英雄的持续集成/部署实战秘籍!
【8月更文挑战第9天】随着软件开发自动化的发展,持续集成(CI)与持续部署(CD)已成为现代流程的核心。Jenkins 作为一款灵活且功能丰富的开源 CI/CD 工具,在业界应用广泛。以一家电商公司的 Java 后端服务为例,通过搭建 Jenkins 自动化发布流程,包括创建 Jenkins 项目、配置 Git 仓库、设置构建触发器以及编写构建脚本等步骤,可以实现代码的快速可靠部署。
34 2
|
26天前
|
JSON 数据挖掘 API
天猫店铺商品数据接口集成指南与实战技巧
**天猫商品API概览** - **接口**: Tmall.item_search_shop, 获取店铺商品详情。 - **功能**: 开发者可获取商品标题、价格、销量等。 - **流程**: 注册天猫开放平台账户→获App Key/Secret→获取Access Token→构建URL调用API→解析JSON响应。 - **参数**: 包含店铺ID、页码、数量等。 - **返回**: JSON格式的商品列表。 - **应用**: 商品管理、电商应用开发、数据分析。此API助力商家高效管理、提升用户体验。
|
6天前
|
jenkins 持续交付 开发工具
自动化开发之旅:Docker携手Jenkins,与Git和Tomcat共舞持续集成
【8月更文挑战第13天】在软件开发中,持续集成(CI)通过自动化构建、测试与部署提升效率与稳定性。Docker、Jenkins、Git和Tomcat构成CI的黄金组合:`git push`触发Jenkins作业,利用Docker确保环境一致性,最终将应用部署至Tomcat。首先配置Git Webhooks以触发Jenkins;接着在Jenkins中创建作业并使用Docker插件模拟真实环境;通过Maven构建项目;最后部署至Tomcat。这套流程减少人为错误,提高开发效率,展示了技术的力量与流程的革新。
17 0
|
1月前
|
安全 容灾 jenkins
Java面试题:什么是Jenkins以及它在持续集成中的作用?Jenkins有哪些缺点呢?
Java面试题:什么是Jenkins以及它在持续集成中的作用?Jenkins有哪些缺点呢?
34 0
|
23天前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
122 6
|
1月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
144 4
|
1月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
113 1

热门文章

最新文章