代码服务流水线部署平台

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的配置了

代码服务流水线部署平台相关推荐

  1. Jenkins + Gitlab 实现代码流水线部署

    DevOps DevOps 概述 DevOps(Development和Operations的组合词)是一种重视 " 软件开发人员(Dev)" 和 " IT运维技术人员( ...

  2. 基于Gitlab Jenkins Docker集群 微服务搭建自动化部署平台

    随着公司应用系统的不断增多,原有手工部署流程越来越不满足上线的需求.为了各个系统能快速迭代与测试,减少上线流程时间和人为出错,迫切需要一套自动化部署系统. 转载原文:https://luoji.liv ...

  3. 袋鼠云平台代码规范化编译部署的提效性改进实践

    一.前言 作为全链路数字化技术与服务提供商,袋鼠云提供了从数据湖.大数据基础平台.离线开发.实时开发.数据服务.数据治理.指标管理.客户数据洞察.数据孪生可视化等全产品体系的服务. 围绕着" ...

  4. 在云效平台实现流水线部署遇到的问题及解决

    前言:在云效平台上实现流水线部署作为本次大作业中部署工作一项重点,由我在13日和14日两天做了数次尝试并最终得以解决. 7月13日主要解决了项目在服务器上手动部署的问题: 在13日初步使用Python ...

  5. 大众点评Cat实时应用监控平台服务端部署

    关于cat服务端部署的相关文档地址如下: https://github.com/dianping/cat/wiki/readme_server 话不多说,接下来就按照官方文档流程走一遍,我这里是使用的 ...

  6. 微服务怎么部署到服务器的_微服务的部署与发布:持续交付与持续部署微服务...

    持续交付与持续部署微服务 持续集成(Continuous Integration)与持续交付(Continuous Delivery ).持续部署(ContinuousDeployment)作为敏捷开 ...

  7. KubeSphere DevOps流水线部署

    文章目录 一. 安装 1.1 下载yaml 1.2 设置默认StorageClass 1.3 安装 1.4 配置 1.5 查看 1.6 页面 二. 流水线部署 2.1 开启流水线设置 2.1.1 未安 ...

  8. GitLab通过CI/CD 实现流水线部署(演示主要是通过shell上传SpringBoot项目)

    GitLab通过CI/CD 实现实现流水线部署(演示主要是通过shell上传SpringBoot项目) 环境准备 1.JDK: 2.maven: 3.Git 4.Docker (本次安装没有使用到,仅 ...

  9. 微服务:部署策略了解

    In Place Deployment(直接替换部署) 如果你的应用服务器数量很少,比如只有一台,那么最简单的方式就是通过在原来的服务器上直接更新应用.当然,最好是通过使用前面所介绍的基础设施即代码的 ...

最新文章

  1. c语言实现将字符串首尾*删除,C语言实现Trim()函数:删除字符串首尾空格。...
  2. Symfony2学习笔记之HTTP Cache
  3. MySQL优化必须调整的10项配置
  4. 计算机网络走向系统化 科学化,第六章计算机网络与INTERNET 应用习题
  5. (原+转)ubuntu终端输出彩色文字
  6. C语言_选择结构的程序设计
  7. pythonlocust使用方法_python locust 性能测试:locust安装和一些参数介绍
  8. sony z及泛泰a870 安装optware记录
  9. 阿里云盘来了,百度网盘VS阿里云盘,你更看好谁!
  10. Mac使用 automator 自动批量处理网站下载
  11. oracle stdevp函数,ORACLE 系统函数与SQLSERVER系统函数的区别是什么
  12. 什么是二维条码与及特点
  13. 微信公众号--发送模板消息
  14. 川藏自驾游的神州租车攻略
  15. 重磅!实在智能首创“智能融合拾取”技术!
  16. KVM-Virsh指令详解
  17. 类的练习:定义一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)对ages加上years,age()显示tree对象的ages的值。
  18. 《海外华人写兰州国际书法展》亮相美国丹佛
  19. 今天ifttt很火呀
  20. 「技术分享」TSINGSEE青犀视频云存储架构的设计和特点

热门文章

  1. 简单的图像相似度计算方法
  2. Intel Distiller工具包-量化实现3
  3. 超分算法RDN:Residual Dense Network for Image Super-Resolution 超分辨率图像重建
  4. STL源码剖析---红黑树原理详解上
  5. English: date time
  6. POI-Excel导入与导出
  7. win7升级win10后出现VisualSVN Server提供程序无法执行所尝试的操作 0x80041024
  8. 【命名规则】小驼峰?大驼峰?
  9. 【python爬虫】京东商品分析
  10. 51单片机:LED流水灯(仿真+代码)