什么是Jenkins的分布式构建和部署?
Jenkins的分布式构建,在Jenkins的配置中叫作节点,分布式构建可以让同一套代码或项目在不一样的环境(如:Windows和Linux系统)中编译、部署等java
何时使用节点和做用?
当咱们使用多台服务器时,而且配置了tomcat或jboss集群服务,可经过jenkins的节点配置,将jenkins项目发布在不一样服务器上(分布jenkins工做空间,部署项目到不一样服务器的tomcat或jboss),这就造成了jenkins的分布式。节点服务器不须要安装jenkins(只须要运行一个slave节点服务),构建事件的分发由master端(jenkins主服务)来执行。node
节点服务器的要求
注意:若是节点主机上不存在JDK,Jenkins会去自动下载,但Oracle对程序自动下载作了限制,会致使下载失败,而后一直循环这个问题
建议:全部Linux或者Windows机器的环境路径统一(如:JDK、Maven),安装位置和jenkins所在服务器的JDK和maven必须一致,也就是说jenkins所在服务器和各个节点服务器中的JDK和Maven目录和文件名都是同样的。以便于管理、不容易出现问题tomcat
节点管理
一般的状况下在咱们的一个项目当中,项目会有多个分支系统,而咱们不可能为每一个分支系统都配置一个jenkins服务,这样既浪费资源,也增长构建部署的难度,为了解决这个问题jenkins给使用者提供了很是强大的分布式部署功能,也就是节点的管理,咱们只须要在master节点配置好jenkins服务,经过指定slave节点来进行对应的系统进行部署就能够达到分布式部署。服务器
[root@caosm ~]# 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) [root@caosm ~]# 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
[root@caosm ~]# mkdir node-1
节点 agent { node { label 'labelName' } }行为相同 agent { label 'labelName' },但node容许其余选项(如customWorkspace) 标签 使用提供的标签在Jenkins环境中可用的代理上执行管道或阶段。例如:agent { label 'my-defined-label' }
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' } } } }
[root@caosm ~]# ls /usr/local/ bin etc games include java lib lib64 libexec node-1 sbin share src
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 这里写的是标签的名称maven
[root@caosm ~]# ls /usr/local/ bin etc games include java lib lib64 libexec node-1 node-2 node-4 sbin share src