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

 

一、基础环境

1、Centos7.2

# cat /etc/redhat-release 
CentOS Linux release 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发送指令到生产环境,进行分发部署。

Flow_Chart

 

三、Jenkins设置

General

image

 

配置参数

image

 

源码管理

image

构建触发器

image

 

构建环境

image

构建脚本可以参考<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>

image

 

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

image

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
JenkinsDocker的自动化部署可以使用GitLab来实现。部署脚本一般由Shell和Python开发,其中Python部分是封装好的逻辑,只需要通过Shell传递参数即可完成项目构建。 迭代过程中产生了许多运维工具,如Ansible、SaltStackJenkins。这些工具可以自动化创建环境,提供了方便的操作和管理方式。 对于jenkins_dcm自动化部署,具体步骤可以按照以下流程进行: 1. 创建Kubernetes组件的家目录并提权:使用命令`mkdir -p $HOME/.kube`创建家目录,并拷贝`/etc/kubernetes/admin.conf`到家目录下的`.kube/config`文件中,然后使用`chown`命令修改文件权限,确保当前用户拥有对该文件的访问权限。 2. 批量导出镜像:为了方便以后使用,可以使用命令`docker save `docker images | grep -v TAG | awk '{print $1":"$2}'` -o name.tar.gz`将所有的镜像批量导出成一个压缩文件。这样可以方便地在其他环境中导入这些镜像。 3. 复制和记录加入集群命令:使用`kubeadm join`命令将节点加入到集群中,需要指定Master节点的地址和令牌。同时,为了确保安全性,还需要提供对应的证书哈希。如果需要重新生成令牌,可以执行相应的操作。 通过以上步骤,就可以实现jenkins_dcm的自动化部署。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [gitlab+jenkins+docker自动化部署脚本](https://download.csdn.net/download/Jack_Roy/12065645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [kubernetes](https://blog.csdn.net/Drw_Dcm/article/details/127553928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值