jenkins分布式集群部署(十六)

简介: jenkins分布式部署1.jenkins分布式概念jenkins分布式就是有多个slave节点,当需要构建的项目非常多时,slave会承担master的工作量,在slave在上创建项目。slave的环境要和master一致,master上安装了什么软件在slave上要准备相同的,并且路径最好保持一致,与master的区别在于不用安装jenkins

jenkins分布式部署

1.jenkins分布式概念

jenkins分布式就是有多个slave节点,当需要构建的项目非常多时,slave会承担master的工作量,在slave在上创建项目。


slave的环境要和master一致,master上安装了什么软件在slave上要准备相同的,并且路径最好保持一致,与master的区别在于不用安装jenkins

jenkins分布式就是有多个slave节点,当需要构建的项目非常多时,slave会承担master的工作量,在slave在上创建项目。

slave的环境要和master一致,master上安装了什么软件在slave上要准备相同的,并且路径最好保持一致,与master的区别在于不用安装jenkins

2.jenkins分布式部署

2.1.增加slave节点

jenkins分布式其实就是在页面上点击manage nodes and clouds新增一个节点即可

点击新增节点—输入节点名称即可

2.2.填写节点配置信息

填写节点名称:jenkins-node1-192.168.81.230

执行器数量:5(执行器数量就是执行任务的并发数)

远程工作目录:/home/jenkins(任意目录即可,不存在就会创建)

标签:node1(一定要写清楚)

用法:use this node as mush as possible

启动方式:lauch agents via shh主机写上slave节点的ip地址,然后添加一个凭据,类型就写password即可,填写上用户名密码即可

配置信息截图

2.3.配置节点属性添加软件路径

此步骤配置主要是为了master与slave上的环境保持一致
在slave1上安装依赖软件
[root@jenkins-node1 ~]# yum -y install git java maven curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@jenkins-node1 ~]# scp root@192.168.81.220:/usr/local/sonar-scanner-4.0.0.1744-linux/ /usr/local/
查看git安装位置
[root@jenkins-node1 ~]# rpm -ql git | less
 /usr/libexec/git-core/git
查看jdk、maven路径
[root@jenkins-node1 ~]# mvn --version
Apache Maven 3.0.5 (Red Hat 3.0.5-17)   
Maven home: /usr/share/maven    #maven路径
Java version: 1.8.0_262, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre     #jdk路径
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
将脚本目录拷贝至slave1
[root@jenkins-node1 ~]# scp -r root@192.168.81.220:/script /

将路径信息填写到下图中

点击重启代理

配置成功

总结

如果遇到git拉取代码失败,如下图,请将git工具变量删除

解决方法:将git从下面移除

3.多运行几个项目看下是否在slave1上有执行

配置slave1连接gitlab、web集群、jenkins
[root@jenkins-node1 ~]# ssh-keygen 
[root@jenkins-node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.210
[root@jenkins-node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.220
[root@jenkins-node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.240
[root@jenkins-node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.250
配置hosts
[root@jenkins-node1 ~]# vim /etc/hosts
192.168.81.210  gitlab.jiangxl.com

配置与gitlab进行连接

[root@jenkins-node1 ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDqngv/x8mgqLC7/p2Zekzpue3VzxIcQc8iEWAumrF+r1qaCOihdBRrT6njWzLZJXx1ngAaCjtcJd59tUjFzU+VrPNqKGO4tHfFXrRWEJ8NonHIc0Yj8yq0rbVcab5urujjIZEOsjLOkPNtdOfuwCJhh3BiCMnF+0HWSpN4PyH9ALFRzzGDgMREHGwKG8pwu/F0ccTk/IGBUnGgWCt0I/8ah93kRxNxsUy+P9CQRkP6P2gNWsUo9vqhN0HnejGiBVcSEZdsSkFDwo3rZcRbsO1xNy0zpvdbfhSQ/C9AlEG099Qgp0LOl3RWWklqAqBfzYEl15D3ycevl5QJ0z7xITyT root@jenkins-node1

在gitlab上添加私钥

运行多个项目查看分布式结果,查看是master和slave都会执行任务

slave1上会把从gitlab拉取的代码保存到/home/jenkins/workspace中

这个/home/jenkins是我们配置的工作目录

4.配置pipeline项目指定在slvae1上运行

4.1.编写pipeline脚本

pipeline{
  agent { label 'node1' }     //指定在node1上执行
  parameters {
        string(name: 'git_version', defaultValue: 'v1.0', description: '输入tag版本')
    }
  stages {  //一个大的任务合集  (部署代码)
    stage('获取代码') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9847113e-e313-4dc6-9302-dc4dec14804b', url: 'git@gitlab.jiangxl.com:root/monitor.git']]])
      }
    }
    stage('质量扫描'){
      steps {
        withSonarQubeEnv('sonarqube') {
          sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
        }
      }
    }
    stage('编译代码'){
      steps {
        echo "build code ok"
        //sh 'mvn package'
      }
    }
    stage('部署代码'){
      steps {
        sh 'sh -x /script/monitor_deploy_tag.sh'
      }
    }
  }
}

4.2.将代码集成到项目中

pipeline{
  agent { label 'node1' }     //指定在node1上执行
  parameters {
        string(name: 'git_version', defaultValue: 'v1.0', description: '输入tag版本')
    }
  stages {  //一个大的任务合集  (部署代码)
    stage('获取代码') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9847113e-e313-4dc6-9302-dc4dec14804b', url: 'git@gitlab.jiangxl.com:root/monitor.git']]])
      }
    }
    stage('质量扫描'){
      steps {
        withSonarQubeEnv('sonarqube') {
          sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
        }
      }
    }
    stage('编译代码'){
      steps {
        echo "build code ok"
        //sh 'mvn package'
      }
    }
    stage('部署代码'){
      steps {
        sh 'sh -x /script/monitor_deploy_tag.sh'
      }
    }
  }
}

4.3.构建项目

会看到在slave1上在执行

目录
相关文章
|
4月前
|
Kubernetes jenkins 持续交付
Artifact Hub在Kubernetes中的应用:部署Jenkins的脚本整理
以上步骤断言清晰明确地描述了如何通过Artifact Hub 使用Helm图表来部署Kubernetes 中得Jenkis 实例,并且提供了相应得Shell 脚本作为执行指南. 这样不但能够帮助用户快速地进行操作, 同时也能够通过自定义参数来满足不同用户需求.
149 5
存储 jenkins 持续交付
660 2
|
5月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
670 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
6月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
358 0
|
9月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
3110 57
|
10月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
353 5
|
10月前
|
jenkins Java Linux
Jenkins环境的部署及任务构建
以上就是Jenkins环境的部署及任务构建的全部内容。希望可以帮助你轻松上手Jenkins,让你的CI/CD之旅更加顺畅!
619 68
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
267 5
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
357 5
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值

推荐镜像

更多