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/
恢复
1 . 停止写入类服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2 . gitlab-backup恢复 (不需要加tar)
gitlab-backup restore BACKUP=1729220556_2024_10_18_17.4.2
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
Gitlab的升级
## 升级指南 https://docs.gitlab.com/ee/update/plan_your_upgrade.html