GitLab EE 企业版破解

在当今数字化时代,软件开发与团队协作已经成为现代企业不可或缺的一部分。而在这个过程中,版本控制、协作和持续集成等工具的运用变得至关重要。GitLab作为一个领先的、完整的DevOps平台,为团队提供了一个集成的解决方案,使得软件开发和交付变得更加高效、可靠。本文将介绍如何通过安装Docker和GitLab EE来搭建一个功能完善的代码托管平台,然后通过Ruby 获得企业授权License。

Ruby生成的 GitLabBV.gitlab-license license_key.pub 文件可以直接使用本站所提供的,可以直接省略掉通过Ruby创建证书License的步骤,直接替换即可,下载地址请到我的博客

直达地址:https://www.itwk.cc/post/1144.html

安装 Docker

bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sudo yum -y install docker-ce
systemctl enable --now docker

配置 Docker 镜像加速

bash 复制代码
{  
  "registry-mirrors": ["https://vwlrpbcp.mirror.aliyuncs.com"]  
} 

安装 GitLab EE

bash 复制代码
docker run -itd  \
 -p 80:80 \
 -p 443:443 \
 -p 2222:22 \
 -v /data/gitlab/log:/var/log/gitlab \
 -v /data/gitlab/opt:/var/opt/gitlab \
 -v /data/gitlab/etc:/etc/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ee

确认 GitLab EE 已经正常运行

bash 复制代码
docker ps -a

运行 Ruby

bash 复制代码
docker run -it --rm ruby /bin/bash

安装许可证工具

创建license.rb文件

bash 复制代码
cat >license.rb<<'EOF'
    require "openssl"
    require "gitlab/license"
    key_pair = OpenSSL::PKey::RSA.generate(2048)
    File.open("license_key", "w") { |f| f.write(key_pair.to_pem) }
    public_key = key_pair.public_key
    File.open("license_key.pub", "w") { |f| f.write(public_key.to_pem) }
    private_key = OpenSSL::PKey::RSA.new File.read("license_key")
    Gitlab::License.encryption_key = private_key
    license = Gitlab::License.new
    license.licensee = {
    "Name" => "gitlab",
    "Company" => "gitlab",
    "Email" => "admin@gitlab.com",
    }
    license.starts_at = Date.new(2024, 1, 1)
    license.expires_at = Date.new(2099, 1, 1)
    license.notify_admins_at = Date.new(2049, 12, 1)
    license.notify_users_at = Date.new(2049, 12, 1)
    license.block_changes_at = Date.new(2050, 1, 1)
    license.restrictions = {
    active_user_count: 10000,
    }
    puts "License:"
    puts license
    data = license.export
    puts "Exported license:"
    puts data
    File.open("GitLabBV.gitlab-license", "w") { |f| f.write(data) }
    public_key = OpenSSL::PKey::RSA.new File.read("license_key.pub")
    Gitlab::License.encryption_key = public_key
    data = File.read("GitLabBV.gitlab-license")
    $license = Gitlab::License.import(data)
    puts "Imported license:"
    puts $license
    unless $license
    raise "The license is invalid."
    end
    if $license.restricted?(:active_user_count)
    active_user_count = 10000
    if active_user_count > $license.restrictions[:active_user_count]
        raise "The active user count exceeds the allowed amount!"
    end
    end
    if $license.notify_admins?
    puts "The license is due to expire on #{$license.expires_at}."
    end
    if $license.notify_users?
    puts "The license is due to expire on #{$license.expires_at}."
    end
    module Gitlab
    class GitAccess
        def check(cmd, changes = nil)
        if $license.block_changes?
            return build_status_object(false, "License expired")
        end
        end
    end
    end
    puts "This instance of GitLab Enterprise Edition is licensed to:"
    $license.licensee.each do |key, value|
    puts "#{key}: #{value}"
    end
    if $license.expired?
    puts "The license expired on #{$license.expires_at}"
    elsif $license.will_expire?
    puts "The license will expire on #{$license.expires_at}"
    else
    puts "The license will never expire."
    end
EOF

生成证书

bash 复制代码
root@8f56c7c5621c:/# ruby license.rb
License:
#<Gitlab::License:0x00007fad2d4501c8>
Exported license:
eyJkYXRhIjoidnZoUTYwZCtHWFVpWmVTWE5ibytpR2dwV04yUG8vYTlIeXd4
MWJzNUxLZzhiWUs2SjlPcjROWmZ3QXRTXG5mWm1ENHA5NXo1QkJsazZGT2Zq
TTVNWDd1TnVFeHFIWVpVeXRNbkhmQzlZWmdScEJTQU9vK0NJbHdQVXhcbnQ4
cVdmQ3dBbUVDaitYOWFhbHh2bkp6SkNSK0hJTWdIL2N5SDVCbXUvRTVFUUF2
bXVJa3hlNzNlTy9MMVxuYVRNVnFIKzc4WjRidjljWGJrbmt4ZWE5S1Y0amI1
amtrRE9GbDhhZ09aWTNJVXczWXVMeDUyMW9kMS8wXG5xZitqb0w2Z21aQS9P
MnJzNDhvanVYWndVeUF3WWFLU1ZSU2tLK0V1SVZCWGttQStlNzF5YWJBalpS
eDJcbkVSdThyOVZUQUoyMk1uWndpakhIRWFUWENwRUxEbVArZkdzUkJURDcy
MnNkYktYQmRpekt4dncwZmhMd1xuYmtXdHZkQlRpZzVpbVRjT2hLR2VkOWtM
SmtzNFZJZ3N3NjNzdFhIK1N1Z0EyVEhFOG1EU0RlK3VBa3ZRXG5BTEVlRHFD
Z3hlbUdhNHRHY2ZEVlNqR0VjQWx1V01KTDYyelh6RWtHbDM1T0gweWpTWkp2
cEFoY2RIdlJcbndsdFpTVURpWVZqM0lWdHNLODA5dS9uVTkxcEJDbFdQdmlE
WEhhVkZraEQ4NU1zWlZsc1Vycld3NUthNlxuTXZ0L1BmUzNmbmxZWkVnbzh1
TTRHS05rdGxLSkRQV0xtU254MW5zSDJueTVNUWZZQmQzdXZHZW52dUc3XG5L
SlJkSDREeGVhK1k3a2Z3dlA0NVhSRTB6NC85dkRWVFBBOGFnSCtYVGxkWm9a
dWNMNU1yeDR0anQ0ZHJcbm5lSFpEU2RDQVRUQUp6NUw4NC9UbVl0TG1rSjNF
VDlVd1R5ODB1OWM0OU1sXG4iLCJrZXkiOiJWeWNoWUR3YUo5WjhxWWtEbitJ
akJaV2ZKbTlpdGZ0aUE2R1B4a3p1WG95Q2F3c3F4K0NCSVI5VHhRb21cbk8y
czQrN3R1K05JcGkvbEVub3JXSHVQaXh5Z0tJNFdkSTdwbGV0U21KZnFpbVJ5
QXYxcVBqUDZBcjVuZ1xuNEtvTG1OdDlsUU1SVjN0d3BFd3lXeHlkQlUwRVB1
MVAyZTQxcGZlRGZBbTNtc0dDQjRXTXZIcFZwTUdtXG5BREVHWEZkK0R4Ni9x
NzY3TXlqY1NFRkd3R1Z6UkxrSjlMb0JUSFZjcFdGaE9vb3VrSElPSHYvaDd5
cjlcbmovRUl6WVdOY3AzSWgzU3RXT253VTR5MUdxZlVyOVRSS2hFYjBseGp4
azR5VHNpZTNPWGl3a2JwcStZN1xuTnU2YkZsZWJua1htYUNFc0VuZ0Q4S3c4
dkdhcHFzTjZYNmZ0S2dCa0FnPT1cbiIsIml2IjoiYUxiazVWa21tRjFad0J1
eWd6eEQwQT09XG4ifQ==
Imported license:
#<Gitlab::License:0x00007fad2d3dd6f0>
This instance of GitLab Enterprise Edition is licensed to:
Name: gitlab
Company: gitlab
Email: admin@gitlab.com
The license will expire on 2099-01-01

然后会在当前目录下生成 GitLabBV.gitlab-license license_key license_key.pub三个文件。

将生成的 license_key.pub 文件复制到到 gitlab 容器中的/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub

bash 复制代码
 docker ps -a
CONTAINER ID   IMAGE              COMMAND             CREATED          STATUS                    PORTS                                                                                                             NAMES
8f56c7c5621c   ruby               "/bin/bash"         10 minutes ago   Up 10 minutes                                                                                                                               busy_bell
2042068f1d19   gitlab/gitlab-ee   "/assets/wrapper"   11 minutes ago   Up 11 minutes (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2222->22/tcp, :::2222->22/tcp   gitlab
[root@gitlab ~]#
[root@gitlab ~]# docker cp 8f56c7c5621c:/license_key.pub .
Successfully copied 2.05kB to /root/.
[root@gitlab ~]# ll
total 8
-rw-------. 1 root root 1218 Feb 28 17:32 anaconda-ks.cfg
-rw-r--r--  1 root root  451 Mar  4 00:14 license_key.pub
[root@gitlab ~]#
[root@gitlab ~]# docker cp license_key.pub 2042068f1d19:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub
Successfully copied 2.05kB to 2042068f1d19:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub

获取 GitLab 初始密码并订阅许可证

默认用户名 为 root

bash 复制代码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: M4PTVPTAGib9V2e3W/7HZXN/m7ia6T1M1Mfbh8DOp7s=

然后打开打开http://gitlab/admin/application_settings/general



如果上传 license 时提示该 license 不可用,可以重启一遍 gitlab 容器,或者替换完成license_encryption_key.pub 先重启 gitlab 容器再去 web 添加 license 也可以。

相关推荐
Elastic 中国社区官方博客18 小时前
使用 Elastic Cloud Serverless 扩展批量索引
大数据·运维·数据库·elasticsearch·搜索引擎·云原生·serverless
超龄超能程序猿19 小时前
Docker GPU插件(NVIDIA Container Toolkit)安装
运维·docker·容器
Xの哲學19 小时前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
2501_9061505619 小时前
私有部署问卷系统操作实战记录-DWSurvey
java·运维·服务器·spring·开源
知识分享小能手19 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04的Linux网络配置(14)
linux·学习·ubuntu
皇族崛起19 小时前
【视觉多模态】- scannet 数据的 Ubuntu 百度网盘全速下载
linux·ubuntu·3d建模·dubbo
岳来20 小时前
docker 从 Path 值看容器启动命令
运维·docker·容器
CAU界编程小白20 小时前
Linux系统编程系列之进程控制(下)
linux·进程控制
RisunJan20 小时前
Linux命令-ifconfig命令(配置和显示网络接口的信息)
linux·运维·服务器
LaoWaiHang20 小时前
Linux基础知识04:pwd命令与cd命令
linux