一、背景介绍
在互联网应用快速更新迭代的大背景下,传统的人工手动或简单脚本已经不能适应此变化,此时Devops为我们提供了良好的解决方案,应用好CI/CD可以大大的方便我们的日常工作,自动化快速的持续集成/持续交付为我们带来了应用开放的更快速度、更好的稳定性和更强的可靠性。
二、拓扑环境
2.1 架构拓扑
如上图实例,简单花了下流程拓扑:
当研发push本地代码到gitlab-server后,webhook自动触发jenkins构建应用
在docker host上部署应用git clone来自gitlabserver源码,并启动应用
前端可以放置lb来做高可用
数据库连接云数据库
可将日志存储在log后期投递到elk实现日志可视化
构建完成邮件通知相关人员(测试或开放)
2.2 系统软件版本
名称
版本Linux系统
CentOS7.3 64位
Docker
1.13
Django
2.0
三、安装部署
3.1 Jenkins安装部署
Jenkins安装部署可参考:jenkins笔记
安装完成后添加Docker目标服务器
配置邮件发送服务器
3.2 Docker安装部署
Docker安装部署及Dockerfile编写可参考:容器Docker详解
3.3 Gitlab安装部署
GitLab安装在公网Linux服务器运行一些命令即可,如果没有公网需要手动修改 /etc/gitlab/gitlab.rb文件的external_url 'http://自己的内网IP'
yum install -y libsemanage-static libsemanage-devel policycoreutils openss
h-server openssh-clients postfix
systemctl enable postfix && systemctl start postfix
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.
0-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
# 获取公网IP
PUBLICIP=$(curl http://ipv4.icanhazip.com)