gitlab升级v2.0

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状态下的项目,必须彻底解决存储迁移问题再向上升

posted @ 2022-09-23 23:58  badwood  阅读(242)  评论(0编辑  收藏  举报
Badwood's Blog