linkGitlab EE

Для генерации лицензии, нам потребуется ruby и gitlab-license:

1link$apt install ruby openssl

2link$gem install gitlab-license

Теперь создадим простенький скрипт license.rb для генерации при помощи gitlab-license самоподписанной лицензии:

license.rb
1linkrequire 'openssl'

2linkrequire 'gitlab/license'

3link

4linkkey_pair = OpenSSL::PKey::RSA.generate(2048)

5linkFile.open("license_key", "w") { |f| f.write(key_pair.to_pem) }

6linkpublic_key = key_pair.public_key

7linkFile.open("license_key.pub", "w") { |f| f.write(public_key.to_pem) }

8link

9linkprivate_key = OpenSSL::PKey::RSA.new File.read("license_key")

10linkGitlab::License.encryption_key = private_key

11link

12linklicense = Gitlab::License.new

13linklicense.licensee = {

14link "Name" => "admin",

15link "Company" => "acme",

16link "Email" => "admin@acme.com"

17link}

18linklicense.starts_at = Date.new(2022, 4, 7)

19linklicense.expires_at = Date.new(2032, 4, 7)

20linklicense.notify_admins_at = Date.new(2034, 3, 1)

21linklicense.notify_users_at = Date.new(2034, 3, 1)

22linklicense.block_changes_at = Date.new(2032, 4, 7)

23linklicense.restrictions = {

24link active_user_count: 200

25link}

26link

27linkdata = license.export

28link

29linkFile.open("GitLabBV.gitlab-license", "w") { |f| f.write(data) }

30link

31linkputs("Complete!")

Запустим его:

1link$ruby license.rb

В результате получатся следующие файлы:

  1. GitLabBV.gitlab-license - сам файл лицензии
  2. license_key - приватный ключ лицензии
  3. license_key.pub - публичный ключ лицензии

Заменить на серверах Gitlab публичный ключ сгенерированным:

1link$cp license_key.pub /opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub

Чуть поправим код Gitlab в файле /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/license.rb для изменения уровня лицензии.

Для этого в функции plan необходимо поменять STARTER_PLAN на ULTIMATE_PLAN:

/opt/gitlab/embedded/service/gitlab-rails/ee/app/models/license.rb
1link def plan

2link #restricted_attr(:plan).presence STARTER_PLAN

3link restricted_attr(:plan).presence ULTIMATE_PLAN

4link end

В случае если уже была установлена лицензия - её необходимо удалить из БД вручную.

Перезапустим Gitlab:

1link$gitlab-ctl reconfigure

2link$gitlab-ctl restart

Теперь сгенерированный ранее файл лицензии GitLabBV.gitlab-license можно добавить в Gitlab через веб-интерфейс по пути https://gitlab.local/admin/license/new

Gitlab EE

Home Gitlab EE Grafana E