首页 编程开发centos使用yum安装gitlab以及备份恢复命令

centos使用yum安装gitlab以及备份恢复命令

发布于: 2023-07-05 09:38:00
字数: 3848
评论: 0
阅读: 752

一、安装

本次安装的是 git lab社区版 git lab-ce,系统用的是centos7.9, 以下是安装步骤:

  1. 安装 git lab所需依赖
yum install policycoreutils openssh-server openssh-clients postfix
systemctl enable sshd
systemctl start sshd
systemctl enable postfix
systemctl start postfix
  1. 使用wget下载 git lab-ce安装包
wget https://mirrors.tuna.tsinghua.edu.cn/ git lab-ce/yum/el7/ git lab-ce-16.1.1-ce.0.el7.x86_64.rpm

清华源镜像 git lab的rpm包下载地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

  1. 安装rpm包
# 安装rpm包
rpm -ivh  git lab-ce-16.1.1-ce.0.el7.x86_64.rpm

二、升级

git lab的升级需要按版本顺序升级,不可跨版本升级。升级路径可参考官方文档:
https://docs.gitlab.com/ee/update/index.html#upgrade-paths

也可以使用Upgrade Path这个小工具来获取升级版本路径:
https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/

可以直接安装新版本完成升级(需按版本路径升级)

yum install  git lab-ce-16.1.1

三、 常用命令

1. 手动备份
使用命令会在/var/opt/ git lab/backups目录下创建一个压缩包
这个压缩包就是 git lab整个的完整部分。

 git lab-rake  git lab:backup:create

扩展知识
/etc/ git lab/ git lab.rb 配置文件须备份
/var/opt/ git lab/nginx/conf nginx配置文件
/etc/postfix/main.cf postfix邮件配置备份

2、更改 git lab备份目录
git lab默认的备份目录可能分区比较小,导致分区空间占满,此时我们可以通过修改/etc/ git lab/ git lab.rb配置文件来修改默认存放备份文件的目录

 git lab_rails['backup_path'] = "/home/ git lab-backup"

指定备份后数据存放的路径、权限、时间配置

 git lab_rails['manage_backup_path'] = true // 开启备份功能
 git lab_rails['backup_path'] = "/home/ git lab-backup"// 指定备份的路径
 git lab_rails'['backup_archive_permissions'] = 0644 // 备份文件的权限
 git lab_rails['backup_keep_time'] = 7776000 // 备份保留时间

3、 重新加载配置文件

 git lab-ctl reconfigure

4、crontab定时任务备份
注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出

# 实现每天凌晨2点进行一次自动备份
0 2 * * * /opt/ git lab/bin/ git lab-rake  git lab:backup:create CRON=1

5、恢复备份
注意版本需要和备份文件的版本一致
在开始执行恢复之前需要先对PostgreSQL做一些配置,否则在执行恢复的时候可能会出现类似下面的异常报错。

Restoring PostgreSQL database git labhq_production ... ERROR: must be owner of extension pg_trgm
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension pg_trgm

  1. 修改/var/opt/ git lab/postgresql/data/postgresql.conf,找到属性listen_addresses,修改为:
listen_addresses = "*"
  1. 修改/var/opt/ git lab/postgresql/data/pg_hba.conf,在文件最后添加内容:
local   all         all                               trust
host    all         all                               127.0.0.1/32 trust
  1. 重启服务
 git lab-ctl restart
  1. git lab设置为超级用户
# su -  git lab-psql
$ /opt/ git lab/embedded/bin/psql -h 127.0.0.1  git labhq_production
psql (13.6)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

 git labhq_production=# ALTER USER  git lab WITH SUPERUSER;
ALTER ROLE
 git labhq_production=# \q
$ exit
#

上面终端内容的大意大致如下:

  • su - git lab-psql,切换成用户 git lab-psql。
  • /opt/ git lab/embedded/bin/psql -h 127.0.0.1 git labhq_production, 打开 git labhq_production数据库。执行该命令后会打印相应信息并且提示符变成 git labhq_production=#。
  • ALTER USER git lab WITH SUPERUSER;,把用户 git lab修改为超级用户。
  • \q,退出SQL。
  • exit,退出 git lab-psql用户。

开始备份
把前面备份的tar文件拷贝到/var/opt/ git lab/backups/;以及把 git lab-secrets.json以及 git lab.rb拷贝到/etc/ git lab,并确保这些文件的权限。

mv /tmp/1673231242_2023_01_09_15.5.4_ git lab_backup.tar /var/opt/ git lab/backups/
chown  git : git  /var/opt/ git lab/backups/1673231242_2023_01_09_15.5.4_ git lab_backup.tar
chmod g-rwx,o-rwx /var/opt/ git lab/backups/1673231242_2023_01_09_15.5.4_ git lab_backup.tar

mv /tmp/ git lab.rb /tmp/ git lab-secrets.json /etc/ git lab/
chown root:root /etc/ git lab/ git lab-secrets.json /etc/ git lab/ git lab.rb
chmod g-rwx,o-rwx /etc/ git lab/ git lab-secrets.json /etc/ git lab/ git lab.rb

停掉unicorn和sidekiq。

 git lab-ctl stop unicorn
 git lab-ctl stop sidekiq

执行恢复

 git lab-backup restore force=yes
# 如果/var/opt/ git lab/backups/下有多个备份文件,可以执行下面命令指定恢复的目标
 git lab-backup restore force=yes BACKUP=1673231242_2023_01_09_15.5.4

重新生成配置文件并检查

 git lab-ctl reconfigure 
 git lab-ctl restart
 git lab-rake  git lab:check SANITIZE=true

自检出现报错这可能是因为重启 git lab后,部分服务还没完全启动以至于自检出现报错,稍等一会再重新执行自检可能就会顺利通过。
数据恢复的流程至此结束。

四、参考链接

清华源
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

csdn
https://blog.csdn.net/Marcelo59/article/details/129414334


扫描二维码,在手机上阅读