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

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐