本地部署的GitLab升级指南

gitLab 升级版本路线

gitlab 不支持大版本之间直接升级,需要升级到当前版本的最新版本,然后再升级下一个版本。

官方升级路线说明获取地址:https://docs.gitlab.com/ee/update/index.html#upgrade-paths

版本升级包下载,清华大学开源软件镜像站

清华大学镜像站:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/

gitlab-ces代表社区版。

升级前检查

1
sudo gitlab-rake gitlab:check

出现任何错误参考官方解决办法:Create a GitLab upgrade plan | GitLab

开始升级操作

1
2
3
4
5
6
7
#升级每个包都必须使用相同的步骤。
1. sudo gitlab-ctl reconfigure
#这一步执行无错再向下进行。
2. sudo yum -y install gitlab-ce-xx.x.x-ce.0.el7.x86_64.rpm
#升级到最后一个包后,还要运行一次
3. sudo gitlab-ctl reconfigure
4. sudo gitlab-ctl restart

升级中可能遇到的错误。

  1. 运行gitlab-ctl reconfigure时错误:
    rails_migration[gitlab-rails] (gitlab::database_migrations line 51) had an error: Mixlib::ShellOut::ShellCommandFailed: bash[migrate gitlab-rails database ] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/resources/rails_migration.rb line 16) had an error: Mixlib::ShellOut::ShellCommandFailed: Command execution failed. STDOUT/STDERR suppressed for sensitive resource

    处理办法:执行 下列命令

    • sudo gitlab-rake db:migrate
    • sudo gitlab-rake gitlab:background_migrations:finalize[ProjectNamespaces::BackfillProjectNamespaces,projects,id,'[null\,"up"]']
    • 再次执行sudo gitlab-ctl reconfigure
  2. 升级时RuntimeError: gitlab_rails['smtp_tls'] and gitlab_rails['smtp_enable_starttls_auto'] are mutually exclusive错误。

    错误原因是:在配置文件/etc/gitlab/gitlab.rb中,同时配置了smtp_tlssmtp_enable_starttls_autotrue,把其中一个设置为false就行了。具体哪一个设置为false,就要看你的smtp供应商提供的是什么加密协议。

  3. 数据库版本错误

    报错:Retry the upgrade after upgrading your PostgreSQL version.

    原因: 从GitLab15版开始,PostgreSQL需要使用13以上版本。正常情况安装升级包时,会自动升级PostgreSQL版本。一些莫名原因造成升级失败,手动升级即可。

    处理办法:

    1
    2
    3
    4
    #升级PostgreSQL默认升级到最新,可使用-V指定版本。
    sudo gitlab-ctl pg-upgrade
    #查询当前版本号。
    sudo gitlab-psql select --version

PostgreSQL相关操作说明:https://docs.gitlab.com/omnibus/settings/database.html#gitlab-160-and-later


本地部署的GitLab升级指南
http://anximin.github.io/2023/06/20/git_GitLab_update/
作者
Sylar
发布于
2023年6月20日
许可协议