如何在 Ubuntu 16.04 上安装和配置 GitLab
本教程适用于这些操作系统版本
- Ubuntu 18.04(仿生海狸)
- Ubuntu 16.04(Xenial Xerus)
在此页
- 第 1 步 - 安装所需的 Ubuntu 软件包
- 第 2 步 - 安装 Gitlab
- 第 3 步 - 配置 Gitlab 主 URL
- 第 4 步 - 生成 SSL Lets 加密和 DHPARAM 证书
- 第 5 步 - 为 GitLab 启用 Nginx HTTPS
- 第 6 步 - 配置 UFW 防火墙
- 第 7 步 - Gitlab 安装后
- 第 8 步 - 测试
- 偏好
GitLab 是一个基于 Rails 的开源 GIT 存储库管理器,由 GitLab Inc 开发。它是一个基于 Web 的 GIT 存储库管理器,允许您的团队处理代码、跟踪错误和功能请求以及测试和部署应用程序。 GitLab 提供 wiki、问题跟踪、代码审查、活动提要和合并管理等功能。它能够托管多个项目。
GitLab 有四个版本:
- Gitlab CE(社区版)- 自托管,免费,并得到社区论坛的支持。
- Gitlab EE(企业版)- 自托管的付费应用,具有附加功能。
- GitLab.com - SaaS,免费。
- GitLab.io - 由 GitLab Inc. 管理的私有 GitLab 实例。
在本教程中,我将逐步向您展示如何在您自己的 Ubuntu 16.04 Xenial Xerus 服务器上安装 GitLab CE(社区版)。在本教程中,我将使用 GitLab 提供的综合包以便于安装。
我们将要做什么:
- 安装包
- 安装 GitLab
- 配置 GitLab 网址
- 生成 SSL Lets 加密和 DHPARAM 证书
- 为 GitLab 启用 Nginx HTTPS
- 配置 UFW 防火墙
- 执行 GitLab 安装
- 测试
先决条件
- Ubuntu 16.04 服务器 - 64 位
- 最小内存 2GB
- 根权限
第 1 步 - 安装所需的 Ubuntu 软件包
第一步是安装 GitLab 安装所需的包。请以 root 用户身份登录服务器并更新 Ubuntu 存储库。
ssh
apt-get update
现在安装包,包括用于下载 GitLab 存储库的 curl、用于 SMTP 配置的 ca 证书和 postfix。
使用下面的 apt 命令安装所有包。
sudo apt install curl openssh-server ca-certificates postfix
在 postfix 安装过程中,系统会提示您进行配置,选择 Internet Site。

然后输入用于发送电子邮件的服务器域名。

第 2 步 - 安装 Gitlab
在此步骤中,我们将使用综合包安装 GitLab。 Omnibus 将安装在您的服务器上运行 GitLab 所需的所有包、服务和工具。
使用 curl 命令添加 GitLab 存储库。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

然后使用 apt 命令安装 GitLab CE Community Edition。
sudo apt install gitlab-ce
等待服务器下载并安装 gitlab 包。安装完成后,您将看到如下结果。

第 3 步 - 配置 Gitlab 主 URL
现在我们应该配置将用于访问我们的 GitLab 服务器的 URL。我将使用域名 gitlab.hakase-labs.co 作为这里的 GitLab URL(请选择您自己的域名)并且我将使用 HTTPS 来保证用户访问安全。
GitLab的主要配置在/etc/gitlab目录下。转到该目录并使用 vim 编辑配置文件 gitlab.rb。
cd /etc/gitlab
vim gitlab.rb
在 GitLab 配置中,转到第 9 行 external_url 并将 URL 更改为您的 URL gitlab.hakase-labs.co。
external_url 'http://gitlab.hakase-labs.co'
保存文件并退出编辑器。下一步将为 GitLab 启用 HTTPS。

第 4 步 - 生成 SSL Lets 加密和 DHPARAM 证书
在此步骤中,我们将为 GitLab 启用 HTTPS 协议。我将使用 lets encrypt 为 gitlab 域名提供的免费 SSL 证书。
使用 apt 命令安装 letsencrypt 命令行工具。
sudo apt install letsencrypt -y
安装完成后,使用以下命令为 gitlab 域名生成新证书。
letsencrypt certonly -d gitlab.hakase-labs.co
输入您的 SSL 证书续订通知的电子邮件地址。

为 Lets Encrypt 服务条款选择同意并等待。

完成后,您将看到下面的结果。

已经为 GitLab 生成了新的 Lets encrypt 证书文件。您可以在 /etc/letsencrypt/live 目录中找到证书文件。
接下来,在 GitLab 配置目录下创建一个名为 ssl 的新目录。
mkdir -p /etc/gitlab/ssl/
并在ssl目录下用openssl命令生成dhparam pem文件。
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048

现在将证书文件的权限更改为 600。
chmod 600 /etc/gitlab/ssl/*
GitLab 的 SSL Lets 加密证书和 DHPARAM 证书已生成。
第 5 步 - 为 GitLab 启用 Nginx HTTPS
在这个阶段,我们在 /etc/letsencrypt/live 目录中有来自 Letsencrypt 的证书文件,在 /etc/gitlab/ssl 目录中有 DHPARAM 证书。
在此步骤中,我们将配置 GitLab 以使用我们的证书文件。进入 /etc/gitlab 目录,然后用 vim 编辑 gitlab.rb 配置。
cd /etc/gitlab/
vim gitlab.rb
将外部 URL 更改为使用 https 而不是 http。
external_url 'https://gitlab.hakase-labs.co'
然后为 gitlab 添加新的 SSL 配置,如下所示。
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
笔记:
我们将在 gitlab 中启用 HTTP 到 HTTPS 重定向。
保存文件并退出 vim。

现在我们需要以 root 身份运行下面的命令来应用新的 gitlab 配置。
sudo gitlab-ctl reconfigure
您将看到如下结果。

GitLab 的 HTTPS 配置已经完成。
第 6 步 - 配置 UFW 防火墙
在此步骤中,我们将启用 UFW 防火墙。它已经安装在系统上,我们只需要启动服务。我们将在 UFW 防火墙后面运行 GitLab,因此我们必须打开 HTTP 和 HTTPS 端口。
使用以下命令启用 UFW 防火墙。
ufw enable
该命令将运行 ufw 服务并将其添加为在引导时自动启动。
接下来,打开新端口 ssh、HTTP 和 HTTPS。
ufw allow ssh
ufw allow http
ufw allow https

现在检查防火墙状态并确保 ssh、http 和 https 端口在列表中。
ufw status
已配置 HTTP 和 HTTPS 端口。

第 7 步 - Gitlab 后安装
GitLab 已安装到系统中,并在 UFW 防火墙后面运行。在此步骤中,我们将进行一些快速设置,例如更改密码、用户名和配置文件设置。
打开您的网络浏览器并输入 gitlab URL,我的是 gitlab.hakase-labs.co。您将被重定向到 HTTPS 连接。
重置 GitLab root 密码

现在使用 root 用户和密码登录 GitLab。

更改用户名和个人资料
在右上角,单击您的个人资料并选择个人资料设置。

在配置文件选项卡上,将默认名称替换为您的姓名,将电子邮件替换为您的电子邮件地址。现在单击更新配置文件。

单击选项卡帐户,将用户名更改为您自己的用户名。然后单击更新用户名。

添加 SSH 密钥
确保你已经有一个密钥,如果你没有 SSH 密钥,你可以用下面的命令生成它。
ssh-keygen
你会得到两个密钥,id_rsa 你的私钥和 id_rsa.pub 你的公钥。

接下来,单击选项卡 SSH 密钥,复制 id_rsa.pub 文件的内容并粘贴到密钥框中,然后单击添加密钥。

添加了新的 SSH 密钥。
注册限制和限制设置
单击管理区域图标,然后单击齿轮图标并选择设置。

在帐户和限制设置上 - 您可以配置每个用户的最大项目数和注册限制,您可以将电子邮件的域名添加到白名单框。
如果一切都已完成,请滚动到底部并单击“保存”。

GitLab 的基本配置已经完成。
第 8 步 - 测试
最后,我们将进行一些测试以确保我们的 GitLab 系统正常工作。
创建新项目
单击顶部的加号图标以创建新的项目存储库。输入您的项目名称、描述,并设置项目的可见性设置。然后单击创建项目按钮。

新项目已创建。
测试第一次提交和推送
创建 howtoforge 项目后,您将被重定向到项目页面。现在开始向存储库添加新内容。确保 Git 安装在您的计算机上,并使用以下命令为 git 设置全局用户名和电子邮件。
git config --global user.name "hakase"
git config --global user.email ""
克隆存储库并添加 README.md 文件。
git clone https:///hakase/howtoforge.git
cd howtoforge/
vim README.md
系统将要求您提供 hakase 用户密码。请输入您第一次访问 GitLab 时使用的相同密码。
向 howtoforge 存储库提交一个新文件。
git add .
git commit -m 'Add README.md file by hakase-labs'
接下来,将更改推送到 GitLab 服务器上的存储库。
git push origin master
输入您的密码,然后按 Enter 键继续。您将看到如下结果。

现在从您的 Web 浏览器打开 howtoforge 项目,您将看到新的 README.md 文件已添加到存储库中。

Gitlab 已安装在 Ubuntu 16.04 Xenial Xerus 服务器上。
喜好
- <李>
- https://docs.gitlab.com/ce/