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 行业发展中比较流行的几个技术,首先是微服务化,将原有的一个系统拆分成多个,意味着有多个系统需要构建.测试.部署和运维. 第二个是敏捷开发模式,需求粒度更细化,要求一个可独 ...
随机推荐
- 【问题解决记录】vue解决低版本安卓与ios10以下系统兼容性问题
问题描述: 项目中的企业微信内部应用,使用Vue-cli搭建的H5页面web,在低版本的安卓手机或ios8.0.9.0中出现接口数据访问失败,HTTP状态码返回0的问题,无法正常使用系统.安卓手机主要 ...
- 【转】Mysql索引失效的情况
在工作中经常能遇到索引失效的情况,只要索引失效就导致了SQL查询慢,服务响应慢,用户体验差的情况:所以下面我们就讨论一下MySQL中索引失效的情况 口诀 全职匹配我最爱,最左前缀要遵守: 带头大哥不能 ...
- 《C++并发编程实战》读书笔记(3):并发操作的同步
1.条件变量 当线程需要等待特定事件发生.或是某个条件成立时,可以使用条件变量std::condition_variable,它在标准库头文件<condition_variable>内声明 ...
- runoob-Lua 教程
https://www.runoob.com/lua/lua-tutorial.html Lua 特性 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里. ...
- React、Angular、Vue.js三者比较指南
Vue-React-Angular三者区别 1. 基本概念Angular 是一个应用设计框架与开发平台,用于创建高效.复杂.精致的单页面应用. React 是一个用于构建用户界面的 JavaScr ...
- kNN(K- Nearest Neighbor)基本原理
- CV高手是怎么炼成的?
你平时都怎么复制粘贴的?是否每次都是复制一段粘贴一段?是否厌倦了每次只能复制粘贴一次的限制?那这篇文章就是为你量身订做的. CopyQ简介 CopyQ is clipboard manager – a ...
- flutter中 ListView的使用
1.ListView的简单介绍 ListView是最常用的可以滚动组件之一, 它可以沿一个方向进行线性排列所有的子组件. 下面是ListView的属性值介绍: scrollDirection:列表的滚 ...
- AI编程:cursor使用教程
这是小卷对AI编程工具学习的第1篇文章,今天以cursor为例,通过给提示词,让不懂编程的小白也能自己用代码实现需求 1.什么是AI编程工具? 可以分为两类: 狭义的AI编程工具 面向程序员的,主要用 ...
- 云主机(操作系统:CentOS7版本)安装nfs客户端,挂载文件系统
本文分享自天翼云开发者社区<云主机(操作系统:CentOS7版本)安装nfs客户端,挂载文件系统>,作者:c****n 1.保证宿主机上有nfs-utils 1.1若宿主机yum源不可以用 ...