Centos7 搭建 Gitlab、备份、升级、迁移、高可用(二)

一:备份与恢复:

1.1:备份

      在gitlab运行时,执行命令gitlab-rake gitlab:backup:create即可备份,效果如下

#执行命令  gitlab-rake gitlab:backup:create  ,进行备份
[root@gitlab1 ~]# gitlab-rake gitlab:backup:create
2020-08-17 10:26:27 +0800 -- Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... [DONE]
2020-08-17 10:26:30 +0800 -- done
2020-08-17 10:26:30 +0800 -- Dumping repositories ...
 * whatever/whatfuckprojet (@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b) ... [DONE]
[SKIPPED] Wiki
 * whatever/whatafuckingprojcet (@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35) ... [DONE]
[SKIPPED] Wiki
2020-08-17 10:26:31 +0800 -- done
2020-08-17 10:26:31 +0800 -- Dumping uploads ... 
2020-08-17 10:26:31 +0800 -- done
2020-08-17 10:26:31 +0800 -- Dumping builds ... 
2020-08-17 10:26:31 +0800 -- done
2020-08-17 10:26:31 +0800 -- Dumping artifacts ... 
2020-08-17 10:26:31 +0800 -- done
2020-08-17 10:26:31 +0800 -- Dumping pages ... 
2020-08-17 10:26:31 +0800 -- done
2020-08-17 10:26:31 +0800 -- Dumping lfs objects ... 
2020-08-17 10:26:31 +0800 -- done
2020-08-17 10:26:31 +0800 -- Dumping container registry images ... 
2020-08-17 10:26:31 +0800 -- [DISABLED]
Creating backup archive: 1597631191_2020_08_17_13.1.6_gitlab_backup.tar ... done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done
done
done
done
done
done
done
done
Deleting old backups ... skipping
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
Backup task is done.

      备份过程中,会提示“warning Your gitlab.rb and gitlab-secrets.json”。这意味着gitlab没有帮我们备份这些配置文件,需要我们自己手动备份。

      我的理解:如果这些配置文件没有重大变更的话,可以不必频繁备份。

      备份后,会产生一个形如(1597375837_2020_08_14_13.0.12_gitlab_backup.tar)的 备份文件

  /etc/gitlab/gitlab.rb 文件中,关于备份的常用属性解释

  gitlab_rails['backup_path']属性。用于设置备份文件的存放位置。修改后,需要执行gitlab-ctl reconfigure 刷新配置。

  gitlab_rails['backup_keep_time']属性。用于设置备份文件过期时间,这里的时间以秒计算

  gitlab_rails['backup_multipart_chunk_size']属性。用于设置备份文件拆分后,每个子文件大小。

  gitlab_rails['backup_encryption']属性,用于设置备份文件的加密方式。

 

1.2:恢复

#为进行恢复的数据源赋予可执行权限
[root@gitlab1 backups]# chmod 755 /var/opt/gitlab/backups/1597375837_2020_08_14_13.0.12_gitlab_backup.tar

#停止gitlab的数据写入服务,但git本身依然在运行。第一个是托管服务,第二个是任务队列
[root@gitlab1 backups]# gitlab-ctl stop unicorn
[root@gitlab1 backups]# gitlab-ctl stop sidekiq


#执行命令,进行恢复。这里“BACKUP”的值,就是备份数据源tar包的前半部分名称
[root@gitlab1 backups]# gitlab-rake gitlab:backup:restore BACKUP=1597375837_2020_08_14_13.0.12 

      恢复过程的内容较多,不在此进行展示。需要注意的是,在恢复过程中会有各种提示,然后需要我们两次确认(输入yes即可)。如果一切正常,就会成功恢复到备份的数据源的状态。然后再次重启服务即可(执行命令gitlab-ctl start)

二:升级

      2.1:同版本内部升级

      比如从13.0.12升级到13.1.6。这种情况下不需考虑太多,直接升级就好了,操作如下所示

#第一步,下载期望版本的安装包,下载地址见我的上一篇

#第二步,停止所有gitlab服务。如下所示
[root@gitlab1 backups]# gitlab-ctl stop
#或者像恢复操作一样,停止队列服务和托管等服务即可,如下所示
[root@gitlab1 backups]# gitlab-ctl stop unicorn
[root@gitlab1 backups]# gitlab-ctl stop sidekiq
[root@gitlab1 backups]# gitlab-ctl stop nginx

#第三步,升级
[root@gitlab1 backups]# rpm -Uvh gitlab-ce-13.1.6-ce.0.el7.x86_64.rpm

#第四步,刷新配置,重启服务
[root@gitlab1 backups]# gitlab-ctl reconfigure
[root@gitlab1 backups]# gitlab-ctl restart postgresql
[root@gitlab1 backups]# gitlab-ctl start

      2.2:跨版本升级

      跨版本升级,特别是跨了多个版本的情况下(如,从10.1.3升到13.1.6)

      最稳妥的方式,就是是逐个大版本升级。比如先从10升到11,再升到12、13这样。

      推荐大家在升级到每个大版本后,都启动一次验证一下能否正常使用。

      其他的操作与同版本内部升级完全一致,在此不再赘述。

三:迁移

3.1:在同版本的不同服务器间迁移

      相同版本间的迁移,就相当于一次异地恢复操作。

      需要注意的就是异地服务器中配置文件的备份,具体操作步骤这里不再具体举例详述了。

3.2:向高版本迁移

      其实就是一次升级操作。假设我们为迁移源和迁移目标服务器分别命名为A和B

      我们可以在停止A服务器的服务之后,先将A升级到目标版本,再将升级后的A做备份

      最后我们将A的最新高版本备份复制到B服务器,以A的最新备份对B服务器做恢复即可完成迁移。

四:需要注意的地方

      在恢复和升级‘迁移中,最可能遇到的问题就是操作完毕不能启动。

      为了避免这种情况,我们一定要在操作前,做好各种备份!!!包括配置文件的备份。这点很重要!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值