一.安装pipeline,Git plugin,Git Parameter Plug-In,Pulish Over SSH等插件并生成插件语法。
系统管理—>系统配置—>Publish over SSH配置
#此配置是使用ssh生成一对密钥,将id_rsa私钥放置于此,将id_rsa.pub拷贝到你要部署的远程web服务器上。
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触发构建,验证查看页面是否变化
|