前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 AlmaLinux 9 备份 GitLab 社区版实战

基于 AlmaLinux 9 备份 GitLab 社区版实战

原创
作者头像
远哥制造
修改2024-11-07 20:24:08
202
修改2024-11-07 20:24:08
举报
文章被收录于专栏:远哥制造

0x00. 前言

本文是一个系列,本篇为系列文章的第三篇:基于 AlmaLinux 9 备份 GitLab 社区版实战

第一篇:基于 AlmaLinux 9 安装 GitLab 社区版实战

第二篇:基于 AlmaLinux 9 配置 GitLab 社区版实战

本文仍基于在腾讯云购买的轻量机 cn-tx-bj7-a9 上安装,AlmaLinux 9.4 版本,配置为 4C4G60G


上一篇文章基于 AlmaLinux 9 配置 GitLab 社区版实战中介绍了公司内部使用的 GitLab 在安装后都进行了哪些配置,主要包含 SSL 证书、邮件发送和 LDAP 登录这三大部分

这篇文章按计划来介绍关于备份的相关内容。关于备份的重要性,不言而喻,毕竟内部使用的 GitLab 项目和用户均为百数量级

0x01. 生成备份

参照官方文档:https://docs.gitlab.com/ee/administration/backup_restore/backup_gitlab.html

生成备份其实只要执行 gitlab-backup 命令就可以了

这个 gitlab-backup 工具实际上是在 /opt/gitlab/bin 路径下的

代码语言:txt
复制
[root@cn-tx-bj7-a9 ~]# which gitlab-backup
/usr/bin/gitlab-backup
[root@cn-tx-bj7-a9 ~]# ll /usr/bin/ | grep gitlab
lrwxrwxrwx  1 root root        29 Nov  2 00:39 gitlab-backup -> /opt/gitlab/bin/gitlab-backup
lrwxrwxrwx  1 root root        33 Nov  2 00:39 gitlab-backup-cli -> /opt/gitlab/bin/gitlab-backup-cli
lrwxrwxrwx  1 root root        26 Nov  2 00:39 gitlab-ctl -> /opt/gitlab/bin/gitlab-ctl
lrwxrwxrwx  1 root root        27 Nov  2 00:39 gitlab-psql -> /opt/gitlab/bin/gitlab-psql
lrwxrwxrwx  1 root root        28 Nov  2 00:39 gitlab-rails -> /opt/gitlab/bin/gitlab-rails
lrwxrwxrwx  1 root root        27 Nov  2 00:39 gitlab-rake -> /opt/gitlab/bin/gitlab-rake
lrwxrwxrwx  1 root root        32 Nov  2 00:39 gitlab-redis-cli -> /opt/gitlab/bin/gitlab-redis-cli
[root@cn-tx-bj7-a9 ~]# ll /opt/gitlab/bin/
total 72
-rwxr-xr-x 1 root root 3679 Oct 23 04:15  gitlab-backup
-rwxr-xr-x 1 root root 3679 Oct 23 04:15 'gitlab-backup;67250373'
-rwxr-xr-x 1 root root  703 Oct 23 04:15  gitlab-backup-cli
-rwxr-xr-x 1 root root  703 Oct 23 04:15 'gitlab-backup-cli;67250373'
-rwxr-xr-x 1 root root 1418 Oct 23 04:15  gitlab-ctl
-rwxr-xr-x 1 root root 1418 Oct 23 04:15 'gitlab-ctl;67250373'
-rwxr-xr-x 1 root root  261 Oct 23 04:15  gitlab-healthcheck
-rwxr-xr-x 1 root root  261 Oct 23 04:15 'gitlab-healthcheck;67250373'
-rwxr-xr-x 1 root root  702 Oct 23 04:15  gitlab-psql
-rwxr-xr-x 1 root root  702 Oct 23 04:15 'gitlab-psql;67250373'
-rwxr-xr-x 1 root root 1450 Oct 23 04:15  gitlab-rails
-rwxr-xr-x 1 root root 1450 Oct 23 04:15 'gitlab-rails;67250373'
-rwxr-xr-x 1 root root 1449 Oct 23 04:15  gitlab-rake
-rwxr-xr-x 1 root root 1449 Oct 23 04:15 'gitlab-rake;67250373'
-rwxr-xr-x 1 root root 1311 Oct 23 04:15  gitlab-redis-cli
-rwxr-xr-x 1 root root 1311 Oct 23 04:15 'gitlab-redis-cli;67250373'
-rwxr-xr-x 1 root root 1449 Oct 23 04:15  gitlab-ruby
-rwxr-xr-x 1 root root 1449 Oct 23 04:15 'gitlab-ruby;67250373'

备份的文件存储于默认备份目录

# gitlab_backup_cli['dir'] = '/var/opt/gitlab/backups'

0x02. 配置备份

默认的备份目录是在 /var 下,如果有多块硬盘可以按需修改为自定义路径

这里直接贴一下内部的配置文件关于备份的配置项的修改示例,暂时就不在自己的环境中演示了

1. 修改配置文件 /etc/gitlab/gitlab.rb
  • 更改前
代码语言:txt
复制
# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# gitlab_rails['backup_keep_time'] = 604800
  • 更改后
代码语言:txt
复制
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/home/gitlab/backups"
gitlab_rails['backup_keep_time'] = 2592000

可以看出是放到了 /home 下且保留 7 天

2. 运行 gitlab-ctl reconfigure

0x03. 通过 crontab 定时备份

参考官方文档:https://docs.gitlab.com/ee/administration/backup_restore/backup_gitlab.html#configuring-cron-to-make-daily-backups

在 crontab 里调用 gitlab-backup create 就可以了

0x04. Auto GitLab Backup 工具

众所周知,备份还是得异地备份。逻辑上无非是生成备份文件后,rsync 到另一台服务器上,可以人工写 shell 实现

这里是一直使用了一个开源工具:https://github.com/sund/auto-gitlab-backup

虽然已经很久不维护了,但是实测至少针对 GitLab 11.4.X 版本是正常可用的

1. 配置备份信息

这里还是直接贴一下生成环境实际的修改示例,主要是配置了远端备份服务器的访问信息和备份路径等

代码语言:txt
复制
remoteUser="root"
remoteServer="<rm>"
sshKeyPath=""
remoteDest="/data/gitlab-bak"
backupConfigs="0"
quietRake=0
b2blaze=0
b2Bucketname=""
b2keepDays="5"
remoteConfDest=""
remotePort=22
gitHome="/var/opt/gitlab"
RVM_envPath=""
remoteModule=""
rsync_password_file=""
gitRakeBackups="/home/gitlab/backups"
gitRakeCIBackups="/home/gitlab/ci-backups"
localConfig="/etc/gitlab"
localsshkeys="/var/opt/gitlab/.ssh"
checkQuota="0"

2. 新增 cron 任务

参考命令如下

代码语言:txt
复制
5 5 * * * /usr/local/sbin/auto-gitlab-backup/auto-gitlab-backup.sh

通过此工具备份就不用上面 0x03. 中的那条官方备份的 cron 命令了

这样每天 5 时 5 分就会执行 auto-gitlab-backup.sh 脚本,先在本机生成备份档,然后 rsync 到远端备份服务器上

部署本工具之后,需要次日在远端备份服务器上看一下指定路径下有无备份档,如果存在的话就说明整个流程都跑通了

0x04.后记

这篇文章基本上算是把内部实际使用备份方法介绍完毕了,下一篇文章计划介绍生产环境跨 6 个大版本的真实升级经历

也欢迎购买轻量机进行尝试,双十一拼团有优惠:https://cloud.tencent.com/act/pro/double11-2024?fromSource=gwzcw.8891816.8891816.8891816

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00. 前言
  • 0x01. 生成备份
  • 0x02. 配置备份
    • 1. 修改配置文件 /etc/gitlab/gitlab.rb
      • 2. 运行 gitlab-ctl reconfigure
      • 0x03. 通过 crontab 定时备份
      • 0x04. Auto GitLab Backup 工具
        • 1. 配置备份信息
          • 2. 新增 cron 任务
          • 0x04.后记
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档