Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何在Ubuntu 18.04上安装和配置GitLab

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

原创
作者头像
你在哪里
修改于 2018-09-29 09:07:51
修改于 2018-09-29 09:07:51
14.5K00
代码可运行
举报
运行总次数:0
代码可运行

介绍

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

GitLab项目使用简单的安装机制在您自己的硬件上设置GitLab实例变得相对简单。在本指南中,我们将介绍如何在Ubuntu 18.04服务器上安装和配置GitLab。

准备

在本教程中,您将需要:

  • 一个Ubuntu 18.04服务器,一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

发布的GitLab硬件要求建议使用服务器:

  • 2个核心
  • 8GB的RAM

虽然您可以通过替换一些交换空间来获取RAM,但不建议这样做。对于本指南,我们假设您至少拥有上述资源。

  • 域名指向您的服务器。

第1步 - 安装依赖项

在我们自己安装GitLab之前,安装一些在安装过程中持续使用的软件非常重要。幸运的是,可以从Ubuntu的默认包存储库轻松安装所有必需的软件。

由于这是我们第一次apt在此会话期间使用,我们可以刷新本地包索引,然后键入以下内容来安装依赖项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

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

第2步 - 安装GitLab

现在依赖关系到位,我们可以自己安装GitLab。这是一个简单的过程,它利用安装脚本使用GitLab存储库配置系统。

进入/tmp目录然后下载安装脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

您可以随意检查下载的脚本,以确保您对所需的操作感到满意。您还可以在此处找到该脚本的托管版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
less /tmp/script.deb.sh

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo bash /tmp/script.deb.sh

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install gitlab-ce

这将在您的系统上安装必要的组件。

第3步 - 调整防火墙规则

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

键入以下内容查看活动防火墙的当前状态:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ufw status
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Status: active
​
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)

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

/etc/services文件中提供了HTTP和HTTPS的端口映射协议,因此我们可以按名称允许该流量。如果您尚未启用OpenSSH流量,则现在也应该允许该流量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

再次检查ufw status; 您应该看到配置为至少这两个服务的访问权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ufw status
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/gitlab/gitlab.rb

顶部附近是external_url配置线。更新它以匹配您的域。更改httphttps以便GitLab会自动将用户重定向到受Let's加密证书保护的站点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

接下来,查找letsencrypt['contact_emails']设置。此设置定义了一个电子邮件地址列表,如果您的域存在问题,Let的加密项目可以用来与您联系。取消注释并填写此内容是一个好主意,以便您知道任何问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
letsencrypt['contact_emails'] = ['sammy@example.com']

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo gitlab-ctl reconfigure

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

步骤5 - 通过Web界面执行初始配置

在允许GitLab运行和访问的情况下,我们可以通过Web界面执行应用程序的一些初始配置。

首次登录

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://example.com

在您第一次访问时,您应该看到为管理帐户设置密码的初始提示:

在初始密码提示中,提供并确认管理帐户的安全密码。完成后单击“ 更改密码”按钮。

您将被重定向到传统的GitLab登录页面:

在这里,您可以使用刚刚设置的密码登录。凭证是:

  • 用户名:root
  • 密码:[您设置的密码]

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

您现在可以进行一些简单的更改,以便按照您的方式设置GitLab。

调整配置文件设置

在全新安装后您应该做的第一件事就是让您的个人资料更好。GitLab选择了一些合理的默认值,但是一旦开始使用该软件,这些默认值通常都不合适。

要进行必要的修改,请单击界面右上角的用户图标。在显示的下拉菜单中,选择设置

您将进入设置的“ 个人资料”部分:

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

完成后,单击底部的“ 更新配置文件设置”按钮:

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

更改您的帐户名称

接下来,单击左侧菜单栏中的Account项:

在这里,您可以找到您的私有API令牌或配置双因素身份验证。但是,我们目前感兴趣的功能是更改用户名部分。

默认情况下,第一个管理帐户的名称为root。由于这是一个已知的帐户名称,因此将其更改为其他名称会更安全。您仍将拥有管理权限; 唯一会改变的是名字。用您首选的用户名替换root

单击“ 更新用户名”按钮进行更改:

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

在您的帐户中添加SSH密钥

在大多数情况下,您需要使用带有Git的SSH密钥与GitLab项目进行交互。为此,您需要将SSH公钥添加到GitLab帐户。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat ~/.ssh/id_rsa.pub

您应该看到一大块文本,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

复制此文本并返回GitLab Web界面中的“配置文件设置”页面。

相反,如果您收到类似这样的消息,则表示您的计算机上尚未配置SSH密钥对:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

如果是这种情况,您可以通过键入以下内容来创建SSH密钥对:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh-keygen

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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]-----+

完成此操作后,您可以通过键入以下内容显示上述公钥:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

复制显示的文本块,然后返回到GitLab Web界面中的配置文件设置

单击左侧菜单中的SSH Keys项:

在提供的空间中粘贴从本地计算机复制的公钥。为其指定一个描述性标题,然后单击“ 添加”键按钮:

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

第6步 - 限制或禁用公共注册(可选)

您可能已经注意到,当您访问GitLab实例的登录页面时,任何人都可以注册一个帐户。如果您希望托管公共项目,这可能是您想要的。然而,很多时候,需要更多限制性设置。

首先,点击页面顶部主菜单栏中的扳手图标,进入管理区域:

在随后的页面上,您可以看到整个GitLab实例的概述。要调整设置,请单击左侧菜单底部的“设置”项:

您将进入GitLab实例的全局设置。在这里,您可以调整一些影响新用户是否可以注册的设置及其访问级别。

禁用注册

如果您希望完全禁用注册(您仍然可以为新用户手动创建帐户),请向下滚动到“ 注册限制”部分。

取消选中已启用注册复选框:

向下滚动到底部,然后单击“ 保存更改”按钮:

现在应该从GitLab登录页面中删除注册部分。

通过域限制注册

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

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

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

向下滚动到底部,然后单击“ 保存更改”按钮:

现在应该从GitLab登录页面中删除注册部分。

限制项目创建

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

在内部,您可以将默认项目限制更改为0以完全禁用新用户创建项目:

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

向下滚动到底部,然后单击“ 保存更改”按钮:

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

更新让我们加密证书

默认情况下,GitLab的计划任务设置为每隔四天午夜后更新Let的加密证书,确切的分钟基于您的external_url。您可以在/etc/gitlab/gitlab.rb文件中修改这些设置。例如,如果您想在12:30每7天更新一次,可以按如下方式进行配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

您还可以通过添加其他设置到/etc/gitlab/gitlab.rb来禁用自动续订:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
letsencrypt['auto_renew'] = false

通过自动续订,您无需担心服务中断。

结论

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

更多Linux教程请前往腾讯云+社区学习更多知识。

参考文献:《How To Install and Configure GitLab on Ubuntu 18.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Ubuntu 16.04上安装和配置GitLab
GitLab CE或Community Edition是一个开源应用程序,主要用于托管Git存储库,还有其他与开发相关的功能,如问题跟踪。它旨在使用你自己的基础架构进行托管,并且可以灵活地部署为开发团队的内部存储库,公开作为与用户交互的方式,甚至可以作为贡献者托管自己项目的方式。
楠宝宝
2018/08/03
2.1K0
如何在Ubuntu 16.04上安装和配置GitLab
简单5步教你入门CVM Ubuntu系统
当您第一次创建新的Ubuntu服务器时,您应该尽早做一些配置,作为基本设置的一部分。这将提高服务器的安全性和可用性,并为后续操作奠定坚实的基础。
楠宝宝
2018/07/17
2.8K1
创建自己的https Gitlab 服务器
GitLab是唯一一个以单个应用程序交付的 DevOps 平台,在全球各类分析报告中赢得关注,广泛覆盖。 GitLab是全球成千上万的社区贡献者协作的成果,集合了全球十万多家GitLab客户的真实反馈。 GitLab用户基于在现实中遇到的挑战,在社区贡献代码、文档、翻译、设计和产品创意,这使得GitLab解决方案在用途和价值上不断迭代。 GitLab 在 2011 年 10 月 8 进行了第一次代码提交,发展至今已经整整十年。
为为为什么
2022/08/06
1.8K0
创建自己的https Gitlab 服务器
使用Debian 9进行初始服务器设置
当您第一次创建新的Debian 9服务器时,您应该尽早采取一些配置步骤作为基本设置的一部分。这将提高服务器的安全性和可用性,并为后续操作奠定坚实的基础。
八十岁的背影
2018/10/29
5.9K0
Debian 环境下安装配置 Gitlab
GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
Debian中国
2018/12/20
1.8K0
如何在Ubuntu 18.04上安装Webmin
Webmin是适用于任何Linux机器的基于Web的控制面板,可让您通过基于Web的现代界面管理服务器。使用Webmin,您可以动态更改常用软件包的设置,包括Web服务器和数据库,以及管理用户,组和软件包。
好烟
2018/08/01
2.1K0
如何在Ubuntu 18.04上安装Webmin
CentOS7上安装和配置GitLab
GitLab 是一个基于 Web 的开源Git 存储库管理器,用Ruby编写, 包括 wiki、问题管理、代码审查、监控以及持续集成和部署。它使开发人员能够构建、部署和运行他们的应用程序。 GitLab 提供三个不同版本,社区版 (CE)、企业版 (EE) 和 GitLab 托管版本。 先决条件 本教程假设你安装了全新的 CentOS 7。 根据GitLab 要求页面 ,服务器的最低的配置 至少 4GB 的RAM 内存 。 2 个 CPU 内核。 至少 2GB 的交换空间 。 (可选)指向服务器 IP 地址
入门笔记
2022/06/02
1.5K0
CentOS7上安装和配置GitLab
如何在Ubuntu 16.04上安装和配置Postfix
Postfix是一种流行的开源邮件传输代理(MTA),可用于在Linux系统上路由和传递电子邮件。据估计,互联网上约有25%的公共邮件服务器运行Postfix。
不会飞的蝴蝶
2018/09/28
3.5K0
如何在Ubuntu 18.04上安装和保护phpMyAdmin
phpMyAdmin让用户可以通过Web界面与MySQL进行交互。在本教程中,我们将讨论如何安装和保护phpMyAdmin,以便您可以安全地使用它来管理Ubuntu 18.04系统上的数据库。
新巴子
2018/07/30
1.5K0
如何在Ubuntu 18.04上安装和保护phpMyAdmin
如何在Debian 9上安装和配置Nextcloud
Nextcloud是ownCloud的一个分支,它是一个文件共享服务器,允许您将个人内容(如文档和图片)存储在集中位置,就像Dropbox一样。与Nextcloud的不同之处在于它的所有功能都是开源的。它还会将敏感数据的控制权和安全性返回给您,从而无需使用第三方云托管服务。
独钓寒江雪_Ly
2018/11/08
4.8K0
Ubuntu 18.04 上安装搭建私有 Git 服务器 Gitea
Gitea是用Go编写的自托管开源git服务器。 这是Gogs的分叉。 Gitea包括存储库文件编辑器,项目问题跟踪,用户管理,通知,内置Wiki等。
星哥玩云
2022/07/28
4K0
Ubuntu 18.04 上安装搭建私有 Git 服务器 Gitea
使用Ubuntu 16.04进行初始服务器设置
当您第一次创建新的Ubuntu 16.04服务器时,您应该尽早采取一些配置步骤作为基本设置的一部分。这将提高服务器的安全性和可用性,并为后续操作奠定坚实的基础。
独钓寒江雪_Ly
2018/10/25
1.7K0
如何在Ubuntu 18.04上安装和配置Postfix
Postfix是一种流行的开源邮件传输代理(MTA),可用于在Linux系统上路由和传递电子邮件。据估计,互联网上约有25%的公共邮件服务器运行Postfix。
朝朝
2018/07/25
3.8K0
如何在Ubuntu 18.04上安装和保护Mosquitto MQTT Messaging Broker
MQTT是一种机器到机器的消息传递协议,旨在为“物联网”设备提供轻量级的发布/订阅通信。它通常用于地理跟踪车队,家庭自动化,环境传感器网络和公用事业规模数据收集。
乌鸦
2018/09/29
8.7K1
Ubuntu 16.04的初始服务器设置
当您第一次创建一个新的Ubuntu 16.04服务器时,有一些配置步骤应该作为基础设置的一部分尽早使用。这将增加服务器的安全性和可用性,并为后续操作提供坚实的基础。 第一步 - 根登录 要登录到您的服
程序员的自我修养
2017/12/20
2.9K0
GitLab安装及使用
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
踏歌行
2020/10/15
7050
GitLab安装及使用
如何在CVM上安装Matrix Synapse
Matrix是分散通信的开放标准。它使用标准化API实时同步的在线消息传递到其他服务器。
苏子晨
2018/07/19
3.8K1
如何在Debian 9上使用Let加密来保护Nginx
我们的加密是一个证书颁发机构(CA),它提供了一种获取和安装免费TLS / SSL证书的简便方法,可以在Web服务器上启用加密的HTTPS。它通过提供软件客户端Certbot简化了流程,该客户端尝试自动化大多数(如果不是全部)所需步骤。目前,获取和安装证书的整个过程在Apache和Nginx上都是完全自动化的。
无敌小笼包
2018/11/05
1.1K0
如何在Ubuntu 18.04上为用户目录设置vsftpd
FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多普通网民希望通过https直接从他们的网络浏览器下载,命令行用户更有可能使用安全协议,如scp或SFTP。
葡萄
2018/08/08
2.8K0
如何在Ubuntu 16.04上为匿名下载设置vsftpd
FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多休闲网民希望直接从他们的网页浏览器用https下载,而且命令行用户更加喜欢使用的安全协议,如scp或SFTP
木纸鸢
2018/10/25
1.7K0
相关推荐
如何在Ubuntu 16.04上安装和配置GitLab
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验