一、前言
GitLab 是 Ruby 开发的自托管的 Git 项目仓库,可通过Web界面进行访问公开的或者私人项目。
本文将演示gitlab的安装过程。
二、安装
1.docker安装
(1)前言:
这里演示centos7的安装教程,更多系统安装方式请点击安装 Docker
(2)安装:
1)卸载旧版本docker:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2)使用yum安装
yum install -y yum-utils
3)添加yum软件源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
#官方源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4)安装docker
yum install docker-ce docker-ce-cli containerd.io
5)启动docker
systemctl enable docker
systemctl start docke
2.docker-composer安装
(1)前言:
这里演示二进制包的方式安装,更多安装方式点击docker-composer安装
(2)安装命令:
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 国内用户可以使用以下方式加快下载
curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3.修改服务器的sshd访问端口
(1)前言:
由于gitlab需要用到22端口,如果服务器的ssh访问端口不是22则跳过此步。
(2)修改步骤
1)修改sshd配置
vi /etc/ssh/sshd_config
找到Port,去掉前面的#,修改端口,这里我修改成22200
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bSXoxNyQ-1618475371607)(https://lexiangla.com/assets/16c25f789dbf11eb86a8d640dad99da4)]
重启ssh服务
systemctl ssh restart
2)修改防火墙配置
打开防火墙配置
vi /etc/sysconfig/iptables
如果iptables文件不存在则安装防火墙
yum install iptables-services
增加22200端口,顺便增加gitlab所需的端口80,443,22
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22200 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
重启防火墙
systemctl restart iptables
设置防火墙为开机启动项
systemctl enable iptables
4.gitlab安装准备
新建docker-composer.yml文件
version: '2'
services:
gitlab:
image: 'docker.io/gitlab/gitlab-ce:13.1.11-ce.0' #gitlab版本
restart: unless-stopped
privileged: true
cpuset: 0,1,2,3
mem_limit: 5g
dns:
- 114.114.114.114
- 1.2.4.8
hostname: 'gitlab.***.com' #换上自己的域名
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.***.com' #换上自己的域名,没有域名证书使用http
gitlab_rails['time_zone'] = 'Asia/Shanghai'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- ./config:/etc/gitlab
- ./data:/var/opt/gitlab
- ./logs:/var/log/gitlab
更多gitlab发行版查看gitlab发行版
5.gitlab安装
在docker-composer.yml所在目录下运行
/usr/local/bin/docker-compose up
等待gitlab安装完成即可,web访问你配置的域名https://gitlab.***.com
域名需解析到你安装的服务器上,没有域名的,可配置host指向你的服务器访问。
6.备份
进入docker-gitlab容器:
docker exec -it gitlab_gitlab_1 /bin/bash
运行备份命令:
gitlab-rake gitlab:backup:create
使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1530156812_2018_06_28_10.8.4_gitlab_backup.tar的压缩包
7.迁移/还原
(1)前言
迁移需安装同版本的gitlab。
(2)迁移步骤
1)复制备份压缩包至新服务器gitlab容器的/var/opt/gitlab/backups目录下
远程复制命令:
scp /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar root@10.0.0.6:/var/opt/gitlab/backups/
2)还原
停止相关服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
还原命令:可以不用输入压缩包文件名后面的 “_gitlab_backup.tar”
gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4
启动gitlab服务
gitlab-ctl start
8.升级
(1)前言
升级存在一定风险,请务必先进行备份,升级无需停机
(2)说明
gitlab升级不可跨大版本升级,需分次升级,具体升级版本路径可查看gitlab升级
(3)升级步骤
修改docker-composer.yml文件的 gitlab->image到对应的版本,执行
/usr/local/bin/docker-compose up
跨大版本根据gitlab升级路径,分次修改对应版本重复升级即可