如何在 CentOS 7 上安装和配置 GitLab

2023-11-06

GitLab 是一个基于网络的开源Git存储库管理器编写为Ruby包括 wiki、问题管理、代码审查、监控以及持续集成和部署。它使开发人员能够构建、部署和运行他们的应用程序。

GitLab 提供三种不同版本:社区版 (CE)、企业版 (EE) 和 GitLab 托管版本。

如果您想将您的项目从GitHub那么,你绝对应该尝试 GitLab。它可以从包括 GitHub 在内的不同来源导入项目和问题,这使得迁移过程变得轻松无忧。 GitLab 界面设计精良、干净、直观,在用户体验和功能方面与 GitHub 接近。

根据您的要求和偏好,有多种安装 GitLab 的方法。本教程介绍了使用 Omnibus 软件包在 CentOS 7 系统上安装和配置 GitLab (CE) 所需的步骤。

先决条件#

本教程假设您安装了全新的 CentOS 7。

根据GitLab 要求页面,建议使用具有以下功能的服务器:

  • 至少 4GBRAM内存 .
  • 2 个 CPU 核心。
  • 至少 2GB交换空间 .
  • (可选)指向服务器 IP 地址的域或子域。

为了获得额外的安全层,建议设置一个基本的firewall .

您登录时必须拥有的用户须藤权限能够安装软件包。

安装所需的依赖项#

使用以下命令刷新本地包索引并安装依赖项:

sudo yum install curl policycoreutils-python openssh-server

为了让 GitLab 能够发送通知电子邮件,您可以安装并使用 Postfix 或使用一些事务性邮件服务,例如 SendGrid、MailChimp、MailGun 或 SES,在这种情况下您可以跳过以下步骤并配置 [GitLab 的 SMTP 设置] (https://docs.gitlab.com/omnibus/settings/smtp.html)安装完成后。

运行以下命令在 CentOS 服务器上安装 Postfix:

sudo yum install postfix

在安装过程中,系统会要求您选择邮件服务器配置类型。默认选项是Internet Site。这是推荐的选项,只需按一下TAB, then ENTER.

接下来,系统会提示您输入System mail name这应该与您的服务器相同hostname .

安装完成后,通过运行以下命令启动并启用 postfix 服务:

sudo systemctl start postfixsudo systemctl enable postfix

安装 GitLab#

GitLab 安装是一个非常简单的过程。我们将使用以下命令安装 GitLab CE 包yum包管理器。

首先使用以下命令将 GitLab 存储库添加到系统源列表中卷曲命令 :

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

该脚本将启用存储库并安装必要的依赖项。完成后,通过运行以下命令安装 GitLab 包:

sudo yum install gitlab-ce

系统将提示您接受 GitLab 存储库 GPG 密钥。类型y并按Enter.

安装过程可能需要一段时间,安装成功后,您将看到以下输出:

Thank you for installing GitLab!
...
Complete!

调整防火墙规则#

有关设置基本防火墙的指南位于先决条件部分中。为了能够访问 GitLab 界面,您需要打开端口80 and 443。为此,请运行以下命令:

sudo firewall-cmd --permanent --zone=public --add-service=httpsudo firewall-cmd --permanent --zone=public --add-service=httpssudo firewall-cmd --reload

设置 GitLab URL#

在访问 GitLab Web 界面之前,我们需要设置可访问 GitLab 的 URL。打开Gitlab的配置文件并进行以下更改:

sudo vim /etc/gitlab/gitlab.rb

在配置文件顶部附近,您将看到一行以external_url。更改值以匹配您的域/子域或 IP 地址。如果您有域名使用https如果您想通过服务器 IP 地址访问 GitLab 界面,请使用http.

/etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'

Next search对于“Let’s Encrypt 集成”,取消注释以letsencrypt['enable']并将其设置为 true。或者,如果您想接收来自 Let’s Encrypt 的有关您的域的电子邮件,请取消注释以letsencrypt['contact_emails']并添加您的电子邮件地址。

如果您设置external_url到 IP 地址,那么您不应启用 Let’s Encrypt 集成。

/etc/gitlab/gitlab.rb
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com'] # This should be an array of email addresses to add as contacts

最后保存并关闭文件并运行以下命令重新配置 Gitlab:

sudo gitlab-ctl reconfigure

该命令将重新配置 GitLab 设置并生成免费的 Let’s encrypt SSL 证书。

通过 Web 界面配置 GitLab#

现在您已经配置了 GitLab URL,您可以通过 GitLab Web 界面开始初始配置。

启动你的网页浏览器并导航至:

https://your_gitlab_domain_or_server_IP.com

1.设置管理账户密码#

第一次访问 Web 界面时,系统会提示您设置管理帐户的密码。

输入安全密码并单击Change your password完成后按钮。

您将被重定向到登录页面:

默认管理帐户用户名是root。在本教程的后面部分,我们将向您展示如何更改用户名。

  • 用户名:根
  • 密码:【您设置的密码】

输入登录凭据,单击Sign in按钮,您将被重定向到 GitLab 欢迎页面。

2. 编辑用户资料#

您要做的第一件事是编辑您的用户个人资料。单击用户头像(右上角),然后从下拉菜单中选择Settings:

您可以在此处更改您的姓名、电子邮件和其他个人资料信息和设置。根据您的喜好进行更改。

完成后,单击Update Profile settings按钮,很快您就会收到一封确认电子邮件到您提供的地址。要确认您的帐户,请按照电子邮件中提供的说明进行操作。

3. 更改用户名#

要访问个人资料页面,请单击Account来自左侧垂直导航菜单的链接。

如您所知,第一个管理帐户的默认用户名是root。要更改它,只需输入您的新用户名,然后单击Update username button.

在此屏幕上,您还可以启用双因素身份验证。

下次登录 GitLab 仪表板时,您将需要输入新用户名。

4. 添加 SSH 密钥#

为了能够将本地 git 更改推送到 GitLab 服务器,您需要将 SSH 公钥添加到您的 GitLab 帐户。

如果您已在本地系统上创建了 SSH 密钥对,则可以通过键入以下内容来显示公钥:

cat ~/.ssh/id_rsa.pub

输出应如下所示:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== admin@linuxize.com

如果上面的命令打印No such file or directory这意味着您的计算机上没有生成 SSH 密钥对。

To 生成新的 SSH 密钥对使用以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

复制输出猫命令并返回 GitLab 的 Web 界面。点击SSH Keys从左侧垂直导航菜单访问 SSH 密钥配置页面。

In the Keytextarea 粘贴您之前从本地计算机复制的公钥,设置描述性标题,然后单击Add key button:

现在,您应该能够从本地计算机推送和拉取项目更改,而无需提供您的 GitLab 帐户凭据。

结论#

本教程引导您完成在 CentOS 7 上安装和配置 GitLab。您还学习了如何编辑配置文件设置、如何更改用户名和添加 SSH 密钥。您现在可以创建您的第一个项目并开始使用 GitLab。

如果您有疑问,请随时在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装和配置 GitLab 的相关文章

  • 为什么 git mergetool 说“没有文件需要合并”?

    我正在尝试将 BeyondCompare4 配置为 git 中的 difftool 和 mergetool 我使用的是 git 版本 2 5 0 windows 1 到目前为止 BeyondCompare4 作为 difftool 工作得很
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu
  • 您对版本控制进行到什么程度了? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • Git 克隆致命

    我在执行 git clone 时遇到错误 fatal pack has bad object at offset 824775943 inflate returned 1 fatal index pack failed 它仅适用于 Wind
  • Git - 显示远程分支的远程名称

    是否有一个 Git 命令可以显示远程分支的远程名称 目前 我坚持使用 shell utils 从远程分支引用中提取远程名称 例如 echo remote name branch name sed r s 1 remote name 有时出于
  • .gitignore 文件夹内容[重复]

    这个问题在这里已经有答案了 可能的重复 在 Windows 上忽略 Git 存储库中的目录 https stackoverflow com questions 343646 ignoring directories in git repos
  • 将 svn 存储库添加到现有的 git 存储库中?

    我知道你可以使用 git svn init 来跟踪 svn 存储库 但这是为了你想创建一个全新的存储库 我的情况是 我目前已经有一个现有的 git 存储库 并且希望通过将 svn 存储库设为我当前 git 存储库中的远程分支来跟踪 svn
  • 有关多个远程存储库的 Git 状态

    我有一个脚本 如果我忘记在 40 多个存储库中提交或推送一些代码 它会通过电子邮件向我发送提醒 在我的两个项目中 我遵循了这些帖子中的答案 其中我设置了 git push 来推送到多个存储库 从多个远程位置拉 推 https stackov
  • git for-each-ref - 按年龄过滤结果

    我正在使用以下命令here https stackoverflow com a 39251131 5812876 git for each ref format color cyan authordate format m d Y I M
  • 如何通过哈希显示提交的日期和时间

    I used git reflog识别我创建特定分支时的哈希值 我得到了哈希值fe1ddcdef 我还没有将此分支推送到远程 我现在正在尝试查找日期和时间fe1ddcdef发生 git reflog只告诉我 fe1ddcdef HEAD 1
  • Eclipse 与外部 src 和 Web 内容文件夹链接或映射

    首先这不是问题但是我遇到的问题的解决方案浪费了4 5个小时来找到解决方案 请让我知道是否有更好的替代方法来使用 eclipse 项目管理外部 src 文件夹 我正在使用版本控制系统 GIT 来管理我的项目 还使用外部 Git 客户端 Sou
  • 无法从我的电脑上使用 traefik 后面的 gitlab 进行 git 克隆

    这是我的 gitlab 和 traefik 配置 version 3 7 services gitlab web image gitlab gitlab ce latest restart always hostname gitlab ro
  • 是否可以在 git 存储库之外添加和提交文件?

    我们的文本文件分布在系统的各个角落 我们计划将这些文件中所做的所有修改添加到 git 存储库中 每次对这些文件进行修改都是由脚本进行的 因此 我们计划向该脚本添加新命令 以将文件添加到 git 存储库 但是 这些修改是同时进行的 我们可以为
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 如何将 GIT 调用的输出获取到批处理脚本中的变量中?

    我有一个 git 命令来获取当前存储库的最新 SHA 如下所示 git log pretty format H n 1 我有一个 Windows 批处理脚本 我想按如下方式使用它 SET CURRENT SHA 但我不知道如何将从 git

随机推荐

  • 如何在 Debian 上安装 Maven

    Apache Maven 是一个软件项目管理和理解工具 Maven 可以通过中央信息来管理项目的构建 报告和文档 本教程将帮助您在 Debian 11 Debian 10 Debian 9 和 Debian 8 系统上安装 Apache M
  • 比较 Apache MPM Worker 和 Prefork:哪一个最适合您的应用程序

    Apache 多处理模块 MPM 是 Apache HTTP 服务器的重要组件 因为它们控制服务器的进程管理并确定服务器如何处理多个请求 有多种不同类型的 Apache MPM 可用 包括 Prefork 和 Worker 在本文中 我们将
  • 如何使用 Let’s Encrypt SSL 保护 GitLab 服务器

    我们总是说 安全第一 确保您的辛勤工作免受黑客攻击应该是首要任务 本教程将花费几分钟时间使用 Let s Encrypt SSL 证书来保护 Gitlab 服务器 Let s Encrypt 提供免费的 SSL 证书来保护您的域 并提供一种
  • 如何在 Python 中访问环境变量

    环境变量是任何编程环境的一个重要方面 它们存储配置设置 系统路径和应用程序依赖的其他基本数据 作为一名 Python 开发人员 了解如何访问和管理这些变量对于创建健壮 适应性强且可维护的应用程序至关重要 在这份综合指南中 我们将探讨 Pyt
  • 如何在 Ubuntu 18.04 和 16.04 LTS 上使用 Let’s Encrypt 保护 Nginx

    本教程将帮助您在 Ubuntu 系统上安装 Let s encrypt 客户端 并为 Nginx Web 服务器上运行的域颁发 SSL 证书 Apache 与 Let s Encrypt SSL 手动设置 Let s Encrypt SSL
  • Linux 中的 Pwd 命令(当前工作目录)

    在本文中 我们将向您展示如何使用pwd命令 当前工作目录是什么 当前工作目录是用户当前正在其中工作的目录 每次与命令提示符交互时 您都是在一个目录中工作 默认情况下 当您登录 Linux 系统时 当前工作目录将设置为您的主目录 要更改工作目
  • 如何在 Vim / Vi 中撤消和重做

    有时 在编辑文件时 您可能会删除错误的行或改变对编辑的想法 并且您会想要恢复更改 本文介绍了如何在 Vim Vi 中撤消和重做更改 Vi 或 Vim 默认安装在 macOS 和几乎所有 Linux 发行版上 当您遇到您最喜欢的编辑器不可用的
  • Linux 中如何统计目录中的文件数

    虽然不是很常见 但有时您需要找出给定目录中有多少个文件 例如 如果您用完inodes在 Linux 系统上 您需要查找哪个目录包含数千或数百万个文件 在本文中 我们将向您展示几种在 Linux 中查找目录中文件数量的不同方法 计算目录中的文
  • 如何在 Debian 10 Linux 上安装 MongoDB

    MongoDB 是一个免费的开源文档数据库 它属于 NoSQL 数据库家族 与 MySQL 和 PostgreSQL 等传统的基于表的 SQL 数据库不同 在 MongoDB 中 数据存储在灵活的 类似 JSON字段可能因文档而异的文档 它
  • 如何在 Ubuntu 18.04 上安装和配置 Redmine

    Redmine 是最流行的开源项目管理和问题跟踪软件工具之一 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 本教程介绍如何在 U
  • 如何在 CentOS 8 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种客户端 服务器网络协议 允许用户与远程计算机传输文件 有许多可用于 Linux 的开源 FTP 服务器 最流行和最常用的服务器是PureFTPd ProFTPD and vsftpd 在本教程中 我们将在 Cen
  • 如何在 Ubuntu 20.04 上制作 Minecraft 服务器

    我的世界 是有史以来最受欢迎的游戏之一 这是一款沙盒视频游戏 玩家可以探索无限的世界并建造不同的结构 从简单的房屋到高耸的摩天大楼 本教程介绍如何在 Ubuntu 20 04 上创建 Minecraft 服务器 我们将使用 Systemd
  • 如何通过 SSH 隧道连接 MySQL

    默认情况下 MySQL 服务器仅侦听本地主机 这意味着它只能由同一主机上运行的应用程序访问 但是 在某些情况下 您可能希望从远程位置连接到服务器 一种选择是配置MySQL服务器允许远程连接 但这需要管理权限 并且可能会导致安全风险 更安全的
  • Bash 数组

    数组是最常用和基本的数据结构之一 您可以将数组视为一个变量 其中可以存储多个变量 在本文中 我们将介绍 Bash 数组 并解释如何在 Bash 脚本中使用它们 Bash 数组 Bash 支持一维数字索引和关联数组类型 数值数组使用整数引用
  • 如何在 Debian 10 上设置 Apache 虚拟主机

    Apache 虚拟主机允许您在一台计算机上运行多个网站 使用虚拟主机 您可以指定站点文档根 包含网站文件的目录 为每个站点创建单独的安全策略 使用不同的 SSL 证书等等 本文介绍如何在 Debian 10 服务器上设置 Apache 虚拟
  • 配置 Apache 错误和访问日志

    Apache 是一个开源 跨平台的 HTTP 服务器 它具有许多强大的功能 可以通过各种模块进行扩展 管理时Apache对于 Web 服务器 您将执行的最常见的任务之一是检查日志文件 了解如何配置和读取日志在排除服务器或应用程序问题时非常有
  • 如何在 Ubuntu 20.04 上设置 SSH 密钥

    Secure Shell SSH 是一种用于在客户端和服务器之间创建安全连接的网络协议 通过 SSH 您可以在远程计算机上运行命令 创建隧道 转发端口等 SSH 支持多种身份验证机制 最常见的两种是基于密码和公钥的身份验证 使用公钥进行认证
  • 巴什赫里多克

    在编写 shell 脚本时 您可能会遇到需要将多行文本或代码块传递给交互式命令的情况 例如tee cat or sftp 在 Bash 和 Zsh 等其他 shell 中 Here 文档 Heredoc 是一种重定向类型 允许您将多行输入传
  • 如何在 Ubuntu 18.04 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 Ubuntu 18 04 上安装和配置
  • 如何在 CentOS 7 上安装和配置 GitLab

    GitLab 是一个基于网络的开源Git存储库管理器编写为Ruby包括 wiki 问题管理 代码审查 监控以及持续集成和部署 它使开发人员能够构建 部署和运行他们的应用程序 GitLab 提供三种不同版本 社区版 CE 企业版 EE 和 G