Gitlab版本升级
1. gitlab升级
由于本人目前环境为公司内网环境,所以安装gitlab的方式选择了rpm包方式安装
官方网站: https://about.gitlab.com/install/.
由于要从老版本的gitlab上迁移项目到新版本gitlab上,在项目导入时由于版本跨度太大导致报错,如下图所示:
于是,需要对老版本的gitlab进行版本升级,老版本为10.5.7,需升级到13.2.6.
查看gitlab版本信息
cat /opt/gitlab/embedeed/service/gitlab-rails/VERSION
通过官网查询,升级需要进行逐步升级,不能做到一步到位,如果冒然直接进行最新版本升级,可能会导致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访问,全部完成后再进行新版本更新,步骤如上。
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,显示成功。