Gitlab管理与备份恢复
2021-04-14 本文已影响0人
阿当运维
gitlab常用管理命令
image.png
Gitlab备份与恢复
- 手动备份
备份数据:
gitlab-rake gitlab:backup:create
备份配置文件:
gitlab-ctl backup-etc
- 自动备份
crontab -l
* * * * * docker exec -it gitlab (容器名) gitlab-rake gitlab:backup:create
* * * * * docker exec -it gitlab (容器名) gitlab-rake gitlab-ctl backup-etc
默认备份文件在/var/opt/gitlab/backups
想要修改备份路径打开 /etc/gitlab/gitlab.rd
找到“# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" 取消注释,并修改,最后重启容器或者gitlab重载。
- 自动清理
找到gitlab配置文件
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800
打开这三项注释。 backup_keep_time 默认单位是秒。 意思是多少天以前的归档备份都会被清理。
最后重载配置。
恢复gitlab(模拟docker容器挂掉)
1.准备新环境
注意:git恢复数据需要新老gitlab 版本一致。如果是docker安装的版本,在部署新系统也要拉取之前gitlab指定版本,不能再用最新了。如(docker pull gitlab/gitlab-ce:13.10.2-ce.0)
docker rm -f gitlab
mv /opt/gitlab /opt/gitlab.bak
#启动一个新容器
mkdir /opt/gitlab
docker run -d -p 443:443 -p 85:80 -p 2222:22 --name gitlab --restart always \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
输入地址,可看到是gitlab上一个全新的项目,无内容。
2.拷贝备份文件
#宿主机上,切到docker之前持久化数据目录下
cd /opt
cp gitlab.bak/data/backups/1618306241_2021_04_13_13.10.2_gitlab_backup.tar
gitlab/data/backups/
3.停止写库服务
#进到gitlab容器里
chown -R git.git /var/opt/gitlab/backups
gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
4.恢复数据
gitlab-rake gitlab:backup:restore BACKUP=1618306241_2021_04_13_13.10.2
5.恢复配置文件
#宿主机操作(将以前gitlab备份的配置文件拷贝到新的里)
cd /opt
cp gitlab.bak/config/config_backup/gitlab_config_1618306549_2021_04_13.tar /opt/gitlab/config/
cd /opt/gitlab/config/ #新容器持久化目录对应容器内 /etc/gitlab
tar xvf gitlab_config_1618306549_2021_04_13.tar
#容器操作
cd /etc/gitlab
cp -rf etc/gitlab/* /etc/gitlab/ #备份配置文件解压后,会再次出现一个etc文件夹,里面是旧配置备份,考到新的下面即可
重载配置
gitlab-ctl reconfigure
等待。。。。输入地址,恢复如初。
image.png
备份建议:每周备份一次持久化目录/opt/gitlab到备份服务器,这样docker在启动容器都可以直接用拉起这些数据