在 Microsoft Azure 上安装 GitLab
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed
对于 Microsoft Azure 商业云用户,GitLab 在 Azure Marketplace 中提供了预配置的解决方案。 本教程介绍如何在单个虚拟机(VM)中安装 GitLab 企业版。
先决条件
您需要一个 Azure 账户。使用以下方法获取账户:
- 如果您或您的公司已有订阅账户,请使用该账户。 如果没有,您可以 创建免费账户,该账户将为您提供 200 美元的信用额度,可探索 Azure 30 天。更多信息请参见 Azure 免费账户。
- 如果您有 MSDN 订阅,可以激活 Azure 订阅者福利。您的 MSDN 订阅每月为您提供持续的 Azure 信用额度,因此您可以使用这些信用额度试用 GitLab。
部署和配置 GitLab
由于 GitLab 已在预配置镜像中安装,您只需创建一个新的虚拟机:
- 访问市场中的 GitLab 解决方案
- 选择 立即获取,在 Azure 中创建此应用 窗口将打开。 选择 继续。
- 从 Azure 门户中选择以下选项之一:
- 选择 创建 从头开始创建虚拟机。
- 选择 使用预设配置开始 以使用一些 预配置的选项。您可以随时修改这些配置。
为便于本指南,我们从头创建虚拟机,因此 选择 创建。
请注意,只要您的虚拟机处于活动状态(称为"已分配"),Azure 就会产生计算费用, 即使您正在使用免费试用信用额度。 如何正确关闭 Azure 虚拟机以节省费用。 请查看 Azure 定价计算器 了解资源成本。
创建虚拟机后,使用以下各部分中的信息进行配置。
配置"基本"选项卡
您需要配置的第一项是底层虚拟机的基本设置:
- 选择订阅模型和资源组(如果不存在则创建新组)。
- 为虚拟机输入名称,例如
GitLab。 - 选择一个区域。
- 在 可用性选项 中,选择 可用性区域 并将其设置为
1。 有关 可用性区域 的更多信息。 - 确保所选镜像设置为 GitLab - Gen1。
- 根据 硬件要求 选择虚拟机大小。
由于运行最多 500 用户的 GitLab 环境的最低系统要求
已由
D4s_v3大小覆盖,请选择该选项。 - 将身份验证类型设置为 SSH 公钥。
- 输入用户名或保留自动创建的用户名。这是 Azure 用于通过 SSH 连接到虚拟机的用户。默认情况下, 该用户具有 root 访问权限。
- 确定是提供自己的 SSH 密钥还是让 Azure 为您创建一个。 有关如何设置 SSH 公钥的更多信息,请参见 SSH。
检查您输入的设置,然后继续到"磁盘"选项卡。
配置"磁盘"选项卡
对于磁盘:
- 对于操作系统磁盘类型,选择 高级 SSD。
- 选择默认加密。
阅读有关 Azure 提供的磁盘类型 的更多信息。
检查您的设置,然后继续到"网络"选项卡。
配置"网络"选项卡
使用此选项卡通过配置网络接口卡(NIC)设置来定义虚拟机的网络连接。 您可以保留默认设置。
Azure 默认创建一个安全组,虚拟机被分配到该组。 市场中的 GitLab 镜像默认开放以下端口:
| 端口 | 描述 |
|---|---|
| 80 | 使虚拟机能够响应 HTTP 请求,允许公共访问。 |
| 443 | 使虚拟机能够响应 HTTPS 请求,允许公共访问。 |
| 22 | 使虚拟机能够响应 SSH 连接请求,允许通过身份验证进行远程终端会话的公共访问。 |
如果您想要更改端口或添加任何规则,可以在虚拟机创建后, 在虚拟机仪表板中,通过选择左侧边栏中的网络设置来完成。
配置"管理"选项卡
使用此选项卡配置虚拟机的监控和管理选项。 您不需要更改默认设置。
配置"高级"选项卡
使用此选项卡通过虚拟机扩展或 cloud-init 添加额外的配置、代理、脚本
或应用程序。您不需要更改默认设置。
配置"标记"选项卡
使用此选项卡添加可帮助您对资源进行分类的名称/值对。 您不需要更改默认设置。
检查并创建虚拟机
最后一个选项卡向您展示所有已选择的选项, 您可以在此处查看和修改之前步骤中的选择。 Azure 在后台运行验证测试, 如果您提供了所有必需的设置,就可以 创建虚拟机。
选择 创建 后,如果您选择让 Azure 为您创建 SSH 密钥对, 会出现提示以下载私有 SSH 密钥。请下载该密钥,因为它是 通过 SSH 连接到虚拟机所必需的。
下载密钥后,部署开始。
完成部署
此时,Azure 开始部署您的新虚拟机。部署过程 需要几分钟才能完成。完成后,新的虚拟机及其相关资源 将显示在 Azure 仪表板上。 选择 转到资源 访问虚拟机的仪表板。
GitLab 现在已部署并可以使用。但是, 在此之前,您需要设置域名并配置 GitLab 使用它。
设置域名
虚拟机有一个公共 IP 地址(默认为静态),但 Azure 允许您 为虚拟机分配描述性 DNS 名称:
- 从虚拟机仪表板中,在 DNS 名称 下选择 配置。
- 在 DNS 名称标签 字段中为您的实例输入描述性 DNS 名称,
例如
gitlab-prod。这使得虚拟机可以通过gitlab-prod.eastus.cloudapp.azure.com访问。 - 选择 保存。
最终,大多数用户希望使用自己的域名。为此,您需要添加一个 DNS A 记录
指向您 Azure 虚拟机的公共 IP 地址。
您可以使用 Azure DNS
或一些 其他注册商。
更改 GitLab 外部 URL
GitLab 在其配置文件中使用 external_url 来设置域名。
如果您不进行此设置,当您访问 Azure 友好名称时,浏览器会
将您重定向到公共 IP。
要设置 GitLab 外部 URL:
-
通过 SSH 连接到 GitLab,从虚拟机仪表板中转到 设置 > 连接, 并按照说明操作。记住使用您在 创建虚拟机 时 指定的用户名和 SSH 密钥登录。 Azure VM 域名是您 之前设置 的。如果您没有为虚拟机设置域名, 可以使用其 IP 地址代替。
在我们的示例中:
ssh -i <私有密钥路径> gitlab-azure@gitlab-prod.eastus.cloudapp.azure.com如果您需要重置凭据,请阅读 如何重置 Azure VM 用户的 SSH 凭据。
-
使用您的编辑器打开
/etc/gitlab/gitlab.rb。 -
找到
external_url并替换为您自己的域名。为便于 本示例,使用 Azure 设置的默认域名。 在 URL 中使用https会自动启用 Let’s Encrypt,并默认设置 HTTPS:external_url 'https://gitlab-prod.eastus.cloudapp.azure.com' -
找到以下设置并将其注释掉,以便 GitLab 不会 获取错误的证书:
# nginx['redirect_http_to_https'] = true # nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt" # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key" -
重新配置 GitLab 以使更改生效。每次对
/etc/gitlab/gitlab.rb进行更改后, 运行以下命令:sudo gitlab-ctl reconfigure -
为防止域名在 重启后重置, 重命名 Bitnami 使用的工具:
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 默认创建一个管理员用户。 凭据是:
- 用户名:
root - 密码:密码是自动创建的,有 两种查找方法。
登录后,请立即 更改密码。
维护您的 GitLab 实例
保持您的 GitLab 环境更新很重要。GitLab 团队不断进行 改进,偶尔您可能需要出于安全原因进行更新。在需要更新 GitLab 时, 使用本节中的信息。
检查当前版本
要确定您当前运行的 GitLab 版本:
- 在左侧边栏底部,选择 Admin。
- 选择 概览 > 仪表板。
- 在 组件 表格中查找版本。
如果有包含一个或多个 安全修复程序的新版本可用,GitLab 会显示 立即更新 通知消息,鼓励您 更新。
更新 GitLab
要将 GitLab 更新到最新版本:
-
通过 SSH 连接到虚拟机。
-
更新 GitLab:
sudo apt update sudo apt install gitlab-ee此命令将 GitLab及其相关组件更新到最新版本, 完成可能需要一些时间。在此期间,终端会显示 在您的终端中完成的各种更新任务。
如果您收到类似
E: The repository 'https://packages.gitlab.com/gitlab/gitlab-ee/debian buster InRelease' is not signed.的错误, 请参见 故障排除部分。 -
更新过程完成后,会出现类似 以下的消息:
升级完成!如果您的 GitLab 服务器行为异常,请尝试在执行其他操作前运行 sudo gitlab-ctl restart
在浏览器中刷新您的 GitLab 实例并转到 Admin 区域。您现在应该有一个 最新的 GitLab 实例。
下一步和进一步配置
现在您有了一个可用的 GitLab 实例,请遵循 下一步 了解您的新安装还可以做什么。
故障排除
本节描述您可能遇到的常见错误。
更新 GitLab 仓库的 GPG 密钥
这是临时修复,直到 GitLab 镜像使用新的 GPG 密钥更新。
Azure 中的预配置 GitLab 镜像(由 Bitnami 提供)使用 一个在 2020 年 4 月 已弃用 的 GPG 密钥。
如果您尝试更新仓库,系统会返回以下错误:
[ 21.023494] apt-setup[1198]: W: GPG error: https://packages.gitlab.com/gitlab/gitlab-ee/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-ee/debian buster InRelease' is not signed.要解决此问题,获取新的 GPG 密钥:
sudo apt install gpg-agent
curl "https://gitlab-org.gitlab.io/omnibus-gitlab/gitlab_new_gpg.key" \
--output /tmp/omnibus_gitlab_gpg.key
sudo apt-key add /tmp/omnibus_gitlab_gpg.key