GitLab 是一个开源平台,提供了强大而功能丰富的解决方案,主要用于管理repositories,issues,CI/CD pipelines 等等。

本指南将引导您完成在 Ubuntu 22.04 或 20.04 上安装 GitLab 的过程。GItlab 有企业版(GItlab EE) 和社区版 (GItlab CE),在这篇文章中,我们将介绍社区版。

必备条件

  • A virtual or dedicated server running Ubuntu 22.04 or 20.04 with SSH access.
  • Static Hostname ( gitlab.linuxtechi.net)
  • Sudo User with admin rights
  • 2 GB RAM or more
  • 2 vCPUs or more
  • Internet Connectivity

(1) 更新系统包

将所有现有包升级到最新版本

$ sudo apt update
$ sudo apt upgrade -y

重启系统

$ sudo reboot.

(2) 安装依赖

GitLab 需要一些依赖项才能正常工作,使用以下命令安装它们

$ sudo apt install -y curl openssh-server ca-certificates postfix

在 postfix 邮件服务器安装过程中,将出现一个配置窗口。选择 Internet Site 并输入服务器的hostname 作为邮件服务器名称,这将允许 GitLab 发送电子邮件通知。

Choose-Internet-Site-Postfix-Gitlab-Installation-Ubuntu

选择 Internet Site ,然后选择 OK

System-Hostname-Postfix-Gitlab-Ubuntu

检查系统 hostname,然后选择 OK

(3) 添加 GitLab Apt Repository

运行以下 curl 命令,添加 GitLab 存储库。它会自动检测你的 Ubuntu 版本,并设置相应的存储库。

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

Add-GitLab-CE-Apt-Repository-Ubuntu

(4) 安装 Gitlab

运行下面的命令,把 EXTERNAL_URL 替换为你服务器的 hostname,将在你的 ubuntu 系统上自动安装和配置 gitlab-ce

$ sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce

Apt-Install-Gitlab-ce-Ubuntu

上面的命令成功执行后,输出如下所示

Gitlab-Successful-Installlation-Message-Ubuntu

上面的输出证实了 GitLab 已成功安装。Gitlab Web 界面的用户名是 root,密码存储在 /etc/gitlab/prinity_root_password

注意: 如果您的 ubuntu 系统上启用了操作系统防火墙,那么允许 80 和 443 端口。

$ sudo ufw allow http
$ sudo ufw allow https

(5) 访问 GitLab Web 界面

安装并配置 GitLab 后,打开 web 浏览器并输入服务器的 IP 地址或 hostname

http://<Server-IP-Address-or-Hostname>
  • User Name: root
  • Password : <<Get Password from /etc/gitlab/initial_root_password>>

GitLab-Login-Page-Post-Installation-Ubuntu

点击 Sign in 登录

GitLab-Web-Interface-Ubuntu

到目前为止,我们的 GitLab 服务器正在使用 http (80) 协议,如果你想为你的 GitLab 启用 https,那么参考下面的步骤。

(6) 为 GitLab Web 设置 HTTPS

为了增加安全性,您可以使用自签名证书或 Let s Encrypt 为您的 GitLab 实例配置 HTTPS。我们只能对互联网上有 A 记录的公共领域使用 Let’s encrypt。但是在我们的案例中,我们使用的是私有域,所以我们将使用自签名证书来保护 GitLab。

创建以下文件夹,并使用 openssl 命令生成自签名证书

$ sudo mkdir -p /etc/gitlab/ssl
$ sudo chmod 755 /etc/gitlab/ssl

使用以下 openssl 命令生成私钥

$ sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key 2048

使用下面的命令创建 CSR

$ sudo openssl req -new -key /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.csr

Generate-CSR-Self-Sign-Cert-Gitlab

从密钥中删除 Passphrase,依次执行以下命令

$ sudo cp -v /etc/gitlab/ssl/gitlab.linuxtechi.net.{key,original}
$ sudo openssl rsa -in /etc/gitlab/ssl/gitlab.linuxtechi.net.original -out /etc/gitlab/ssl/gitlab.linuxtechi.net.key
$ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.original

创建证书文件

$ sudo openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitlab.linuxtechi.net.csr -signkey /etc/gitlab/ssl/gitlab.linuxtechi.net.key -out /etc/gitlab/ssl/gitlab.linuxtechi.net.crt

删除 CSR 文件

$ sudo rm -v /etc/gitlab/ssl/gitlab.linuxtechi.net.csr

设置密钥和证书文件的权限

$ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.key
$ sudo chmod 600 /etc/gitlab/ssl/gitlab.linuxtechi.net.crt

编辑/etc/gitlab/gitlab.rb文件, 添加配置 external_url 如下

$ sudo vi /etc/gitlab/gitlab.rb
----------------------------------------------------------
external_url 'https://gitlab.linuxtechi.net'
----------------------------------------------------------

保存并退出该文件,使用如下命令重新配置 gitlab

$ sudo gitlab-ctl reconfigure

Gitlab-reconfigured-Ubuntu

命令成功执行后,您的 gitlab 可以通过 HTTPS 协议访问。

当您第一次访问它时,它会提示您的连接不安全,请单击 Accept the Risk and Continue

Gitlab-Web-Interface-over-Https-Ubuntu

我的开源项目

酷瓜云课堂-开源知识付费解决方案


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。