一.安装pipeline,Git plugin,Git Parameter Plug-In,Pulish Over SSH等插件并生成插件语法。

系统管理—>系统配置—>Publish over SSH配置

#此配置是使用ssh生成一对密钥,将id_rsa私钥放置于此,将id_rsa.pub拷贝到你要部署的远程web服务器上。

#使用root账户生成一对密钥
ssh-keygen
ssh-copy root@x.x.x.x (拷贝到要部署的web服务器上实现免密登录)

新建项目(流水线)---->配置---->最下面流水线语法

1.Git Parameter Plug-In插件

2.Git plugin插件

3.triggers触发器

4.Pulish Over SSH插件

二.配置流水线脚本

pipeline {
agent {
label "task1"
}
parameters {
gitParameter branch: '', branchFilter: '.*', defaultValue: 'master', description: '请选择你要发布的分支', name: 'branch', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
}

environment {
git_address = "http://gitlab.ctnrs.com/my-group/ansible.git"
git_password = "4cfc8d8f-489b-4c29-9f10-4a1b265e0cb3"
}
triggers {
pollSCM '*/1 * * * * '
}


stages {
stage('拉去取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: "${params.branch}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "$git_password", url: "$git_address"]]])
}
}
stage('编译构建'){
steps {
sh "mvn clean package -Dmaven.test.skip=true"
}
}
stage('推送部署包'){
steps {
echo '推送部署包'
}
}
stage('部署验证测试') {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'web2', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: ''' tomcat=/usr/local/tomcat
cd $tomcat/webapps
#备份远程web服务上的数据到备份目录下
mv ROOT.war /data/backup/$(date +%F_%T)_ROOT.war
#部署新的war包并启动tomcat
mv /tmp/ly-simple-tomcat-0.0.1-SNAPSHOT.war $tomcat/webapps/ROOT.war
pid=$(ps -ef |grep tomcat |egrep -v "grep|$$" |awk \'{print $2}\')
[ -n $pid ] && kill -9 $pid
/bin/bash /usr/local/tomcat/bin/startup.sh ''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'tmp', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/*.war')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}

三.验证访问

访问tomcat web服务器

192.168.0.5:8080

#修改页面代码
vim java-demo/src/main/resources/templates/index.ftl

git add .
git commit -m "demo"
git push origin master

提交代码等待jenkins触发构建,验证查看页面是否变化