• 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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置 Docker 镜像加速

    {  
      "registry-mirrors": ["https://vwlrpbcp.mirror.aliyuncs.com"]  
    } 
    
    • 1
    • 2
    • 3

    安装 GitLab EE

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    确认 GitLab EE 已经正常运行

    docker ps -a
    
    • 1

    在这里插入图片描述

    运行 Ruby

    docker run -it --rm ruby /bin/bash
    
    • 1

    安装许可证工具

    在这里插入图片描述

    创建license.rb文件

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    生成证书

    root@8f56c7c5621c:/# ruby license.rb
    License:
    #
    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:
    #
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    在这里插入图片描述
    然后会在当前目录下生成 GitLabBV.gitlab-license license_key license_key.pub三个文件。

    在这里插入图片描述
    将生成的 license_key.pub 文件复制到到 gitlab 容器中的/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub

     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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

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

    默认用户名 为 root

    docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
    Password: M4PTVPTAGib9V2e3W/7HZXN/m7ia6T1M1Mfbh8DOp7s=
    
    • 1
    • 2

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

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

    在这里插入图片描述

  • 相关阅读:
    OpenWrt上使用Zerotier打通多个局域网
    解决quest2激活后更新卡0%(内附全套工具)
    NX二次开发-调用Everything SDK基于名称快速定位文件和文件夹
    [机缘参悟-65]:《兵者,诡道也》-6-三十六计解读-并战计
    如何使用docker快速部署MinDoc文档系统
    Comparable接口与Comparator接口
    webrtc H265 网页播放器迈向实用第一步
    react-pdf预览在线PDF的使用
    【PyQt5】一文向您详细介绍 self.setLayout() 的作用
    如何比较两个或多个分布:从可视化到统计检验的方法总结
  • 原文地址:https://blog.csdn.net/qq_34185638/article/details/136448700