jenkins 分布式构建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins 分布式构建相关的知识,希望对你有一定的参考价值。

jenkins 分布式构建

? 什么是Jenkins的分布式构建和部署?
? Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译、部署等

? 什么时候使用节点和作用?
? 当我们使用多台服务器时,并且配置了tomcat或jboss集群服务,可通过jenkins的节点配置,将jenkins项目发布在不同服务器上(分布jenkins工作空间,部署项目到不同服务器的tomcat或jboss),这就形成了jenkins的分布式。节点服务器不需要安装jenkins(只需要运行一个slave节点服务),构建事件的分发由master端(jenkins主服务)来执行。

? 节点服务器的要求
? 注意:如果节点主机上不存在JDK,Jenkins会去自动下载,但Oracle对程序自动下载做了限制,会导致下载失败,然后一直循环这个问题
? 建议:所有Linux或者Windows机器的环境路径统一(如:JDK、Maven),安装位置和jenkins所在服务器的JDK和maven必须一致,也就是说jenkins所在服务器和各个节点服务器中的JDK和Maven目录和文件名都是一样的。以便于管理、不容易出现问题

? 节点管理
? 通常的情况下在我们的一个项目当中,项目会有多个分支系统,而我们不可能为每个分支系统都配置一个jenkins服务,这样既浪费资源,也增加构建部署的难度,为了解决这个问题jenkins给使用者提供了非常强大的分布式部署功能,也就是节点的管理,我们只需要在master节点配置好jenkins服务,通过指定slave节点来进行对应的系统进行部署就可以达到分布式部署。

一.建立节点

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

技术分享图片

技术分享图片

技术分享图片

二.配置节点

1. 需要配置好节点的java环境变量?

   [[email protected] ~]# java -version
   java version "1.8.0_144"
   Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
   Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

   [[email protected] ~]# vi /etc/profile
   export JAVA_HOME=/usr/java/jdk1.8.0_144
   export JRE_HOME=/usr/java/jdk1.8.0_144/jre
   export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar:JRE_HOME/lib:CLASSPATH
   export PATH=JAVA_HOME/bin:PATH

2. 配置好节点的免密登录,使master可以免密登录到slave。

3. 创建好节点的工作目录

   [[email protected] ~]# mkdir node-1

4. 启动节点进行检查

技术分享图片
技术分享图片

技术分享图片

三.创建pipline 工程进行测试

1.语法介绍:

节点
agent { node { label ‘labelName‘ } }行为相同 agent { label ‘labelName‘ },但node允许其他选项(如customWorkspace)
标签
使用提供的标签在Jenkins环境中可用的代理上执行管道或阶段。例如:agent { label ‘my-defined-label‘ }

2.新建pipline-hello工程,使用的是节点模式进行测试

pipeline {
    agent { node { label ‘node-1‘ } }
    stages { 
        stage(‘make node-1‘){
            steps {
            echo "make script : make node-1"
            sh ‘mkdir -p /usr/local/node-1‘
            }
        }       
    }
}

2.1检查发布结果

技术分享图片

[[email protected] ~]# ls /usr/local/
bin  etc  games  include  java  lib  lib64  libexec  node-1 sbin  share  src

3.使用标签模式语法进行测试

pipeline {
    agent { label ‘node-4‘ }
    stages { 
        stage(‘make node-4‘){
            steps {
            echo "make script : make node-4"
            sh ‘mkdir -p /usr/local/node-4‘
            }
        }       
    }
}

注意:label 这里写的是标签的名称

3.1新建pipline-node-4工程,检查发布的结果

技术分享图片

[[email protected] ~]# ls /usr/local/
bin  etc  games  include  java  lib  lib64  libexec  node-1  node-2  node-4  sbin  share  src

以上是关于jenkins 分布式构建的主要内容,如果未能解决你的问题,请参考以下文章

jenkins-slave的搭建和使用

Jenkins分布式构建与并行构建

Jenkins分布式构建

Jenkins的分布式环境构建

技术分享 | Jenkins 节点该如何管理?

技术分享 | Jenkins 节点该如何管理?