Jenkins自动化部署与Pipeline脚本

本文基于Jenkins已搭建完毕,Jenkins服务搭建详解可参考此文:Linux安装与卸载Jenkins(超详细)

一般是Jenkins部署在一台服务器上,gitlab部署在一台服务器上,发布的服务部署在一台服务器上,大致流程基本上三步:

第一步:在Jenkins上创建一个项目,可以创建纯pipeline脚本的,也可以是自由风格的,之后还需要配置一下SSH server,之后就写脚本;

 后台项目的pipeline:

pipeline{agent anystages{stage('拉取GitLab代码'){  /*拉取GitLab代码的工作*/steps{catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {checkout([$class: 'GitSCM', branches: [[name: '*/test']], extensions: [], userRemoteConfigs: [[credentialsId: '创建的gitlab上的身份id', url: '代码地址']]])} }}stage('编译代码'){       /*打包构建源码成指定应用包,构建后存放的目录在/root/.jenkins/workspace/指定构建任务/target文件下*/steps{catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {sh"""source /etc/profilecd /opt/jenkins_workspace/workspace/oms_back/zfy-auth/zfy-authmvn clean mvn install -Dmaven.test.skip=true"""}}}stage('应用包移动到服务器'){       /*打包构建源码成指定应用包,构建后存放的目录在/root/.jenkins/workspace/指定构建任务/target文件下*/steps{catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {sh"""mv /opt/jenkins_workspace/workspace/oms_back/zfy-auth/zfy-auth/zfy-auth-admin/target/zfy-auth-admin.jar /opt/jenkins_workspace/workspace/back/zfy-auth/zfy-auth/zfy-auth-admin/target/zfy-auth-admin.jarscp -P 10088 /opt/jenkins_workspace/workspace/back/zfy-auth/zfy-auth/zfy-auth-admin/target/zfy-auth-admin.jar  root@192.168.2.2:/opt/tomcat-7.0.67/"""}}}   stage('备份更新启动tomcat'){       /*打包构建源码成指定应用包,构建后存放的目录在/root/.jenkins/workspace/指定构建任务/target文件下*/steps{sshPublisher(publishers: [sshPublisherDesc(configName: 'back', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand:'''source /etc/profilecd /opt/tomcat-7.0.67sh stop.shsleep 2sh start.sh &''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '/opt/tomcat-7.0.67')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])}}        }
}

 前端pipeline:

 host='192.168.1.1'port='22'user='root'pwd='root'pipeline{agent anystages{stage('拉取GitLab代码'){steps{checkout([$class: 'GitSCM', branches: [[name: 'http://192.168.1.1:9001/zfy-projects/zfy.git']], doGenerateSubmoduleConfigurations: false, extensions: [], gitTool: 'Default', submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9947770c-42e2-483c-a47d-b2ef3db791f6', url: '${Gitlab_URL}']]])} }stage('替换相关配置'){                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             steps{echo "不需要配置"}}stage('打包构建'){steps{sh"""if [ -f "pom.xml" ];thencd ${workspace}/${project}/zfy-peak/zfy-client/zfy-c-helsecd ${workspace}/${project}/zfy-peak/zfy-client/zfy-c-hfinpm installsleep 2npm run buildrm -rf zfy-c-hmv dist zfy-c-h"""}}stage('应用包移动到nginx'){steps{sh"""cd ${workspace}/${project}/zfy-peak/zfy-client/zfy-c-hsshpass -p '$pwd' scp -r zfy-c-h '$user'@'$host':/opt/app"""}}stage('重启加载服务'){steps{sshPublisher(publishers: [sshPublisherDesc(configName: "${remoteHost}", transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand:'''source /etc/profile/usr/sbin/nginx -s reload''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '/opt/app')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])} }    }
}

第二部:在gitlab上找到需要自动化构建的项目,为它创建一个角色,把该角色的身份id和HTTP代码地址拿到之后放入piepeline脚本里面;

第三步:可以为Jenkins创建免密登录的ssh公私钥,将公钥放在Jenkins上,把私钥放入~/.ssh/authorized_keys文件里面

在piepeline脚本里面也可以输入命令 ssh -p 端口 用户名@IP 进入代码服务器,将打好的jar或者war亦或前端静态文件拷入tomcat或者Nginx服务器。

多多更新,通俗易懂


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部