GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
配置域名的原因是可以使配置文件通用,这样在别的机器进行恢复时,就不需要修改配置了,另外配置好域名后,在我们创建好项目时,克隆代码所提示的 ssh 和 http 地址就是带域名的,而不是IP地址。
IP | 角色 | 域名 |
---|---|---|
192.168.0.143 | 主 GitLab 仓库 | code.gitlab.com |
192.168.0.154 | 从 GitLab 仓库 | code.gitlab.com |
# 创建数据存储目录、日志目录、配置目录
mkdir -p /home/gitlab/{data,log,etc}
docker pull twang2218/gitlab-ce-zh:11.1
docker run -d --publish 8090:8090
--publish 2222:22
--name gitlab --privileged=true
--restart=always -e TZ=Asia/Shanghai
-v /home/gitlab/etc:/etc/gitlab -v /home/gitlab/log:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh:11.1
# 进入容器
docker exec
-it gitlab /bin/bash
# 修改 /etc/gitlab/gitlab.rb
## http使用的端口以及在项目工程显示的 http 下载路径中使用
external_url 'http://code.gitlab.com:8090'
## 项目工程显示的 ssh 地址和端口
gitlab_rails['gitlab_ssh_host']
=
'code.gitlab.com'
gitlab_rails['gitlab_shell_ssh_port']
=
2222
## 时区
gitlab_rails['time_zone']
=
'Asia/Shanghai'
## 保存备份 30 天
gitlab_rails['backup_keep_time']
=
2592000
# 执行重载配置文件
gitlab-ctl reconfigure
首先为 root 用户设置密码,root 用户将作为 GitLab 的管理员
进入 GitLab 管理页面
姓名:填写中文名 用户名:姓名的全拼音,如果有重名就往后面加编号,例如:zhangsan2 电子邮箱:填写公司的邮箱(让开发人员自己提供一下)
docker exec gitlab gitlab-rake gitlab:backup:create
生成的备份文件为:1623140468_2021_06_08_11.1.4_gitlab_backup.tar,所在目录为:/home/gitlab/data/backups
# 在主机器上生成密钥(如果已经生成就跳过这一步)
ssh-keygen -t rsa
# 将密钥拷贝到从机器,实现主机免密登录从机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.154
# 执行备份命令
docker exec gitlab gitlab-rake gitlab:backup:create
# 将备份文件拷贝到备用机器的 GitLab 数据目录下
scp -r /home/gitlab/data/backups root@192.168.0.154:/home/gitlab/data/backups
vim /etc/crontab
# 每天备份两次, 12 点和 18 点各一次
0
12,18
*
*
* root sh /home/auto_backup.sh CRON=1
# 重新加载定时器
service cron reload
service cron restart
注意:在从机器上必须按照上面的安装和配置步骤提前安装好 GitLab,然后执行以下步骤进行仓库恢复,以下操作均在从机器上执行:
# 进入容器
docker exec
-it gitlab /bin/bash
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 为备份文件赋予执行权限
chmod -R 7777
/var/opt/gitlab/backups
cd /var/opt/gitlab/backups
# 备份文件编号备份的 tar 包数字部门,例如:1623140468_2021_06_08_11.1.4_gitlab_backup.tar,编号为:1623140468_2021_06_08_11.1.4
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
gitlab-ctl start
本文分享自 python爬虫实战之路 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!