当前位置: 首页 > news >正文

GitLab备份与恢复测试(基于Docker)

GitLab环境准备

docker run --name gitlab \
-p 2022:22 -p 2080:80 -p 2443:443 -d \
-v /opt/gitlab/config:/etc/gitlab \
-v /opt/gitlab/gitlab/logs:/var/log/gitlab \
-v /opt/gitlab/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:16.2.1-ce.0

备份

1.修改配置文件/opt/gitlab/config/gitlab.rb

gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# gitlab_rails['backup_gitaly_backup_path'] = "/opt/gitlab/embedded/bin/gitaly-backup"###! Docs: https://docs.gitlab.com/ee/raketasks/backup_restore.html#backup-archive-permissions
gitlab_rails['backup_archive_permissions'] = 0644# gitlab_rails['backup_pg_schema'] = 'public'###! The duration in seconds to keep backups before they are allowed to be deleted
gitlab_rails['backup_keep_time'] = 604800

2.重新加载配置

docker exec -t gitlab gitlab-ctl reconfigure

3.备份应用程序

docker exec -t gitlab gitlab-backup create STRATEGY=copy

4.备份配置

docker exec -t gitlab /bin/bash -c 'gitlab-ctl backup-etc'

恢复

1.启动gitlab

docker run --name gitlab-bak1 \
-p 2022:22 -p 2080:80 -p 2443:443 -d \
-v /opt/gitlab_bak1/config:/etc/gitlab \
-v /opt/gitlab_bak1/logs:/var/log/gitlab \
-v /opt/gitlab_bak1/data:/var/opt/gitlab \
gitlab/gitlab-ce:16.2.1-ce.0

2.修改配置文件/opt/gitlab_bak1/config/gitlab.rb

gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# gitlab_rails['backup_gitaly_backup_path'] = "/opt/gitlab/embedded/bin/gitaly-backup"###! Docs: https://docs.gitlab.com/ee/raketasks/backup_restore.html#backup-archive-permissions
gitlab_rails['backup_archive_permissions'] = 0644# gitlab_rails['backup_pg_schema'] = 'public'###! The duration in seconds to keep backups before they are allowed to be deleted
gitlab_rails['backup_keep_time'] = 604800

3.重新加载配置

docker exec -t gitlab-bak1 gitlab-ctl reconfigure

4.复制备份文件到2指定的目录

cp /opt/gitlab/gitlab/data/backups/1705891184_2024_01_22_16.2.1_gitlab_backup.tar /opt/gitlab_bak1/data/backups/

5.停止连接到数据库的进程

docker exec -it gitlab-bak1 gitlab-ctl stop puma
docker exec -it gitlab-bak1 gitlab-ctl stop sidekiq
docker exec -it gitlab-bak1 gitlab-ctl status

6.恢复,名称中省略了_gitlab_backup.tar

docker exec -it gitlab-bak1 gitlab-backup restore BACKUP=1705891184_2024_01_22_16.2.1

7.恢复gitlab-secrets文件

tar -xf /opt/gitlab/config/config_backup/gitlab_config_1705891508_2024_01_22.tar -C /tmp/ && mv -f /tmp/etc/gitlab/gitlab-secrets.json /opt/gitlab_bak1/config/

8.重启gitlab容器

docker restart gitlab-bak1

9.检查

docker exec -it gitlab-bak1 gitlab-rake gitlab:check SANITIZE=true

参考链接

官方文档: https://docs.gitlab.com/omnibus/settings/backups.html
gitlab数据及用户迁移: https://blog.csdn.net/IT_shinchan/article/details/130783545?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-4-130783545-blog-122261961.235v40pc_relevant_anti_t3&spm=1001.2101.3001.4242.3&utm_relevant_index=5

http://www.lryc.cn/news/286066.html

相关文章:

  • android studio开发的一些问题
  • 辞职对于我来说,不可避免(10)
  • 【Java】--网络编程:基于TCP协议的网络通信
  • CMake+QT+大漠插件的桌面应用开发(QThread)
  • 【笔记】Helm-3 主题-9 Helm高级技术
  • YOLOv5改进 | 主干篇 | 华为GhostnetV1一种移动端的专用特征提取网络
  • 特斯拉FSD的神经网络(Tesla 2022 AI Day)
  • LLM自回归解码
  • #Uniapp:uni.request(OBJECT)
  • 旅游项目day14
  • 关于缓存 db redis local 取舍之道
  • imgaug库图像增强指南(33):塑造【云层】效果的视觉魔法
  • 树莓派ubuntu:CSI接口摄像头安装驱动程序及测试
  • Webpack5入门到原理6:处理图片资源
  • 大语言模型(LLM)有哪些?
  • 2 - 部署Redis集群架构
  • NOIP2003提高组T1:神经网络
  • Doris数据库误删除恢复
  • C# byte转int:大小端读取
  • 安全通信网络
  • 深度学习笔记(九)——tf模型导出保存、模型加载、常用模型导出tflite、权重量化、模型部署
  • 七Docker可视化管理工具
  • vue和react的差异梳理
  • (笔记总结)C/C++语言的常用库函数(持续记录,积累量变)
  • OceanBase集群扩缩容
  • html 3D 倒计时爆炸特效
  • 记一次垃圾笔记应用VNote安装失败过程
  • 记一次 stackoverflowerror 线上排查过程
  • 论文写作之十个问题
  • leetcode2171 拿出最少数目的魔法豆