Gitlab 备份与恢复
目标:
备份Gitlab相关的配置文件
备份Gitlab中的程序代码(代码仓库(项目),用户,用户组,密钥.)
备份Gitlab服务的配置
/etc/gitlab目录下所有内容即可.
备份Gitlab里面的内容
#### 编辑Gitlab的配置文件
#修改之后的gitlab.rb
[root@devops-oldboy-gitlab /etc/gitlab]# cat
gitlab.rb
external_url 'http://gitlab.oldboylinux.cn'
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
#然后执行
gitlab-ctl reconfigure
gitlab-ctl restart
#配置文件 的backup部分
backup_
## Backup Settings gitlab备份设置
Docs: https://docs.gitlab.com/omnibus/settings/backups.html
gitlab_rails['manage_backup_path'] = true
#是否可以指定备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #备份目录
gitlab_rails['backup_archive_permissions'] = 0600
#备份的压缩包权限
gitlab_rails['backup_keep_time'] = 604800
#备份保留多久 7天
##gitlab备份 需要手动执行
#配置生效
gitlab-ctl reconfigure
gitlab-ctl restart
[root@gitlab ~]# ll /var/opt/gitlab/backups -d
手动备份
#GitLab 版本小于12.2
gitlab-backup create
#GitLab 版本大于12.1:
gitlab-rake gitlab:backup:create
⚠ ⚠ 对于gitlab.rb 和gitlab-secrets.json包含敏感信息,需要手动备份.
恢复
1. 停止写入类服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2. gitlab-rake恢复 (不需要加tar)
#新版本GitLab 版本12.2:
gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
#旧版本GitLab 版本12.1:
gitlab-rake gitlab:backup:restore BACKUP=备份文件
名字不包含右边内容_gitlab-backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1656036972_2022_06_24_12.0.9
Do you want to continue (yes/no)? yes 输入yes
3. 重启 gitlab
gitlab-ctl restart
书写gitlab备份脚本+定时任务
备份相关数据(根据gitlab版本选择不同的备份命令)
备份gitlab配置 ,给压缩包加上密码
自动备份脚本
#每天备份1次
#!/bin/bash
#1.备份gitlab数据
gitlab-backup create
#2.备份gitlab配置和密码文件
tar zcf /backup/gitlab/gitlab-conf-$(date +%F).tar.gz /etc/gitlab/
书写恢复脚本
运行的时候显示可以恢复到哪一天?
显示 /var/opt/gitlab/backups/下面内容
让用户进行选择恢复到哪一天的?输入日期2023_03_27
然后进行恢复.
需要遵循以下升级步骤以确保主版本升级成功:
1.升级至之前主要版本的最新次要版本。
2.升级到目标主要版本的第一个次要版本(X.0.Z)。
3.继续升级到较新的版本。