gitlab升级、备份、恢复
-
彻底删除旧版本
1、停止gitlab
gitlab-ctl stop
2、卸载gitlab(注意这里写的是gitlab-ce)
rpm -e gitlab-ce
3、查看gitlab进程
ps aux | grep gitlab
4、杀掉第一个进程(就是带有好多.............的进程)
kill -9 18777
杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程
5、删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf
-
安装
1、通过yum(在线/离线)或rpm都可以安装:
yum install gitlab.el7.13.10.3.rpm #本地文件安装
2、修改配置:
数据文件位置:git_data_dirs({ "default" => { "path" => "/data/gitlab/git-data" } })
备份文件位置:gitlab_rails['backup_path'] = "/data/gitlab/backups"
是否激活内置nginx,默认为true:nginx['enable'] = false
3、重新配置,并重启一下:
gitlab-ctl reconfigure
gitlab-ctl restart
如果在配置过程中卡住,比如卡在:wait for redis service socket,新开终端执行:/opt/gitlab/embedded/bin/runsvdir-start
3、首次打开首页会要求设置root口令
-
备份
1、非常简单,执行:
gitlab-rake gitlab:backup:create
2、单独备份/etc/gitlab下的gitlab.rb和gitlab-secrets.json文件
-
恢复
1、确保备份文件在备份文件夹内,备份文件版本要与安装版本一致
2、确保gitlab账号在pg库中为超级用户
gitlab-psql #进入pg数据库客户端
SELECT rolname,rolsuper FROM pg_roles WHERE rolname='gitlab'; #执行查询,如果rolsuper为t则ok,否则需要执行:
ALTER USER gitlab WITH SUPERUSER;
3、停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
4、恢复,BACKUP参数为时间戳,备份文件名不带 _gitlab_backup.tar 字符串
gitlab-rake gitlab:backup:restore BACKUP=1659688520_2022_08_05_14.10.5
5、恢复gitlab-secrets.json文件到/etc/gitlab目录。该文件含有敏感信息,未被备份到备份包中,需要单独备份
-
存储迁移
1、正常的存储迁移命令:
gitlab-rake gitlab:storage:migrate_to_hashed #执行后如果有类似Enqueuing migration of 41 projects in batches of 200. Done!的提示,则说明有些项目没有迁移成功
2、readonly的项目会导致存储迁移进入background migration状态,需要进入数据库修改项目为非只读模式:
gitlab-psql #进入pg库客户端
update projects set repository_read_only = 'f'; #执行修改sql,将所有项目设置为非只读
3、几个命令:
gitlab-rake gitlab:storage:hashed_projects #查看hash存储项目总数
gitlab-rake gitlab:storage:list_legacy_projects #查看传统存储项目情况
gitlab-rake gitlab:storage:list_legacy_attachments #查看传统存储项目附件
-
background migrations
有background migrations 任务的情况下是不能直接升级到14.2及以后版本。需要先在管理员菜单中的监控-后台迁移界面中确认没有队列中的任务。如果有,可以先升级到14.1.x,再看是否完成后台迁移任务。
-
升级
1、不能跨大版本升级,顺序只能是升级到大版本的最高小版本,再升级到下一个大版本的最低小版本,升级路径:11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.0 -> 14.0.5 -> 14.2.0->latest 14.Y.Z
2、14起不再支持传统存储的项目,13 版默认启用了hash存储,软件内部会自动做数据迁移,从传统存储转至hash存储。因此必须在13的时候做存储迁移。同时,14.2不支持background migration状态下的项目,必须彻底解决存储迁移问题再向上升
标签:存储,rake,gitlab,v2.0,备份文件,升级,迁移 From: https://www.cnblogs.com/badwood316/p/16724723.html