如何在 Ubuntu 18.04 上安装和配置 GitLab如何在 Ubuntu 18.04 上安装和配置 GitLab如何在 Ubuntu 18.04 上安装和配置 GitLab如何在 Ubuntu 18.04 上安装和配置 GitLab
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 上安装和配置 GitLab

介绍

GitLab 是一个开源应用程序,主要用于托管 Git 存储库,具有其他与开发相关的功能,如问题跟踪。它旨在使用您自己的基础架构进行托管,并提供灵活的部署方式,作为您的开发团队的内部存储库存储、与用户交互的公共方式,或供贡献者托管他们自己的项目的方式。

GitLab 项目使您能够使用最小安装机制在您自己的硬件上创建 GitLab 实例。在本指南中,您将学习如何在 Ubuntu 18.04 服务器上安装和配置 GitLab 社区版。

先决条件

要学习本教程,您需要:

  • 具有非根 sudo 用户和基本防火墙的 Ubuntu 18.04 服务器。要进行设置,请遵循我们的 Ubuntu 18.04 初始服务器设置指南。

已发布的 GitLab 硬件要求建议使用至少具有以下条件的服务器:

  • 4 个 CPU 核心
  • 4GB RAM 内存

虽然您可以通过用一些交换空间替换 RAM 来解决问题,但不推荐这样做。本指南中的以下示例将使用这些最少的资源。

  • 指向您的服务器的域名。有关更多信息,请阅读我们关于如何开始使用 DigitalOcean 上的 DNS 的文档。本教程将使用 your_domain 作为示例,但请务必将其替换为您的实际域名。

第 1 步 — 安装依赖项

在安装 GitLab 之前,重要的是安装它在安装过程中和持续使用的软件。可以从 Ubuntu 的默认包存储库安装所需的软件。

首先,刷新本地包索引:

  1. sudo apt update

然后输入以下命令安装依赖项:

  1. sudo apt install ca-certificates curl openssh-server postfix tzdata perl

您可能已经安装了其中的一些软件。对于 postfix 安装,出现提示时选择 Internet Site。在下一个屏幕上,输入服务器的域名以配置系统发送邮件的方式。

现在您已经安装了依赖项,您已准备好安装 GitLab。

第 2 步 — 安装 GitLab

有了适当的依赖项,您就可以安装 GitLab。此过程利用安装脚本使用 GitLab 存储库配置您的系统。

首先,进入 /tmp 目录:

  1. cd /tmp

然后下载安装脚本:

  1. curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

请随意检查下载的脚本,以确保您对它将要执行的操作感到满意。您还可以在 GitLab 安装说明中找到脚本的托管版本:

  1. less /tmp/script.deb.sh

一旦您对脚本的安全性感到满意,请运行安装程序:

  1. sudo bash /tmp/script.deb.sh

该脚本将您的服务器设置为使用 GitLab 维护的存储库。这使您可以使用与其他系统包相同的包管理工具来管理 GitLab。完成后,您可以使用 apt 安装实际的 GitLab 应用程序:

  1. sudo apt install gitlab-ce

这会在您的系统上安装必要的组件,可能需要一些时间才能完成。

第 3 步 — 调整防火墙规则

在配置 GitLab 之前,您需要确保您的防火墙规则足够宽松以允许 Web 流量。如果您按照先决条件中链接的指南进行操作,您将已经启用了 ufw 防火墙。

通过运行以下命令查看活动防火墙的当前状态:

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

当前规则允许 SSH 流量通过,但对其他服务的访问受到限制。由于 GitLab 是一个 Web 应用程序,因此您需要允许 HTTP 访问。因为您将利用 GitLab 从 Let's Encrypt 请求和启用免费 TLS/SSL 证书的能力,所以还允许 HTTPS 访问。

HTTP 和 HTTPS 的协议到端口映射在 /etc/services 文件中可用,因此您可以按名称允许该流量进入。如果您还没有启用 OpenSSH 流量,您应该允许该流量:

  1. sudo ufw allow http
  2. sudo ufw allow https
  3. sudo ufw allow OpenSSH

您可以再次检查 ufw status 以确保您至少授予了对这两项服务的访问权限:

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)

此输出表明一旦您配置了应用程序,GitLab Web 界面现在就可以访问了。

第 4 步 — 编辑 GitLab 配置文件

在您可以使用该应用程序之前,请更新配置文件并运行重新配置命令。首先,使用您喜欢的文本编辑器打开 GitLab 的配置文件。此示例使用 nano:

  1. sudo nano /etc/gitlab/gitlab.rb

搜索 external_url 配置行。更新它以匹配您的域并确保将 http 更改为 https 以自动将用户重定向到受 Let's Encrypt 证书保护的站点:

...
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Note: During installation/upgrades, the value of the environment variable
##! EXTERNAL_URL will be used to populate/replace this value.
##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP
##! address from AWS. For more details, see:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'https://your_domain'
...

接下来,找到 letsencrypt[contact_emails] 设置。如果您使用的是 nano,则可以通过按 CTRL+W 启用搜索提示。将 letsencrypt[contact_emails] 写入提示符,然后按 ENTER。此设置定义了一个电子邮件地址列表,如果您的域出现问题,Let's Encrypt 项目可以使用这些地址与您联系。建议取消注释并填写此内容以告知自己可能发生的任何问题:

letsencrypt['contact_emails'] = ['sammy@example.com']

完成更改后,保存并关闭文件。如果您使用的是 nano,您可以按 CTRL+X,然后是 Y,然后是 ENTER .

运行以下命令重新配置 GitLab:

  1. sudo gitlab-ctl reconfigure

这将使用它可以找到的有关您的服务器的信息来初始化 GitLab。这是一个完全自动化的过程,因此您无需回答任何提示。该过程还将为您的域配置 Let's Encrypt 证书。

第 5 步 — 通过 Web 界面执行初始配置

在 GitLab 运行的情况下,您可以通过 Web 界面对应用程序进行初始配置。

首次登录

在 Web 浏览器中访问 GitLab 服务器的域名:

https://your_domain

在您第一次访问时,您会看到一个登录页面:

GitLab 为您生成一个初始安全密码。它存储在一个文件夹中,您可以作为管理 sudo 用户访问该文件夹:

  1. sudo nano /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the firs$
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: YOUR_PASSWORD

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

返回登录页面,输入以下内容:

  • 用户名:root
  • 密码:[/etc/gitlab/initial_root_password 中列出的密码]

在字段中输入这些值,然后单击登录按钮。您将登录到该应用程序并转到提示您开始添加项目的登录页面:

您现在可以微调您的 GitLab 实例。

更新您的密码

登录后您应该做的第一件事就是更改密码。要进行此更改,请单击导航栏右上角的图标并选择编辑配置文件:

然后您将进入用户设置页面。在左侧导航栏上,选择密码以将 GitLab 生成的密码更改为安全密码,然后在完成更新后单击保存密码按钮:

您将被带回登录屏幕,并收到您的密码已更改的通知。输入您的新密码以重新登录您的 GitLab 实例:

调整您的个人资料设置

GitLab 选择了一些合理的默认值,但一旦您开始使用该软件,这些默认值通常就不合适了。

要进行必要的修改,请单击导航栏右上角的用户图标并选择编辑配置文件。

您可以将“管理员”和“admin@example.com”中的姓名和电子邮件地址调整为更准确的内容。您选择的名称将显示给其他用户,而电子邮件将用于默认头像检测、通知、通过界面的 Git 操作等:

完成更新后,单击底部的更新配置文件设置按钮。系统将提示您输入密码以确认更改。

确认电子邮件将发送到您提供的地址。按照电子邮件中的说明确认您的帐户,以便您可以开始将其与 GitLab 一起使用。

更改您的帐户名称

接下来,在左侧导航栏中选择帐户:

在这里,您可以启用双因素身份验证并更改您的用户名。默认情况下,第一个管理帐户的名称为 root。由于这是一个已知的帐户名称,将其更改为其他名称会更安全。您仍将拥有管理权限;唯一会改变的是名字。将 root 替换为您首选的用户名:

单击“更新用户名”按钮进行更改。之后系统会提示您确认更改。

下次登录 GitLab 时,请记住使用新用户名。

将 SSH 密钥添加到您的帐户

您可以使用 Git 启用 SSH 密钥以与您的 GitLab 项目进行交互。为此,您需要将 SSH 公钥添加到您的 GitLab 帐户。

在左侧导航栏中,选择 SSH Keys:

如果您已经在本地计算机上创建了 SSH 密钥对,则可以通过键入以下内容来查看公钥:

  1. cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

复制此文本并将其输入到 GitLab 实例内的密钥文本框中。

相反,如果您收到不同的消息,则说明您的机器上还没有配置 SSH 密钥对:

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

如果是这种情况,您可以通过输入以下命令来创建 SSH 密钥对:

  1. ssh-keygen

接受默认值并可选择提供密码以在本地保护密钥:

Output
Generating public/private rsa key pair. Enter file in which to save the key (/home/sammy/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sammy/.ssh/id_rsa. Your public key has been saved in /home/sammy/.ssh/id_rsa.pub. The key fingerprint is: SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work The key's randomart image is: +---[RSA 2048]----+ | ..%o==B| | *.E =.| | . ++= B | | ooo.o . | | . S .o . .| | . + .. . o| | + .o.o ..| | o .++o . | | oo=+ | +----[SHA256]-----+

一旦你有了这个,你可以通过输入这个命令来显示你的公钥,就像前面的例子一样:

  1. cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

在输出中插入此文本块,并将其输入 GitLab 实例内的密钥文本框中。给它一个描述性的标题,然后单击添加键按钮。

现在您可以从本地计算机管理您的 GitLab 项目和存储库,而无需提供您的 GitLab 帐户凭据。

第 6 步 — 限制或禁用公开注册

使用您当前的设置,当您访问 GitLab 实例的登录页面时,任何人都可以注册一个帐户。如果您正在寻求主持一个公共项目,这可能就是您想要的。然而,很多时候,更严格的设置是可取的。

首先,通过单击顶部导航栏中的汉堡菜单导航到管理区域,然后从下拉列表中选择管理:

从左侧导航栏中选择设置:

您将被带到 GitLab 实例的全局设置。在这里,您可以调整一些设置,这些设置会影响新用户是否可以注册以及他们的访问级别。

禁用注册

如果您希望完全禁用注册,请滚动到“注册限制”部分并按“展开”以查看选项。

然后取消选中启用注册复选框:

请记住在进行更改后单击“保存更改”按钮。

注册部分现已从 GitLab 登录页面中删除。

按域限制注册

如果您将 GitLab 用作提供与域关联的电子邮件地址的组织的一部分,则可以按域限制注册,而不是完全禁用它们。

在“注册限制”部分,选择“注册时发送确认电子邮件”框,这将允许用户只有在确认电子邮件后才能登录。

接下来,将您的域添加到用于注册的白名单域框,每行一个域。您可以使用星号“*”来指定通配符域:

完成后,单击保存更改按钮。

注册部分现已从 GitLab 登录页面中删除。

限制项目创建

默认情况下,新用户最多可以创建 10 个项目。如果您希望允许外部新用户查看和参与,但希望限制他们创建新项目的权限,您可以在“帐户和限制设置”部分执行此操作。

在内部,您可以将 Default projects limit 更改为 0 以完全禁止新用户创建项目:

新用户仍然可以手动添加到项目中,并可以访问其他用户创建的内部或公共项目。

更新后,请记住单击“保存更改”按钮。

新用户现在可以创建帐户,但无法创建项目。

更新 Let's Encrypt 证书

默认情况下,GitLab 有一个计划任务设置为每四天午夜后更新 Let's Encrypt 证书,具体分钟数基于您的 external_url。您可以在 /etc/gitlab/gitlab.rb 文件中修改这些设置。

例如,如果您想每 7 天的 12:30 更新一次,您可以将其配置为这样做。首先,导航到配置文件:

  1. sudo nano /etc/gitlab/gitlab.rb

然后,在文件中找到以下行并删除 # 并将其更新为以下内容:

...
################################################################################
# Let's Encrypt integration
################################################################################
# letsencrypt['enable'] = nil
letsencrypt['contact_emails'] = ['sammy@digitalocean'] # This should be an array of email addresses to add as contacts
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# See http://docs.gitlab.com/omnibus/settings/ssl.html#automatic-renewal for more on these settings
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
...

您还可以通过将 letsencrypt[auto_renew] 设置为 false 来禁用自动续订:

...
letsencrypt['auto_renew'] = false
...

有了自动续订,您无需担心服务中断。

结论

您现在有一个运行的 GitLab 实例托管在您自己的服务器上。您可以开始导入或创建新项目并为团队配置适当的访问级别。 GitLab 会定期添加功能并更新其平台,因此请务必查看该项目的主页,以了解最新的改进或重要通知。

©2015-2025 艾丽卡 support@alaica.com