极狐 GitLab

在 Microsoft Azure 上安装极狐GitLab

Tier: 基础版,专业版,旗舰版

Offering: 私有化部署

对于 Microsoft Azure 商业云的用户,极狐GitLab 在 Azure Marketplace 中提供预配置产品。本教程介绍了如何在单个虚拟机 (VM) 中安装极狐GitLab 企业版。

先决条件#

  • 一个 Azure 账户。使用以下方法之一:
    • 如果您或您的公司已经拥有带有订阅的账户,请使用该账户。
    • 创建一个免费账户,它会为您提供 200 美元的信用额度,供您 30 天探索 Azure。更多信息,请参阅 Azure 免费账户
    • 如果您有 MSDN 订阅,请激活您的 Azure 订阅者权益。您的 MSDN 订阅将每月为您提供重复的 Azure 信用额度。
  • 维护极狐GitLab 实例的管理员访问权限。

部署和配置极狐GitLab#

由于极狐GitLab 已安装在预配置镜像中,您只需创建一个新 VM 即可:

  1. 访问市场中极狐GitLab 产品
  2. 选择 立即获取,然后 在 Azure 中创建此应用 窗口打开。选择 继续
  3. 从 Azure 门户中选择以下选项之一:
    • 选择 创建 以从头创建 VM。
    • 选择 以预设配置开始 以开始使用一些预配置选项。您可以随时修改这些配置。

为了本指南的目的,我们选择从头创建 VM,因此选择 创建

请注意,每当您的 VM 处于活动状态(称为“已分配”)时,Azure 都会产生计算费用,即使您使用的是免费试用信用额度也是如此。[了解如何正确关闭 Azure VM 以节省资金](https://build5nines.com/properly-shutdown-azure-vm-to-save-money/)。请参阅 [Azure 定价计算器](https://azure.microsoft.com/en-us/pricing/calculator/),了解资源可能产生的费用。

创建虚拟机后,使用以下部分中的信息对其进行配置。

配置“基本信息”选项卡#

需要配置的第一项是底层虚拟机的基本设置:

  1. 选择订阅模型和资源组(如果不存在则新建一个)。
  2. 输入 VM 的名称,例如 极狐GitLab
  3. 选择区域。
  4. 可用性选项 中,选择 可用性区域 并将其设置为 1。了解更多关于可用性区域的信息。
  5. 确保所选镜像设置为 极狐GitLab - Gen1
  6. 根据硬件要求选择 VM 大小。由于运行最多 500 个用户的极狐GitLab 环境的最低系统要求由 D4s_v3 大小覆盖,因此选择该选项。
  7. 将身份验证类型设置为 SSH 公钥
  8. 输入用户名或保留自动创建的用户名。这是 Azure 用来通过 SSH 连接到 VM 的用户。默认情况下,该用户具有 root 访问权限。
  9. 确定是提供自己的 SSH 密钥还是让 Azure 为您创建一个。有关如何设置 SSH 公钥的更多信息,请参阅 SSH

查看输入设置,然后继续到“磁盘”选项卡。

配置磁盘选项卡#

对于磁盘:

  1. 对于 OS 磁盘类型,选择 高级 SSD
  2. 选择默认加密。

阅读有关 Azure 提供的磁盘类型的更多信息。

查看您的设置,然后继续到“网络”选项卡。

配置网络选项卡#

使用此选项卡通过配置网络接口卡 (NIC) 设置来定义虚拟机的网络连接。您可以保留其默认设置。

Azure 默认创建一个安全组,并将 VM 分配给它。市场中的极狐GitLab 镜像默认开放以下端口:

端口描述
80使 VM 能够响应 HTTP 请求,允许公共访问。
443使 VM 能够响应 HTTPS 请求,允许公共访问。
22使 VM 能够响应 SSH 连接请求,允许公共访问(带身份验证)远程终端会话。

如果要在 VM 创建后更改端口或添加规则,可以在 VM 仪表板中通过选择左侧边栏中的“网络设置”来完成。

配置管理选项卡#

使用此选项卡为您的 VM 配置监控和管理选项。您无需更改默认设置。

配置高级选项卡#

使用此选项卡通过虚拟机扩展或 云初始化 添加额外的配置、代理、脚本或应用程序。您无需更改默认设置。

配置标签选项卡#

使用此选项卡添加名称/值对,以便对资源进行分类。您无需更改默认设置。

查看并创建虚拟机#

最后一个选项卡向您展示所有所选选项,您可以在其中查看并修改之前步骤中的选择。Azure 在后台运行验证测试,如果您提供了所有必需的设置,就可以创建 VM。

选择 创建 后,如果您选择了让 Azure 为您创建 SSH 密钥对,则会提示下载私有 SSH 密钥。下载该密钥,因为需要通过 SSH 进入 VM。

下载密钥后,部署开始。

完成部署#

此时,Azure 开始部署您的新 VM。部署过程需要几分钟才能完成。完成后,新 VM 及其关联资源会显示在 Azure 仪表板上。选择 转到资源 以访问 VM 的仪表板。

极狐GitLab 现已部署并准备好使用。但是,在此之前,您需要设置域名并配置极狐GitLab 以使用它。

设置域名#

VM 有一个公共 IP 地址(默认为静态),但 Azure 允许您为 VM 分配一个描述性 DNS 名称:

  1. 在 VM 仪表板中,在 DNS 名称 下选择 配置
  2. DNS 名称标签 字段中输入实例的描述性 DNS 名称,例如 gitlab-prod。这将使 VM 可通过 gitlab-prod.eastus.cloudapp.azure.com 访问。
  3. 选择 保存

最终,大多数用户希望使用自己的域名。为此,您需要向域名注册商添加一条 DNS A 记录,该记录指向您的 Azure VM 的公共 IP 地址。您可以使用 Azure DNS其他注册商

修改极狐GitLab 外部 URL#

极狐GitLab 在其配置文件中使用 external_url 来设置域名。如果没有设置,当您访问 Azure 友好名称时,浏览器会将您重定向到公共 IP 地址。

要设置极狐GitLab 外部 URL:

  1. 通过从 VM 仪表板中转到 设置 > 连接 来通过 SSH 连接到极狐GitLab,并按照说明操作。请记住使用您在创建 VM 时指定的用户名和 SSH 密钥登录。Azure VM 域名是您之前设置的域名。如果您没有为 VM 设置域名,可以使用 IP 地址代替。

    在我们的示例中:

    shell
    ssh -i <私有密钥路径> gitlab-azure@gitlab-prod.eastus.cloudapp.azure.com

    如果需要重置凭据,请阅读如何在 Azure VM 上为用户重置 SSH 凭据

  2. 使用编辑器打开 /etc/gitlab/gitlab.rb

  3. 找到 external_url 并将其替换为您自己的域名。为了本示例,使用 Azure 设置的默认域名。在 URL 中使用 https自动启用 Let's Encrypt,并默认设置 HTTPS:

    ruby
    external_url 'https://gitlab-prod.eastus.cloudapp.azure.com'
  4. 找到以下设置并将其注释掉,以便极狐GitLab 不会选择错误的证书:

    ruby
    # nginx['redirect_http_to_https'] = true # nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt" # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
  5. 重新配置极狐GitLab 以使更改生效。每次更改 /etc/gitlab/gitlab.rb 后,运行以下命令:

    shell
    sudo gitlab-ctl reconfigure
  6. 为防止域名在重启后重置,重命名 Bitnami 使用的实用程序:

    shell
    sudo mv /opt/bitnami/apps/gitlab/bnconfig /opt/bitnami/apps/gitlab/bnconfig.bak

现在,您可以在浏览器中使用新的外部 URL 访问极狐GitLab。

首次访问极狐GitLab#

使用之前设置的域名在浏览器中访问您的新极狐GitLab 实例。在本例中,为 https://gitlab-prod.eastus.cloudapp.azure.com

首先出现的是登录页面。极狐GitLab 默认创建一个管理员用户。凭据如下:

登录后,请务必立即更改密码

维护极狐GitLab 实例#

保持您的极狐GitLab 环境为最新非常重要。极狐GitLab 团队不断进行增强,有时您可能需要出于安全原因进行更新。每当需要更新极狐GitLab 时,请使用本节中的信息。

检查当前版本#

要确定当前运行的极狐GitLab 版本:

  1. 在右上角,选择 管理员
  2. 在左侧边栏中,选择 概览 > 仪表板
  3. 组件 表格下找到版本。

如果有包含一个或多个安全修复程序的极狐GitLab 新版本可用,极狐GitLab 会显示 尽快更新 通知消息,鼓励您更新

更新极狐GitLab#

要将极狐GitLab 更新到最新版本:

  1. 通过 SSH 连接到 VM。

  2. 更新极狐GitLab:

    shell
    sudo apt update sudo apt install gitlab-ee

    此命令将极狐GitLab 及其相关组件更新到最新版本,可能需要一些时间才能完成。在此期间,终端会显示各种更新任务正在完成。

    如果遇到类似E: The repository 'https://packages.gitlab.com/gitlab/gitlab-jh/debian buster InRelease' is not signed. 的错误,请参阅故障排除部分

  3. 更新过程完成后,会显示如下消息:

    plaintext
    升级完成!如果您的极狐GitLab 服务器出现问题,请尝试运行 sudo gitlab-ctl restart 然后再尝试其他操作。

刷新浏览器中的极狐GitLab 实例并转到 管理员 区域。您现在应该拥有一个最新的极狐GitLab 实例。

后续步骤和进一步配置#

现在您已经拥有一个可运行的极狐GitLab 实例,请按照后续步骤了解新安装的更多功能。

故障排除#

本节介绍您可能遇到的常见错误。

更新极狐GitLab 仓库的 GPG 密钥#

这是一个临时修复,直到极狐GitLab 镜像更新为新的 GPG 密钥。

Azure 中的预配置极狐GitLab 镜像(由 Bitnami 提供)使用了一个 于 2020 年 4 月弃用的 GPG 密钥

如果您尝试更新仓库,系统会返回以下错误:

plaintext
[ 21.023494] apt-setup[1198]: W: GPG error: https://packages.gitlab.com/gitlab/gitlab-jh/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3F01618A51312F3F [ 21.024033] apt-setup[1198]: E: The repository 'https://packages.gitlab.com/gitlab/gitlab-jh/debian buster InRelease' is not signed.

要解决此问题,请获取新的 GPG 密钥:

shell
sudo apt install gpg-agent sudo curl --fail --silent --show-error \ --output /etc/apt/trusted.gpg.d/gitlab.asc \ --url "https://gitlab-org.gitlab.io/omnibus-gitlab/gitlab_new_gpg.key"

现在您可以更新极狐GitLab。更多信息,请阅读包签名