1.在项目文件夹下创建2个多分支流水线如下:

Jenkins部署项目兼容jdk8和jdk11_Jenkins

V1为jdk8版本

V2为jdk11版本

2.配置流水线从git拉取Jenkins配置如下:

 V1:Jenkinsfile配置: 

import java.text.SimpleDateFormat;

pipeline {

agent any

environment {
deploy_name = 'asset'
deploy_ip = '10.212.212.105'
deploy_path = '/data3/asset/'
deploy_shell = '/data3/asset/assetShell/'
asset_port = '22120'
mysql_port = '3396'
zk_port = '22181'
kafka_port = '9192'
es_port = '9300'
kibana_port = '56011'
}

stages {
stage('deploy') {
steps {
script {
source_server = getHost("10.7.195.204", "10.7.195.204", "transferstation", "transferstation")
deploy_server = getHost("10.212.212.105", "10.212.212.105", "root", "123")
sshCommand remote: deploy_server, command: "rm -rf ${deploy_path}"
sshCommand remote: deploy_server, command: "mkdir -p ${deploy_path}"
sshCommand remote: deploy_server, command: "mkdir -p ${deploy_shell}"
sshGet remote: source_server, from: '/opt/opt/opt/asset/*.tar.gz', into: 'asset.tar.gz', override: true
sshPut remote: deploy_server, from: "asset.tar.gz", into: "${deploy_path}", override: true
sshPut remote: deploy_server, from: "assetShell/", into: "${deploy_path}",override: true
sshCommand remote: deploy_server, command: "cd ${deploy_path}asset/service/bin; chmod 755 *.sh;export deploy_path=${deploy_path};./stop.sh &"
sshCommand remote: deploy_server, command: "tar -zxvf ${DEPLOY_PATH}/*.tar.gz -C ${DEPLOY_PATH}"
sshCommand remote: deploy_server, command: "source /etc/profile; cd ${deploy_path}/service/asset/bin; chmod 755 *.sh; export deploy_name=${deploy_name};export deploy_ip=${deploy_ip}; export asset_port=${asset_port};export mysql_port=${mysql_port};export zk_port=${zk_port};export kafka_port=${kafka_port};export es_port=${es_port};export kibana_port=${kibana_port};source ${deploy_shell}/env.sh;./service.sh stop;./service.sh start"
}
}
}
}
}

def getHost(name, host, user, passwd) {
def remote = [:]
remote.name = name
remote.host = host
remote.user = user
remote.port = 22
remote.password = passwd
remote.allowAnyHosts = true
return remote
}

V1:配置环境变量env.sh

#/bin/bash
export TOP_BASE_PATH=/data3/asset
export DB_URL=localhost:3396
export KAFKA_URL=localhost:9192
export ES_URL=localhost:9300
export ZOOKEEPER_URLlocalhost:22181
export HOST=localhost
export ASSET_PORT=22120

source /etc/profile
# JDK8
export JAVA_HOME=/opt/jdk/jdk8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export MAVEN_HOME=/data1/jenkins_volume/custom_tools/apache-maven-3.6.3
export SONAR_HOME=/opt/sonar/sonarqube-6.7.7
export SONAR_SCANNER_HOME=/opt/sonar/sonar-scanner-2.8
export ALLURE_HOME=/opt/allure-2.13.7
export NEXUS3_HOME=/opt/nexus-3.28.1-01
export PROM_HOME=/opt/prometheus-2.25.0.linux-amd64
export GRAFANA_HOME=/opt/grafana-7.4.3
export FORTIFY_HOME=/opt/fortify
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$SONAR_HOME/bin/linux-x86-64:$SONAR_SCANNER_HOME/bin:$ALLURE_HOME/bin:$NEXUS3_HOME/bin:$PROM_HOME:$GRAFANA_HOME/bin:$FORTIFY_HOME/bin:$PATH

V2:jenkinfile配置:

import java.text.SimpleDateFormat;

pipeline {

agent any

environment {
deploy_name = 'asset'
deploy_ip = '10.212.212.105'
deploy_path = '/data3/asset'
deploy_shell = '/data3/asset/assetShell'
asset_port = '22120'
pgsql_port = '5543'
zk_port = '22181'
kafka_port = '9192'
es_port = '9300'
kibana_port = '56011'
}

stages {
stage('deploy') {
steps {
script {
source_server = getHost("10.7.195.204", "10.7.195.204", "transferstation", "transferstation")
deploy_server = getHost("10.212.212.105", "110.212.212.105", "root", "123")
sshCommand remote: deploy_server, command: "rm -rf ${deploy_path}"
sshCommand remote: deploy_server, command: "mkdir -p ${deploy_path}"
sshGet remote: source_server, from: '/opt/opt/opt/asset/*.tar.gz', into: 'asset.tar.gz', override: true
sshPut remote: deploy_server, from: "asset.tar.gz", into: "${deploy_path}", override: true
sshPut remote: deploy_server, from: "assetShell", into: "${deploy_path}",override: true
sshCommand remote: deploy_server, command: "cd ${deploy_path}/assetShell;chmod 755 *.sh"
sshCommand remote: deploy_server, command: "cd ${deploy_path}asset/service/bin;chmod 755 *.sh;export deploy_path=${deploy_path};./stop.sh &"
sshCommand remote: deploy_server, command: "tar -zxvf ${DEPLOY_PATH}/asset.tar.gz -C ${DEPLOY_PATH}"
sshCommand remote: deploy_server, command: "source /etc/profile; cd ${deploy_path}/service/asset/bin; chmod 755 *.sh; export deploy_name=${deploy_name};export deploy_ip=${deploy_ip}; export asset_port=${asset_port};export pgsql_port=${pgsql_port};export zk_port=${zk_port};export kafka_port=${kafka_port};export es_port=${es_port};export kibana_port=${kibana_port};${deploy_shell}/redoenv.sh; source ${deploy_shell}/env.sh; ./service.sh stop; ./service.sh start "
}
}
}
}
}

def getHost(name, host, user, passwd) {
def remote = [:]
remote.name = name
remote.host = host
remote.user = user
remote.port = 22
remote.password = passwd
remote.allowAnyHosts = true
return remote
}

V2.env配置:

#!/bin/bash
export TOP_BASE_PATH=/data3/asset
export DB_URL=localhost:5543
export KAFKA_URL=localhost:9192
export ES_URL=localhost:9300
export ZOOKEEPER_URL=localhost:22181
export HOST=localhost
export ASSET_PORT=22120

source /etc/profile
# JDK11
export JAVA_HOME=/opt/jdk/jdk11
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export MAVEN_HOME=/data1/jenkins_volume/custom_tools/apache-maven-3.6.3
export SONAR_HOME=/opt/sonar/sonarqube-6.7.7
export SONAR_SCANNER_HOME=/opt/sonar/sonar-scanner-2.8
export ALLURE_HOME=/opt/allure-2.13.7
export NEXUS3_HOME=/opt/nexus-3.28.1-01
export PROM_HOME=/opt/prometheus-2.25.0.linux-amd64
export GRAFANA_HOME=/opt/grafana-7.4.3
export FORTIFY_HOME=/opt/fortify
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$SONAR_HOME/bin/linux-x86-64:$SONAR_SCANNER_HOME/bin:$ALLURE_HOME/bin:$NEXUS3_HOME/bin:$PROM_HOME:$GRAFANA_HOME/bin:$FORTIFY_HOME/bin:$PATH