转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/web/541.html
本次安装的是gitlab社区版gitlab-ce,系统用的是centos7.9, 以下是安装步骤:
yum install policycoreutils openssh-server openssh-clients postfix
systemctl enable sshd
systemctl start sshd
systemctl enable postfix
systemctl start postfix
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.1.1-ce.0.el7.x86_64.rpm
清华源镜像gitlab的rpm包下载地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
# 安装rpm包
rpm -ivh gitlab-ce-16.1.1-ce.0.el7.x86_64.rpm
gitlab的升级需要按版本顺序升级,不可跨版本升级。升级路径可参考官方文档:
https://docs.gitlab.com/ee/update/index.html#upgrade-paths
也可以使用Upgrade Path
这个小工具来获取升级版本路径:
https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/
可以直接安装新版本完成升级(需按版本路径升级)
yum install gitlab-ce-16.1.1
1. 手动备份
使用命令会在/var/opt/gitlab/backups
目录下创建一个压缩包
这个压缩包就是Gitlab整个的完整部分。
gitlab-rake gitlab:backup:create
扩展知识
/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cf postfix邮件配置备份
2、更改Gitlab备份目录
gitlab默认的备份目录可能分区比较小,导致分区空间占满,此时我们可以通过修改/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
gitlab_rails['backup_path'] = "/home/gitlab-backup"
指定备份后数据存放的路径、权限、时间配置
gitlab_rails['manage_backup_path'] = true // 开启备份功能
gitlab_rails['backup_path'] = "/home/gitlab-backup"// 指定备份的路径
gitlab_rails'['backup_archive_permissions'] = 0644 // 备份文件的权限
gitlab_rails['backup_keep_time'] = 7776000 // 备份保留时间
3、 重新加载配置文件
gitlab-ctl reconfigure
4、crontab定时任务备份
注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出
# 实现每天凌晨2点进行一次自动备份
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
5、恢复备份
注意版本需要和备份文件的版本一致
在开始执行恢复之前需要先对PostgreSQL做一些配置,否则在执行恢复的时候可能会出现类似下面的异常报错。
Restoring PostgreSQL database gitlabhq_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
/var/opt/gitlab/postgresql/data/postgresql.conf
,找到属性listen_addresses
,修改为:listen_addresses = "*"
/var/opt/gitlab/postgresql/data/pg_hba.conf
,在文件最后添加内容:local all all trust
host all all 127.0.0.1/32 trust
gitlab-ctl restart
# su - gitlab-psql
$ /opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
psql (13.6)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
ALTER ROLE
gitlabhq_production=# \q
$ exit
#
上面终端内容的大意大致如下:
su - gitlab-psql
,切换成用户gitlab-psql。/opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
, 打开gitlabhq_production数据库。执行该命令后会打印相应信息并且提示符变成gitlabhq_production=#。ALTER USER gitlab WITH SUPERUSER;
,把用户gitlab修改为超级用户。\q
,退出SQL。exit
,退出gitlab-psql用户。开始备份
把前面备份的tar文件拷贝到/var/opt/gitlab/backups/
;以及把gitlab-secrets.json
以及gitlab.rb
拷贝到/etc/gitlab
,并确保这些文件的权限。
mv /tmp/1673231242_2023_01_09_15.5.4_gitlab_backup.tar /var/opt/gitlab/backups/
chown git:git /var/opt/gitlab/backups/1673231242_2023_01_09_15.5.4_gitlab_backup.tar
chmod g-rwx,o-rwx /var/opt/gitlab/backups/1673231242_2023_01_09_15.5.4_gitlab_backup.tar
mv /tmp/gitlab.rb /tmp/gitlab-secrets.json /etc/gitlab/
chown root:root /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab.rb
chmod g-rwx,o-rwx /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab.rb
停掉unicorn和sidekiq。
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
执行恢复
gitlab-backup restore force=yes
# 如果/var/opt/gitlab/backups/下有多个备份文件,可以执行下面命令指定恢复的目标
gitlab-backup restore force=yes BACKUP=1673231242_2023_01_09_15.5.4
重新生成配置文件并检查
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
自检出现报错这可能是因为重启Gitlab后,部分服务还没完全启动以至于自检出现报错,稍等一会再重新执行自检可能就会顺利通过。
数据恢复的流程至此结束。
清华源
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
csdn
https://blog.csdn.net/Marcelo59/article/details/129414334
转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/web/541.html
最近更新:更新到v2.5.7
请求中为数字/布尔的字段要多加注意,...
基于emlog开发的微信小程序
仿小米论坛版本更新V2.0,本次暂时...
element-ui el-tabl...
@子恒:😂躺平吧,世界都跟你没关系
你写得非常清晰明了,让我很容易理解你的观...
#Emlog插件RSS订阅器发布#
一直到今天,还没10天,我支付宝里仅剩7...
@樊鑫:不支持,仅支持pro版本,可以在...
#Beginning-Pro发布,Emlog-Pro + Beginning-Pro, 更Pro#
支持5.3吗?在哪里购买/下载?
#Beginning-Pro发布,Emlog-Pro + Beginning-Pro, 更Pro#
@叽叽:开源了的,https://git...
#vue.js组件之手写签名板vue-signature-simple#