Gitlab---版本升级与项目迁移

Gitlab版本升级

1. gitlab升级

由于本人目前环境为公司内网环境,所以安装gitlab的方式选择了rpm包方式安装

官方网站: https://about.gitlab.com/install/.

由于要从老版本的gitlab上迁移项目到新版本gitlab上,在项目导入时由于版本跨度太大导致报错,如下图所示:
Gitlab---版本升级与项目迁移
于是,需要对老版本的gitlab进行版本升级,老版本为10.5.7,需升级到13.2.6.

查看gitlab版本信息
cat /opt/gitlab/embedeed/service/gitlab-rails/VERSION

通过官网查询,升级需要进行逐步升级,不能做到一步到位,如果冒然直接进行最新版本升级,可能会导致gitlab无法正常使用。

官网给出的升级路径如下:
Gitlab---版本升级与项目迁移
具体操作

官方文档:https://docs.gitlab.com/ee/update/.
首先,需要进行备份,默认的备份目录为/var/opt/gitlab/backups
也可以通过修改配置文件/etc/gitlab/gitlab.rb自定义备份位置

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

修改后,需要使配置文件重新生效

gitlab-ctl reconfigure

之后,进行备份。

停止相关数据连接服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx

备份

gitlab-rake gitlab:backup:create STRATEGY=production

恢复(补充)

gitlab-rake gitlab:backup:restore BACKUP=1543319921_2018_11_27_11.5.0-ee

升级

rpm -ivh gitlab的rpm包

然后重启gitlab连接服务

gitlab-ctl restart

检查gitlab状态

gitlab-ctl status

Gitlab---版本升级与项目迁移
检查没有问题后,通过浏览器进行gitlab访问,全部完成后再进行新版本更新,步骤如上。

2. 邮箱验证

由于gitlab 13.2的版本启用了邮箱验证功能,所以在我更新完老版本的gitlab后发现使用管理员账号登录不上去了,页面显示账户需要进行邮箱验证。而本人所在公司gitlab全部部署在内网环境中,所以无法进行smtp邮箱验证,最终通过官方文档解决了问题。

官方文档:linkhttps://docs.gitlab.com/ee/user/upgrade_email_bypass.html.

具体操作

进入gitlab控制台gitlab-rails console -e production

运行以下命令:

admin = User.find_by_username "root" # replace with your admin username
admin.confirmed_at = Time.zone.now
admin.save!

如果您是管理员并且想要强制确认系统上的所有用户,请使用Rails 控制台会话登录到您的 GitLab 实例。连接后,运行以下命令以确认所有用户帐户:

User.where('LENGTH(confirmation_token) = 32').where(confirmed_at: nil).find_each { |u| u.confirmed_at = Time.now; u.save }

使用浏览器进行登录,发现已经需要认证了,成功登录。

3. 密码初始化

控制台同样可以进行gitlab账户密码初始化

user = User.where(id: 1).first  #定位到id=1的用户,就是超级管理员

#还可以使用User.find_by(email: ‘xxx’)来查找指定邮箱的用户

u.password='12345678' #设置密码为12345678(密码自定义)

u.password_confirmation='12345678' #再次确认密码

u.save!  #进行保存

成功后,屏显true,显示成功。

上一篇:javascript笔记整理(数组对象)


下一篇:java 并发相关(5) - 线程池ThreadPoolExecutor