代码服务流水线部署平台
代码服务流水线部署平台
jenkins的部署请参考以前的文章
Linux下用tomcat部署jenkins
相关机器之间的免密,请参考以前的文章
Linux下实现免密登录
编写shell自动化部署-代码服务流水线脚本,脚本内容如下
code_pipeline.sh
#!/bin/sh#init param
git_server=《git服务器ip地址》
code_path=/data/java/code
tomcat_path=/opt/tomcat/tomcat
project_name=$1
branch_name=$2
env=$3function git_pull_code(){echo -e "[34m ==开始拉取$project_name项目,$branch_name分支代码== [0m"rm -rf $code_path && mkdir -p $code_path && cd $code_path git initgit remote add origin git@$git_server:/home/git/repos/$project_name.gitgit pull origin $branch_name >/dev/null 2>&1if [ $? -eq 1 ];thenecho -e "[31m ==拉取失败,需查项目$project_name,分支$branch_name是否存在== [0m"exit 0fi git log --pretty=format:"%h - %an, %ai : %s" -5
}function maven_pack_code(){echo -e "[34m ==开始对$branch_name代码打包== [0m"cd $code_path/$project_name && mvn clean install -Dmaven.test.skip=trueif [ $? -eq 1 ];thenecho -e "[31m ==打包失败,需查项目$project_name,分支$branch_name代码== [0m"exit 0fi
}function remote_deploy_code(){envip=`find /root -name env_info.json | xargs cat | jq -r '.'$project_name'.'$env''`arrayIp=`echo $envip | tr ',' ' '`for ip in ${arrayIp[@]}do{echo -e "[34m ==开始对$env环境$ip机器部署== [0m"ssh root@$ip "source /etc/profile && rm -rf $tomcat_path/webapps/$project_name* && sh $tomcat_path/bin/shutdown.sh >/dev/null 2>&1"if [ $? -eq 1 ];thenecho -e "[31m ==部署失败,jenkins连$ip失败或关闭tomcat服务失败== [0m"exit 0fi scp $code_path/$project_name/target/$project_name.war root@$ip:$tomcat_path/webapps/if [ $? -eq 1 ];thenecho -e "[31m ==部署失败,jenkins连$ip失败或推送$project_name.war失败== [0m"exit 0fi ssh root@$ip "source /etc/profile && sh $tomcat_path/bin/startup.sh"if [ $? -eq 1 ];thenecho -e "[31m ==$project_name项目在$ip机器上部署失败== [0m"exit 0fiecho -e "[34m ==$project_name项目在$ip机器上部署成功== [0m"}&donewait
}git_pull_code
maven_pack_code
remote_deploy_code
env_info.json
根据自己需求配置ip地址,集群环境用逗号隔开
{ "spring":{"test":"192.168.188.134,192.168.188.135","dev":"","pre":"","pro":""}
}
注:执行此脚本需要jq支持
Linux下安装jq
将脚本和JSON文件放在指定目录/root/tools/shell/pipeline下
jenkins新建任务步骤如下
time sh /root/tools/shell/pipeline/code_pipeline.sh $project_name $branch_name $env
保存后就算完成jenkins的配置了
代码服务流水线部署平台相关推荐
- Jenkins + Gitlab 实现代码流水线部署
DevOps DevOps 概述 DevOps(Development和Operations的组合词)是一种重视 " 软件开发人员(Dev)" 和 " IT运维技术人员( ...
- 基于Gitlab Jenkins Docker集群 微服务搭建自动化部署平台
随着公司应用系统的不断增多,原有手工部署流程越来越不满足上线的需求.为了各个系统能快速迭代与测试,减少上线流程时间和人为出错,迫切需要一套自动化部署系统. 转载原文:https://luoji.liv ...
- 袋鼠云平台代码规范化编译部署的提效性改进实践
一.前言 作为全链路数字化技术与服务提供商,袋鼠云提供了从数据湖.大数据基础平台.离线开发.实时开发.数据服务.数据治理.指标管理.客户数据洞察.数据孪生可视化等全产品体系的服务. 围绕着" ...
- 在云效平台实现流水线部署遇到的问题及解决
前言:在云效平台上实现流水线部署作为本次大作业中部署工作一项重点,由我在13日和14日两天做了数次尝试并最终得以解决. 7月13日主要解决了项目在服务器上手动部署的问题: 在13日初步使用Python ...
- 大众点评Cat实时应用监控平台服务端部署
关于cat服务端部署的相关文档地址如下: https://github.com/dianping/cat/wiki/readme_server 话不多说,接下来就按照官方文档流程走一遍,我这里是使用的 ...
- 微服务怎么部署到服务器的_微服务的部署与发布:持续交付与持续部署微服务...
持续交付与持续部署微服务 持续集成(Continuous Integration)与持续交付(Continuous Delivery ).持续部署(ContinuousDeployment)作为敏捷开 ...
- KubeSphere DevOps流水线部署
文章目录 一. 安装 1.1 下载yaml 1.2 设置默认StorageClass 1.3 安装 1.4 配置 1.5 查看 1.6 页面 二. 流水线部署 2.1 开启流水线设置 2.1.1 未安 ...
- GitLab通过CI/CD 实现流水线部署(演示主要是通过shell上传SpringBoot项目)
GitLab通过CI/CD 实现实现流水线部署(演示主要是通过shell上传SpringBoot项目) 环境准备 1.JDK: 2.maven: 3.Git 4.Docker (本次安装没有使用到,仅 ...
- 微服务:部署策略了解
In Place Deployment(直接替换部署) 如果你的应用服务器数量很少,比如只有一台,那么最简单的方式就是通过在原来的服务器上直接更新应用.当然,最好是通过使用前面所介绍的基础设施即代码的 ...
最新文章
- c语言实现将字符串首尾*删除,C语言实现Trim()函数:删除字符串首尾空格。...
- Symfony2学习笔记之HTTP Cache
- MySQL优化必须调整的10项配置
- 计算机网络走向系统化 科学化,第六章计算机网络与INTERNET 应用习题
- (原+转)ubuntu终端输出彩色文字
- C语言_选择结构的程序设计
- pythonlocust使用方法_python locust 性能测试:locust安装和一些参数介绍
- sony z及泛泰a870 安装optware记录
- 阿里云盘来了,百度网盘VS阿里云盘,你更看好谁!
- Mac使用 automator 自动批量处理网站下载
- oracle stdevp函数,ORACLE 系统函数与SQLSERVER系统函数的区别是什么
- 什么是二维条码与及特点
- 微信公众号--发送模板消息
- 川藏自驾游的神州租车攻略
- 重磅!实在智能首创“智能融合拾取”技术!
- KVM-Virsh指令详解
- 类的练习:定义一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)对ages加上years,age()显示tree对象的ages的值。
- 《海外华人写兰州国际书法展》亮相美国丹佛
- 今天ifttt很火呀
- 「技术分享」TSINGSEE青犀视频云存储架构的设计和特点