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上在执行

目录
相关文章
|
7天前
|
jenkins 持续交付 网络安全
Jenkins——使用Docker部署Jenkins详解
Jenkins——使用Docker部署Jenkins详解
18 0
|
1月前
|
jenkins Java 测试技术
实现基于Jenkins的持续集成与部署
实现基于Jenkins的持续集成与部署
|
10天前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
31 3
|
10天前
|
jenkins Java 持续交付
【一键搞定!】Jenkins 自动发布 Java 代码的神奇之旅 —— 从零到英雄的持续集成/部署实战秘籍!
【8月更文挑战第9天】随着软件开发自动化的发展,持续集成(CI)与持续部署(CD)已成为现代流程的核心。Jenkins 作为一款灵活且功能丰富的开源 CI/CD 工具,在业界应用广泛。以一家电商公司的 Java 后端服务为例,通过搭建 Jenkins 自动化发布流程,包括创建 Jenkins 项目、配置 Git 仓库、设置构建触发器以及编写构建脚本等步骤,可以实现代码的快速可靠部署。
33 2
|
24天前
|
Kubernetes jenkins 持续交付
Jenkins部署以及基本使用
Jenkins部署以及基本使用
54 7
|
2月前
|
jenkins Java Shell
蓝易云 - Java+Github+Jenkins部署
以上步骤完成后,每当你的Github仓库有新的提交时,Jenkins就会自动构建你的Java项目,并保存构建产物。
40 4
|
2月前
|
Cloud Native jenkins Java
使用Jenkins实现持续集成与持续部署
【6月更文挑战第7天】本文介绍了如何使用Jenkins实现持续集成与持续部署,提高软件开发效率和质量。首先,解释了CI/CD的概念,持续集成通过自动化构建和测试减少错误,持续部署则自动将软件部署至生产环境。接着,详细阐述了Jenkins的安装配置、构建项目设置,以及如何通过代码提交触发构建、自动化测试和构建报告。此外,还讨论了Jenkins的持续部署功能,包括配置部署环境、自动化部署和回滚策略。最后,指出Jenkins在DevOps和云原生趋势中的重要角色。
|
1月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
83 0
|
3月前
|
jenkins 持续交付 开发工具
蓝易云 - 基于Jenkins自动打包并部署docker环境
以上就是基于Jenkins自动打包并部署docker环境的基本步骤。在实际操作中,你可能需要根据你的具体需求进行一些调整。
151 0
|
3月前
|
前端开发 JavaScript 安全
Mac部署Jenkins(保姆级教程!)_前端jenkins自动部署 mac
Mac部署Jenkins(保姆级教程!)_前端jenkins自动部署 mac

热门文章

最新文章