5290589 发表于 2018-8-1 12:00:18

基于Docker、Jenkins和Saltstack的持续部署方案

一、基础环境
  1、Centos7.2
# cat /etc/redhat-release
  
CentOS Linux>7.3.1611 (Core)  

  2、Docker版本《docker仓库安装》
# docker version  
Client:
  Version:
1.12.6  API version:
1.24  Package version: docker
-1.12.6-32.git88a4867.el7.centos.x86_64  Go version:      go1.
7.4  Git commit:      88a4867
/1.12.6  Built:         Mon Jul
3 16:02:02 2017  OS
/Arch:         linux/amd64  

  
Server:
  Version:
1.12.6  API version:
1.24  Package version: docker
-1.12.6-32.git88a4867.el7.centos.x86_64  Go version:      go1.
7.4  Git commit:      88a4867
/1.12.6  Built:         Mon Jul
3 16:02:02 2017  OS
/Arch:         linux/amd64  

  3、Saltstack版本
  《salt-api安装配置》
  

  

》# salt --version  
salt
2015.5.10 (Lithium)  

  

  

  


  4、Jenkins版本
  Jenkins ver. 2.60.1
二、方案说明
  

  

1、开发提交代码到git服务器,通过钩子触发Jenkins执行构建;  2、Jenkins将代码打包,并通过Dockerfile执行build构建镜像;
  3、镜像构建成功之后,将镜像PUSH到Docker仓库;
  4、通过测试服务器pull新版镜像部署,调用测试服务接口,检测服务是否正常;
  5、通过salt-api发送指令到生产环境,进行分发部署。
  

  


三、Jenkins设置
General

配置参数

源码管理

构建触发器

构建环境

  构建脚本可以参考<jenkins_build.sh>
bash /usr/local/jenkins/home/scripts/jenkins_build.sh               ##构建的脚本  

sed -i'/SERVER_PORT/d' /usr/local/jenkins/home/scripts/config.ini   ## 清除历史参数  

sed -i'/TARGET/d' /usr/local/jenkins/home/scripts/config.ini      ## 清除历史参数  

echo TARGET=${TARGET} >>/usr/local/jenkins/home/scripts/config.ini    ##将新的参数写入配置  

echo SERVER_PORT=${SERVER_PORT}>>/usr/local/jenkins/home/scripts/config.ini  

构建
  构建与构建环境的区别,构建环境有两个选项:Pre build script(构建脚本执行之前操作的内容) 和 Post build script(构建脚本执行之后操作的内容)
  在本例中使用Pre build script,先在构建环境中构建好Docker镜像,然后在构建中拉取到测试环境运行服务。
  创建并运行服务可以参考<docker-project_init.sh>

  Salt-api设置需要安装<SaltStack plugin>插件

guoyu841020 发表于 2019-1-15 13:25:39

咱,已经认真拜读

beson2000 发表于 2019-1-22 20:59:03

谢谢分享

lisimba 发表于 2019-2-5 08:59:37

多谢楼主分享,感谢......
页: [1]
查看完整版本: 基于Docker、Jenkins和Saltstack的持续部署方案