Gitlab是一个版本控制软件,直接部署在容器中,简单方便, 我们将数据存放在Gitlab的宿主机上,然后将数据映射到Gitlab容器的某个文件夹上, 这样,当Gitlab出现问题的时候,只需要将容器删除,重新运行一个Gitlab的容器就行,只要宿主机上的数据不出现问题即可.
CI(持续化集成):
项目:实现CI/CD持续集成, 持续交付
持续集成:
程序员书写代码,把代码交给git管理,写到版本更新结束,打个标记,将程序上传到Gitlab服务器上; 我们通过jentens做程序集成,它可以构建一个工程(从Gitlab上将程序下载下来,并且对程序打包),为了方便应用服务器下载部署,在Jenkins服务器上安装了web服务器,将打包文件放在了web服务器上; 为了让应用服务器知道软件包是损坏了还是完好的,我们计算了它的MD5值,为了让应用服务器知道程序的当前版本和前一个版本是什么,我们准备了两个文件,liveversion和lastversion, 分别记录了当前版本和前一个版本;
python实现持续交付:
写一个脚本, 看一看web服务器上是否有最新版本, 有的话将其下载下来,没有的话就退出; 如果有的话, 下载下来了,将下载的软件包的MD5值与web服务器上的文件md5值进行比较,如果不相同则删除坏的软件包, 相同则准备安装部署(为了快速完成部署, 将下载的版本解压到不同的目录中, 想要切换版本, 创建一个链接指向相应的版本目录即可)
Gitlab服务器的搭建(IP:192.168.1.31):
1. 在官网上下载Gitlab镜像文件, 例如: gitlab_zh.tar;
2.安装docker:
[root@gitlab ~]#yum -y install docker #已经将docker的软件包建立的yum仓库,可以直接yum安装
[root@gitlab ~]#systemctl start docker #启动docker
[root@gitlab ~]#systemctl enable docker #设置开机自启
3.更改端口号:
[root@gitlab ~]#vim /etc/ssh/sshd_config #gitlab会用到22端口,更改ssh端口号为2022
[root@gitlab ~]#systemctl restart sshd.service #重启服务
[root@gitlab ~]#ssh 192.168.1.31 -p 2022 #重新远程连接
4.加载Gitlab镜像:
[root@gitlab ~]#docker load < gitlab_zh.tar #导入镜像包
[root@gitlab ~]#docker images #查看Gitlab镜像是否导入
5.运行一个docker容器:
[root@gitlab ~]#docker run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --
restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v
/srv/gitlab/data:/var/opt/gitlab gitlab_zh:latest
#'-d'指在后台运行,'-h'指的是gitlab容器的主机名,'-p'指宿主机端口映射到容器的端口,
#当访问宿主机的端口时会直接访问到容器的相应映射端口, '-v' 前一个是本地文件,后一个
#是容器内的文件,实现本地文件到容器文件的映射, 'gitlab_zh:latest' 是镜像名字,
#用这个镜像启动容器
访问web页面:
192.168.1.31 #在内网直接输入IP地址就可以访问到, 这里会提示输入密码,密码需大于8位
默认用户名为root, 用'root'用户和新密码直接登录