未标题-1_画板 1.png

0x00 环境要求

  1. 在Mac、Linux或任意安装了Ruby、Git环境的机器,或者使用Docker部署Ruby容器
  2. 工具仓库地址:

https://gitlab.furry.top/FantWings/gitlab_enterprise_licenser

0x01 拉取代码

上执行下面的命令:

git clone http://gitlab.furry.top/FantWings/gitlab_enterprise_licenser.git

0x02 运行算法工具

cd gitlab_enterprise_licenser

gem install gitlab-license

ruby license.rb

0x03 替换文件

如果你的GitLab已激活试用版,请先移除试用版密钥!否则将引发502错误。

工具会在当前目录生成两个文件:

  • license_key.pub(公钥)
  • license_key(私钥,一般不会用到)
  • GitLabBV.gitlab-license(激活密钥)

我们需要用license_key.pub公钥文件替换掉GitLab原本的
/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub(注意,这个文件是隐藏的)

重新启动GitLab,登录管理员账户,将GitLabBV.gitlab-license文件内容输入到https://<gitlab>/admin/license页面下完成激活。

0x04 修改GitLab许可证等级

打开/opt/gitlab/embedded/service/gitlab-rails/ee/app/models/license.rb文件并定位到下列代码行

  end

  def plan
    restricted_attr(:plan).presence || STARTER_PLAN
  end

  def edition

将 STARTER_PLAN 替换为 ULTIMATE_PLAN (全大写)

许可证等级:

  • STARTER = 初始版/青铜
  • PREMIUM = 白金版/白银/
  • ULTIMATE = 旗舰版/黄金

0x05 Docker容器设置永久性保存

如果你在使用GitLab官方镜像,运行在Docker上的GitLab一旦更新,上述文件将会被覆盖,我们需要将其设置永久储存来防止丢失。

Docker中使用-v 宿主机路径:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub参数设置,另外一个文件同理。

参考文献