0x00 环境要求
- 在Mac、Linux或任意安装了Ruby、Git环境的机器,或者使用Docker部署Ruby容器
- 工具仓库地址:
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
参数设置,另外一个文件同理。