百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

CentOS 7下Yum及RPM安装GitLab CE 14.0.3

off999 2025-03-13 18:58 20 浏览 0 评论

一、概述

  GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。



二、部署环境说明

本文中使用本地VM虚机部署测试。

OS:CentOS 7.8 x64

IP:192.168.168.100

虚机配置:2核CPU、4G内存

注:系统为最小化安装,部署前已完成系统初始化、内核及安全优化。

官方文档:
https://doc.gitlab.cc/omnibus/

推荐安装方法:官方 Linux 软件包。Linux软件包安装速度更快、升级更容易,并且包含其他方法所没有的增强可靠性的功能。 通过单个包(也称为 Omnibus)安装,该包捆绑了运行 GitLab 所需的所有不同服务和工具。 建议至少 4 GB 的内存。



三、基础依赖环境

1.安装依赖

yum -y install curl policycoreutils-python openssh-server perl


2.防火墙配置

CentOS7 默认使用firewall,本文中禁用firewall,使用iptables。后续按实际配置需求开放端口。


3.安装 Postfix(CentOS 7系统一般已默认安装)

使用Postfix发送通知电子邮件。如果想使用其他解决方案发送电子邮件,请跳过此步骤并在安装GitLab后配置外部SMTP服务器。

yum -y install postfix
systemctl enable postfix
systemctl start postfix



四、YUM安装GitLab

1.添加 GitLab 包存储库

方法一:使用官方YUM源

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

方法二:使用国内YUM源

## 新建REPO文件

vi /etc/yum.repos.d/gitlab-ce.repo
//添加如下内容
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

## 更新本地yum缓存

yum makecache fast


2.安装

## 安装最新版

yum -y install gitlab-ce

安装完成如下图所示。

上图提示:GitLab 无法检测到实例的有效主机名,请通过设置 /etc/gitlab/gitlab.rb 文件中的“external_url”配置项为GitLab实例配置URL。

## 安装指定版本

yum -y install gitlab-ce-x.x.x
//x.x.x代表版本号



五、RPM包安装GitLab

如果不习惯通过安装存储库来安装Gitlab,可以下载RPM包来安装。RPM包集成了它所需要的软件,简化安装步骤。

官方RPM包地址:

https://packages.gitlab.com/gitlab/gitlab-ce

国内RPM包地址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

cd /data/tools
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.3-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-14.0.3-ce.0.el7.x86_64.rpm

安装完成如下图所示。

上图提示:GitLab 无法检测到实例的有效主机名,请通过设置 /etc/gitlab/gitlab.rb 文件中的“external_url”配置项为GitLab实例配置URL。



六、配置GitLab

1.修改gitlab.rb配置

## 设置 external_url ,绑定监听的域名或IP端口。若GitLab需通过公网访问,最好配置域名加HTTPS;若是内部网络访问,则可配置IP+端口,也可配置域名,用户通过配置本地hosts解析访问。

## 本文中为测试,使用IP+端口的方式,即 http://192.168.168.100:90。设置的端口不能被占用,默认是80端口,如果80已经使用,可自定义其它端口,并在防火墙设置开放相对应的端口。

vi /etc/gitlab/gitlab.rb


2.加载配置

gitlab-ctl reconfigure
//第一次配置时间较长,请耐心等待

注:①初始化默认管理员帐户的用户名为 root ,密码存储在
/etc/gitlab/initial_root_password 文件中,此文件将在 24 小时后的第一次重新配置运行中清除。

②若非必要不建议做第二次初始化,后续若有修改配置文件使用命令 gitlab-ctl restart 重启所有组件服务即可生效新的配置。

③先修改gitlab.rb文件中的“external_url”选项值,再使用“gitlab-ctl reconfigure”命令配置GitLab。就不需要在配置后修改 “
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml ”文件中的“Web server settings”的值,如下图:

以及不需要修改 “
/var/opt/gitlab/nginx/conf/gitlab-http.conf ”文件的“server”选项中的"listen"和“server_name”的值,如下图:



七、测试访问

## 查看初始化管理员帐户密码,密码存储在
/etc/gitlab/initial_root_password 文件中。本文中初始化管理员帐户生成的密码为:w8HgJZJd2+
USFDwKxQWqRO2FWUQjE9UfBUFbLx3kfRM=

## 浏览器地址栏输入:http://ip:port/,本文为http://192.168.168.100:90。服务器iptables防火墙已放开90端口。

## 输入初始管理员账户: root 密码:XGi+u+5Z3Nga/lLK+
fgpxTuTOADzHd9h9vWmquUU4cQ= ,登录。

## 登录成功后的首页。

## 接下来就可以使用GitLab了,本文中不一一阐述。



八、修改管理员密码

管理员帐户root密码是初始化默认生成的,建议在首次登录后进行修改。

方法一:

## 点击首页左上角 "Menu" → “Admin” ,如下图所示:

## 左侧栏中 “Overview” → “Users”,会在右侧页面中显示当前用户,新安装部署的GitLab只有一个管理员帐户,单击管理员帐户信息栏最后的 "Edit"。如下图所示:

## 在编辑页面的"Password"选项中输入两次新密码,点击页面底部的"Save changes",保存更改。


方法二:

## 点击首页右上角管理员帐户头像 → “Edit profile” ,如下图所示:

## 点击左侧栏中 “Password”,在右侧页面中输入管理员帐户当前密码、两次新密码,点击“Save password”保存更改。如下图所示:


方法三:

通过Rails 控制台重置管理员帐户密码。

Rails 控制台官方文档:
https://docs.gitlab.com/ce/administration/operations/rails_console.html

登录GitLab应用所在的服务器,执行下列命令:

## 对于使用YUM源或RPM包安装的使用如下命令连接Rails 控制台

gitlab-rails console

## 使用如下命令完成重置密码

user = User.first
//切换至超级管理员,id为1的是超级管理员
user.password = 'yourNewpassword'
//密码至少8个字符,此处重置的新密码为"yourNewpassword"
user.save!
//如无问题返回"true"

## 修改完成,输入 quit 或 exit 退出Rails 控制台。


方法四:

使用Rake Task重置管理员帐户密码。

官方文档:
https://docs.gitlab.com/ce/security/reset_user_password.html

登录GitLab应用所在的服务器,执行下列命令:

gitlab-rake "gitlab:password:reset"
//输入管理员帐户及两次新密码



九、GitLab常用命令

## 配置GitLab
gitlab-ctl reconfigure
## 启动所有 gitlab 组件
gitlab-ctl start
## 停止所有 gitlab 组件
gitlab-ctl stop
## 重启所有 gitlab 组件
gitlab-ctl restart
## 查看服务状态
gitlab-ctl status
## 检查GitLab
gitlab-rake gitlab:check SANITIZE=true --trace
## 查看日志
gitlab-ctl tail

相关推荐

Python设计模式 第 13 章 中介者模式(Mediator Pattern)

在行为型模式中,中介者模式是解决“多对象间网状耦合”问题的核心模式。它就像“机场调度中心”——多个航班(对象)无需直接沟通起飞、降落时间,只需通过调度中心(中介者)协调,避免航班间的冲突与混乱...

1.3.1 python交互式模式的特点和用法

什么是Python交互模式Python交互模式,也叫Python交互式编程,是一种在Python解释器中运行的模式,它允许用户在解释器窗口中输入单个Python语句,并立即查看结果,而不需要编写整个程...

Python设计模式 第 8 章 装饰器模式(Decorator Pattern)

在结构型模式中,装饰器模式是实现“动态功能扩展”的核心模式。它就像“手机壳与手机的关系”——手机(原始对象)具备通话、上网等基础功能,手机壳(装饰器)可在不改变手机本身的前提下,为其新增保护、...

python设计模式 综合应用与实战指南

经过前面16章的学习,我们已系统掌握创建型模式(单例、工厂、建造者、原型)、结构型模式(适配器、桥接、组合、装饰器、外观、享元、代理)、行为型模式(责任链、命令、迭代器、中介者、观察者、状态、策略...

Python入门学习教程:第 16 章 图形用户界面(GUI)编程

16.1什么是GUI编程?图形用户界面(GraphicalUserInterface,简称GUI)是指通过窗口、按钮、菜单、文本框等可视化元素与用户交互的界面。与命令行界面(CLI)相比,...

Python 中 必须掌握的 20 个核心:str()

str()是Python中用于将对象转换为字符串表示的核心函数,它在字符串处理、输出格式化和对象序列化中扮演着关键角色。本文将全面解析str()函数的用法和特性。1.str()函数的基本用法1.1...

Python偏函数实战:用functools.partial减少50%重复代码的技巧

你是不是经常遇到这样的场景:写代码时同一个函数调用了几十次,每次都要重复传递相同的参数?比如处理文件时总要用encoding='utf-8',调用API时固定传Content-Type...

第2节.变量和数据类型【第29课-输出总结】

同学们,关于输出的知识点讲解完成之后,把重点性的知识点做一个总结回顾。·首先对于输出这一章节讲解的比如有格式化符号,格式化符号这里需要同学们额外去多留意的是不是百分号s格式化输出字符串。当然课上也说百...

AI最火语言python之json操作_python json.loads()

JSON(JavaScriptObjectNotation,JavaScript对象表示法)是一种开放标准的文件格式和数据交换格式,它易于人阅读和编写。JSON是一种常用的数据格式,比如对接各种第...

python中必须掌握的20个核心函数—split()详解

split()是Python字符串对象的方法,用于将字符串按照指定的分隔符拆分成列表。它是文本处理中最常用的函数之一。一、split()的基本用法1.1基本语法str.split(sep=None,...

实用方法分享:pdf文件分割方法 横向A3分割成纵向A4

今天在街上打印店给儿子打印试卷时,我在想:能不能,把它分割成A4在家中打印,这样就不需要跑到街上的打印店打印卷子了。原来,老师发的作业,是电子稿,pdf文件,A3格式的试卷。可是家中的打印机只能打印A...

20道常考Python面试题大总结_20道常考python面试题大总结免费

20道常考Python面试题大总结关于Python的面试经验一般来说,面试官会根据求职者在简历中填写的技术及相关细节来出面试题。一位拿了大厂技术岗SpecialOffer的网友分享了他总结的面试经...

Kotlin Data Classes 快速上手_kotlin快速入门

引言在日常开发中,我们常常需要创建一些只用来保存数据的类。问题是,这样的类往往需要写一堆模板化的方法:equals()、hashCode()、toString()……每次都重复,既枯燥又容易出错。//...

python自动化RobotFramework中Collections字典关键字使用(五)

前言介绍安装好robotframework库后,跟之前文章介绍的BuiltIn库一样BuiltIn库使用介绍,在“python安装目录\Lib\site-packages\robot\librarie...

Python中numpy数据分析库知识点总结

Python中numpy数据分析库知识点总结二、对已读取数据的处理②指定一个值,并对该值双边进行修改③指定两个值,并对第一个值的左侧和第二个值的右侧进行修改2.4数组的拼接和行列交换①竖直拼接(np...

取消回复欢迎 发表评论: