备份与还原Gitlab实例
部署
推荐使用docker部署: deploy.sh
sudo docker run --detach \
--hostname gitlab.sasuke.com \
--publish 443:443 --publish 80:80 --publish 2224:22 \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com/'; gitlab_rails['gitlab_shell_ssh_port'] = 2224" \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
其中由于远程部署,22端口被ssh占用,所以在容器外部映射需要换一个端口,例如2224
在部署之前需要指定gitlab Docker
容器的数据挂载点,按照官网给出的Ubuntu
环境的路径:
export GITLAB_HOME=/srv/gitlab
部署一个实例只需要:
./deploy.sh
备份
使用容器部署的Gitlab
,备份十分方便:
sudo docker exec -t gitlab gitlab-backup create
执行成功后的备份文件在 $GITLAB_HOME/data/backups
中,当你要转移你的Gitlab
实例时,该路径下的备份文件是最重要的。
例:1593690781_2020_07_02_13.1.2_gitlab_backup.tar
注意 除了备份文件,配置文件和秘钥文件也是需要手动备份的,就如提示所言:
Warning: Your
gitlab.rb
andgitlab-secrets.json
files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
也可见官方文档对此的说明。
对于Docker
容器部署的实例,这两个文件的位置在$GITLAB_HOME/config
请将这些文件都妥善保管!
恢复
使用容器部署的实例,在Restore
时也是十分方便的。
但有个前提,需要你有一个新创建的Gitlab
实例,不必要是容器,可以自行摸索。
先通过上面的脚本创建一个实例
./deploy.sh
等待容器启动完毕,可以查看容器日志来了解容器部署状态:
sudo docker logs -f gitlab
注意 一定要等容器部署完毕再执行restore
,否则可能造成一些不可预知的错误,解决起来很麻烦。
容器部署完毕后将备份文件放入$GITLAB_HOME/data/backups
,注意修改备份文件权限为755。
sudo chmod -R 755 1593690781_2020_07_02_13.1.2_gitlab_backup.tar
接下来执行还原操作
sudo docker exec -it gitlab gitlab-backup restore
然后需要将之前手动备份的两个配置文件放入$GITLAB_HOME/config
目录下。
进入容器实例:
sudo docker exec -it gitlab /bin/bash
最后重新执行以下指令来重新加载配置文件:
gitlab-ctl reconfigure
gitlab-ctl restart
最后
有问题自行Google,建议先测试一遍,熟悉流程。
网友评论