Gitlab备份与恢复


目标 :

= 备份Gitlab相关的配置文件

= 备份Gitlab中的程序代码{ 代码仓库(项目 ),用户 ,用户组 ,密钥 }

备份配置

备份 /etc/gitlab下面的所有文件即可
重要的数据都是保存在pgsql里面

备份代码数据

#修改之后的gitlab.rb
    ## 默认开启
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天


#### 手动备份 /etc/gitlab/gitlab.rb
### 实战备份 gitlab-backup
gitlab-backup 或者 gitlab-backup create

备份文件存储在:
/var/opt/gitlab/backups/

image-20241018142533127

image-20241018142907835


恢复

1 .  停止写入类服务
gitlab-ctl    stop    unicorn
gitlab-ctl    stop    sidekiq


2 .  gitlab-backup恢复  (不需要加tar)
gitlab-backup  restore  BACKUP=1729220556_2024_10_18_17.4.2

image-20241018143624274

Gitlab-ce数据还原时发生PostgreSQL异常 ### 解决与否都不影响操作
$ vim /var/opt/gitlab/postgresql/data/postgresql.conf
listen_addresses = '*'

# 以下配置文件新增以下两行
$ vim /var/opt/gitlab/postgresql/data/pg_hba.conf
 local   all         all                               trust
 
 重启gitlab服务
gitlab-ctl restart
# 修改gitlab账号为超级用户
$ su - gitlab-psql
 
$ /opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
 
gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
 
ALTER ROLE
 
gitlabhq_production=# \q
 
$ exit

Gitlab的数据迁移

将备份文件
/etc/gitlab/gitlab.rb  与 备份文件 一起打包发到 迁移机器  恢复即可  。。。

修改 备份文件为 git用户
需要启动恢复  连接pgsql数据库   ## 或者单独启动pgsql
### 实战
1.先备份
gitlab-backup

[root@li backups]#ll
-rw-------  1 git  git  583680 10月 18 14:58 1729234726_2024_10_18_17.4.2_gitlab_backup.tar

2. 迁移机器安装 gitlab 省略
gitlab-ctl reconfigure
	安装好后 传递 加权限 
chmod 777 1729234726_2024_10_18_17.4.2_gitlab_backup.tar 
	停止一些写入服务
gitlab-ctl stop nginx && gitlab-ctl  stop puma && gitlab-ctl  stop unicorn && gitlab-ctl stop sidekiq
	进行恢复  
gitlab-backup restore BACKUP=1729234726_2024_10_18_17.4.2

3. 迁移数据库认证文件
[root@li backups]#scp /etc/gitlab/gitlab-secrets.json 10.0.0.102:/etc/gitlab/gitlab-secrets.json

4. 启动测试
gitlab-ctl restart

image-20241018213956704


Gitlab的升级

## 升级指南   https://docs.gitlab.com/ee/update/plan_your_upgrade.html