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

配置 Docker 镜像加速

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

安装 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

确认 GitLab EE 已经正常运行

docker ps -a

在这里插入图片描述

运行 Ruby

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

安装许可证工具

在这里插入图片描述

创建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_keyFile.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_keylicense = Gitlab::License.newlicense.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 licensedata = license.exportputs "Exported license:"puts dataFile.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_keydata = File.read("GitLabBV.gitlab-license")$license = Gitlab::License.import(data)puts "Imported license:"puts $licenseunless $licenseraise "The license is invalid."endif $license.restricted?(:active_user_count)active_user_count = 10000if active_user_count > $license.restrictions[:active_user_count]raise "The active user count exceeds the allowed amount!"endendif $license.notify_admins?puts "The license is due to expire on #{$license.expires_at}."endif $license.notify_users?puts "The license is due to expire on #{$license.expires_at}."endmodule Gitlabclass GitAccessdef check(cmd, changes = nil)if $license.block_changes?return build_status_object(false, "License expired")endendendendputs "This instance of GitLab Enterprise Edition is licensed to:"$license.licensee.each do |key, value|puts "#{key}: #{value}"endif $license.expired?puts "The license expired on #{$license.expires_at}"elsif $license.will_expire?puts "The license will expire on #{$license.expires_at}"elseputs "The license will never expire."end
EOF

生成证书

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

 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

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 也可以。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511166.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thingsboard本地源码部署教程

本章将介绍ThingsBoard的本地环境搭建&#xff0c;以及源码的编译安装。本机环境&#xff1a;jdk11、maven 3.6.2、node v12.18.2、idea 2023.1、redis 6.2 环境安装 开发环境要求&#xff1a; Jdk 11 版本 &#xff1b;Postgresql 9 以上&#xff1b;Maven 3.6 以上&#xf…

前端+php:实现提示框(自动消失)

效果 php部分&#xff1a;只展示插入过程 <?php//插入注册表中$sql_insert "INSERT INTO regist_user(userid,password,phone,email)VALUES (" . $_POST[UserID] . "," . CryptPass($_POST[Password]) . "," . $_POST[Phone] . ",&qu…

论文阅读:2022Decoupled Knowledge Distillation解耦知识蒸馏

SOTA的蒸馏方法往往是基于feature蒸馏的&#xff0c;而基于logit蒸馏的研究被忽视了。为了找到一个新的切入点去分析并提高logit蒸馏&#xff0c;我们将传统的KD分成了两个部分&#xff1a;TCKD和NCKD。实验表明&#xff1a;TCKD在传递和样本难度有关的知识&#xff0c;同时NCK…

javascript作用域编译浅析

作用域思维导图 1&#xff1a;编译原理 分词/词法分析 如果词法单元生成器在判断a是一个独立的词法单元还是其他词法单元的一部分时&#xff0c;调用的是有状态的解析规则&#xff0c;那么这个过程就被称为词法分析。 解析/语法分析 由词法单元流转换成一个由元素逐级嵌套所组…

CVE-2024-23334 AIOHTTP 目录遍历漏洞复现

aiohttp简介 aiohttp 是一个基于 asyncio 实现的 Python HTTP 客户端和服务器框架。它提供了异步的 HTTP 客户端和服务器功能&#xff0c;能够处理高并发的网络请求。以下是关于 aiohttp 的一些重要特点和用途&#xff1a; 基于 asyncio&#xff1a;aiohttp 是基于 Python 的 a…

no declaration can be found for element ‘rabbit:connection-factory‘

spring-mvc 配置 rabbitmq 出现问题。 我的解决方案如下&#xff1a; 1 找到配置文件 spring-rabbitmq.xml 我的配置文件叫&#xff1a;spring-rabbitmq.xml&#xff0c;你们按照自己的查找。 2 定位如下URI 接着 Ctrl鼠标左键 3 确定spring-rabbit-x.x.xsd 按照步骤2 &…

Leetcode刷题笔记题解(C++):232. 用栈实现队列

思路&#xff1a;双栈实现入队列和出队列的操作 //AB栈来实现队列 //A栈用来push 可以利用A栈获取到队列的back即A.top //B栈用来pop 如果要获取队列的top&#xff0c;可以先把A栈元素依次弹出依次压入B栈中&#xff0c;然后B.top就是队列的top&#xff0c;pop也类似 cla…

记录些大语言模型(LLM)相关的知识点

槽位对齐&#xff08;slot alignment&#xff09; 在text2sql任务中&#xff0c;槽位对齐&#xff08;slot alignment&#xff09;通常指的是将自然语言问题中的关键信息&#xff08;槽位&#xff09;与数据库中的列名或API调用中的参数进行匹配的过程。这个过程中&#xff0c…

03-grafana的下拉列表选项制作-grafana的变量

一、准备环境 为了实现下拉列表筛选的样例&#xff0c;我们监控两个linux节点&#xff1b; 目前&#xff0c;我们已经有了一个节点了&#xff0c;再添加一个&#xff1b; 二、grafana的仪表盘变量 如果想给仪表盘自定义下拉列表&#xff0c;那么&#xff0c;需要设置变量&#…

秘密共享差分隐私原理解析

1. 隐私计算全貌 &#xfffc;&#xfffc; 可以看到&#xff0c;隐私计算技术从1979年就开始了&#xff0c;历经四代从安全多方计算(MPC)、到差分隐私(DP)、到集中加密技术(TEE)&#xff0c;再到联邦学习(FL)。 2. 秘密共享 secret Sharing 就是“秘密分享”或者“秘密共享”…

YOLOv8从入门到入土使用教程!(一)训练模型

⭐⭐⭐瞧一瞧看一看&#xff0c;新鲜的YOLOv9魔改专栏来啦&#xff01;⭐⭐⭐ 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;主力高效涨点&#xff01;&#xff01;&#xff01; 一、本文介绍 本文将演示如何使用YOLOv8进行训练及预测&#xff01; 二…

Android m/mm/mmm/make编译模块

一.编译成模块的前置条件 Android编译环境初始化完成后&#xff0c;我们就可以用m/mm/mmm/make命令编译源代码了。lunch命令其实是定义在build/envsetup.sh文件中的函数lunch提供的。与lunch命令一样&#xff0c;m、mm和mmm命令也分别是由定义在build/envsetup.sh文件中的函数…