1实验架构: 2 3192.168.0.96 gitlab 4 5192.168.0.97 jenkins、tomcat 6 7192.168.0.98 harbor、docker集群、git、jdk、maven 81、先把单个jenkins做成可以部署到docker集群中。参照:https://www.cnblogs.com/effortsing/p/10468840.html 9 102、192.168.0.98作为jenkins-slave节点进行试验,注意:192.168.0.98不需要安装jenkins,只通过master节点上添加node就可以搞定 112.1、 安装smart jenkins 插件,如图所示: 12 133、jenkins-slave节点上安装git、jdk、maven。 14 15git安装:用yum安装git后就不用管了 16 17jdk安装:安装包要解压到/usr/local下 18 19maven安装:安装包要解压到/usr/local下 20 21 224、配置jenkins-slave节点上的git拉取代码:添加ssh-key公钥到gitlab 23 24参照:https://www.cnblogs.com/effortsing/p/10012158.html 25 26 275、192.168.0.97(jenkins主机)配置免密登录192.168.0.98主机 28 29 306、jenkins-slave主机配置免密登录自己,因为pipline脚本里面需要把容器部署到本机上 31 32 337、在jenkins主机上添加一个凭证(登录192.168.0.98的用户名密码:root/123) 34 35 368、在jenkins主机上找到系统管理---节点管理--新建新节点--名称(192.168.0.98);远程工作目录:/usr/local/;host:192.168.0.98,如下图: 37 38

19、给slave节点添加工具位置(maven、jdk),如下图: 2 3 410、slave正常状态如下图所示: 5 6 711、pipline脚本如下: 8 9node ("192.168.0.98") { 10 stage('git checkout'){ 11 echo 'git clone' 12 checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'c32a3a24-2c9d-4c8d-b456-9d6d0badf3a2', url: 'http://192.168.0.96:8081/zihao/test.git']]]) 13 } 14 stage('maven build'){ 15 echo 'maven build' 16 sh ''' 17 export JAVA_HOME=/usr/local/jdk1.8.0_171/ 18 /usr/local/apache-maven-3.5.4/bin/mvn clean package -Dmaven.test.skip=true 19 ''' 20 } 21 22 stage('docker build and push images'){ 23echo 'docker build and push images' 24sh ''' 25REPOSITORY=192.168.0.98:5000/library/solo/solo:${Tag} 26cat >Dockerfile<<EOF 27FROM 192.168.0.98:5000/library/tomcat-85:latest 28RUN rm -rf /usr/local/tomcat/webapps/ROOT/ 29COPY target/*.war /usr/local/tomcat/webapps/ROOT.war 30WORKDIR /usr/local/tomcat 31EXPOSE 8080 32CMD ["./bin/catalina.sh", "run"] 33EOF 34docker build -t $REPOSITORY . 35docker login -u admin -p Harbor12345 192.168.0.98:5000 36docker push $REPOSITORY 37''' 38 } 39 40 stage('deploy'){ 41echo 'deploy' 42sh ''' 43REPOSITORY=192.168.0.98:5000/library/solo/solo:${Tag} 44cat >deploy.sh<<EOF 45#!/bin/bash 46ssh root@192.168.0.98 'docker container run -d --name blog-solo-2 -v /opt:/opt -p 89:8080 $REPOSITORY' 47EOF 48chmod +x deploy.sh 49sh deploy.sh 50''' 51 } 52} 53 54 5512、开始构建如下图所示: 56 57 5813、构建成功入下图:

参照文档:http://www.cnblogs.com/zndxall/p/8297356.html