DevOps系列——Gitlab私服
Gitlab/GitHub是两兄弟,但GitHub本着共享技术的精神,私有库是要钱滴,而且代码放别人家里,晚上总是有点睡不踏实,
来个代码泄露或者突然被区别对待,比如GitHub断供来自伊朗、叙利亚的人民,就问你怕不怕,所以企业一般会自建Gitlab
私服,供内部使用,反正我没听过谁家上GitHub管理代码的,今天就来建一个自家的Gitlab,自己在家放心玩。
作者原创文章,谢绝一切转载,违者必究!
本文只发表在"公众号"和"博客园",其他均属复制粘贴!如果觉得排版不清晰,请查看公众号文章。
准备:
VMwareWorkstation 15 Pro/RHEL8.0/Gitlab-ee-13.0.0
难度: 新手--战士--老兵--大师
目标:
- 搭建Gitlab私服
1 步骤
首先请设置Linux内存至少为4G,因为2G会非常卡顿!
1.安装HTTP, HTTPS 和SSH,还有防火墙设置,这里使用的是 DNF ,DNF(Dandified Yum)是新一代的 RPM 软件包管理器,未来会取代yum:
sudo dnf install -y curl policycoreutils openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
2.安装邮件服务,用于发送邮件:
sudo dnf install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
3.下载安装脚本,并使用 bash 命令运行,这里使用到了Linux的|管道命令,即将前面的结果作为后面命令的输入:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
4.安装 gitlab-ee 版本,ee版为enterprise edition,ce版为community edition,这个EXTERNAL_URL参数也可以在安装后修改:
Change https://gitlab.example.com to the URL at which you want to access your GitLab instance. Installation will automatically configure and start GitLab at that URL.
EXTERNAL_URL="https://gitlab.example.com" dnf install -y gitlab-ee
以下为下载过程,文件有点大,1G左右:

安装完成:

如果想先下载不安装,可以使用:
[root@server226 ~]# dnf download gitlab-ee-12.10.6-ee.0.el8.x86_64
或者使用 rpm 方式,先wget 安装包,再rpm安装也可以,举个例子:
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm/download.rpm
rpm -ivh gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm
5.配置文件修改,配置文件在 /etc/gitlab/gitlab.rb :
修改外部访问地址为Linux的IP:

如果想修改端口号(默认为80):
注意:gitlab自带Nginx,开启或关闭:
[root@server226 ~]# vim /etc/gitlab/gitlab.rb

下图二中看注释说明:Override only if you use a reverse proxy.
[root@server226 ~]# vim /etc/gitlab/gitlab.rb

[root@server226 ~]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
修改如下:

重新加载: gitlab-ctl reconfigure
重启服务: gitlab-ctl restart
如果启动后访问,提示502,则需要耐心等待一下再刷新即可。
如果照上图修改了端口,访问地址则为:http://192.168.1.226:9099,
特别注意:这里因为nginx做了反向代理,故使用nginx监听端口。
6.使用命令 gitlab-ctl status 检查,如下则说明GitLab运行正常:

7.GitlabUI:访问 http://IP:80
首次登录会要求修改密码,然后 root + 密码 登录:

8.如果想强制初始化密码(或重置密码):命令目录在/opt/gitlab/bin,使用 gitlab-rails console production,如果报错,则使用 gitlab-rails console,如下:

9.优雅关闭服务: gitlab-ctl stop

全文完!
我近期其他文章:
- 1 聊聊算法——回溯算法
- 2 Redis高级应用
- 3 聊聊算法——BFS和DFS
- 4 微服务通信方式——gRPC
- 5 分布式任务调度系统
只写原创,敬请关注

DevOps系列——Gitlab私服的更多相关文章
- DevOps系列——Jenkins/Gitlab自动打包部署
前面只说了DevOps的两个基础组件Jenkins和GitLab,客官也不要着急,我们玩就玩的深入一点,Gitlab和Jenkins的各种配置和 插件很多,也够啃一阵子的,不要照着操作一通就感觉万事大 ...
- gitlab私服搭建
1.什么是gitlab: gitlab 是一个用于仓库管理系统的开源项目,它以git为代码管理工具,因此代码可以管到它上边来.搭建私服gitlab可以方便我们有条不紊的管理我们的代码.闲话不说,上代码 ...
- DevOps系列(1)-总体架构
扯闲淡 在进入正式话题之前,先扯个淡,这算是第一篇我正式在博客上发布的随笔吧,之前也一直有想写点什么,将自己多年的工作经验分享出来,供大家参考点评,但是奈何一直对自己的文字功底不自信(其实也确实比较烂 ...
- [Gitlab运维系列]Gitlab 403 forbidden 并发引起IP被封
问题 带着团队使用Git,使用的是自搭建的Gitlab.但今天打开页面的时候显示的是空白页面,上面还有一次文本Forbidden. 原因 Gitlab使用rack_attack做了并发访问的限制. 解 ...
- DevOps之一 Gitlab的安装与配置
gitlab的安装 参考治疗:https://www.gitlab.com.cn/installation/#centos-7 http://www.21yunwei.com/archives/435 ...
- 容器化系列 - GitLab启动和配置 on Docker
本文简单说明了如何在Docker容器中运行GitLab. 1 准备工作 1.1 下载镜像 $ docker pull docker.io/gitlab/gitlab-ce:latest 1.2 创建持 ...
- centos下gitlab私服完整安装部署(nginx+MySQL+redis+gitlab-ce+gitlab-shell+)
系统环境cat /etc/redhat-release CentOS release 6.8 (Final) nginx -vnginx version: nginx/1.9.15 redis-cli ...
- 虚拟机CentOS7安装docker并搭建Gitlab私服
一.下载安装虚拟机和CentOS7系统 这些流程比较简单不会有什么坑,这里不再阐述 二.安装docker 1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验 ...
- GitLab私服在Ubuntu上搭建总结
1.前期准备: sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates sudo apt-get ...
- CODING DevOps 系列第一课:基于开源工具链打造持续交付平台
当下软件发展趋势 当今 IT 行业发展中比较流行的几个技术,首先是微服务化,将原有的一个系统拆分成多个,意味着有多个系统需要构建.测试.部署和运维. 第二个是敏捷开发模式,需求粒度更细化,要求一个可独 ...
随机推荐
- redis-cluster 集群增加节点
分布式存储机制-槽 [1]Redis Cluster 在设计中没有使用一致性哈希(Consistency Hashing),而是使用数据分片(Sharding)引入哈希槽[2]Redis Cluste ...
- 分布式配置中心--Apollo
分布式配置中心--Apollo Apollo(阿波罗)是携程开源的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,支持配置热发布并实时推送到应用端,并且具备规范的权限及流程治理等特性,适用 ...
- 从Linux零拷贝深入了解I/O
转载&学习文章:从Linux零拷贝深入了解I/O 本文将从文件传输场景以及零拷贝技术深究 Linux I/O 的发展过程.优化手段以及实际应用. 前言 存储器是计算机的核心部件之一,在完全理想 ...
- 通过串口通信 对TCP传输层以下的理解
这可能是近期暂时最后一篇c嵌入式的文章了 基础的串口使用 参照网上的stm32教程套路引入标准库,初始化芯片手册上对应串口引脚 ,初始化stm32串口功能,然后有数据了就自然在寄存器上,就这样,你的波 ...
- dart 中在实例化 new 关键字可以省略不写
dart 中在实例化 new 关键字可以省略不写 class Person { String name; int age; String sex; Person(this.name, this.age ...
- VS2022编译项目出现““csc.exe”已退出,代码为 -1073741819”的错误解决办法
1.问题描述 编译出错如下图所示: 2.解决办法 在NuGet包中输入Microsoft.Net.Compilers,安装该包,安装完后重新生成就不报错了,如下图所示:
- 如何基于DeepSeek开展AI项目
关注公众号回复1 获取一线.总监.高管<管理秘籍> 书接上文:DeepSeek怎么突然就比肩GPT了? 最近一直在研究DeepSeek,作为应用层的选手,自然不会傻乎乎的想要去了解底层,我 ...
- RabbitMQ(三)——简单模式
RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...
- 最小费用最大流问题的 SSP 算法
我们已经了解最大流问题,其目标是通过网络中的各条边传输流量,尽可能地从源点流向汇点.通过经典的算法,如 Ford-Fulkerson 增广,我们能够找到一种方式,最大化从源点到汇点的流量. 然而,最大 ...
- 记录WPS接入AI大模型
进入官网下载海鹦OfficeAI:https://www.office-ai.cn/ 安装OfficeAI 勾选打开一个测试表格看看是否已经安装成功 打开有些人的会弹出这个提示,点击进行管理,然后点击 ...