在 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 即可:
- 访问市场中极狐GitLab 产品
- 选择 立即获取,然后 在 Azure 中创建此应用 窗口打开。选择 继续。
- 从 Azure 门户中选择以下选项之一:
- 选择 创建 以从头创建 VM。
- 选择 以预设配置开始 以开始使用一些预配置选项。您可以随时修改这些配置。
为了本指南的目的,我们选择从头创建 VM,因此选择 创建。
创建虚拟机后,使用以下部分中的信息对其进行配置。
配置“基本信息”选项卡
需要配置的第一项是底层虚拟机的基本设置:
- 选择订阅模型和资源组(如果不存在则新建一个)。
- 输入 VM 的名称,例如 极狐GitLab。
- 选择区域。
- 在 可用性选项 中,选择 可用性区域 并将其设置为 1。了解更多关于可用性区域的信息。
- 确保所选镜像设置为 极狐GitLab - Gen1。
- 根据硬件要求选择 VM 大小。由于运行最多 500 个用户的极狐GitLab 环境的最低系统要求由 D4s_v3 大小覆盖,因此选择该选项。
- 将身份验证类型设置为 SSH 公钥。
- 输入用户名或保留自动创建的用户名。这是 Azure 用来通过 SSH 连接到 VM 的用户。默认情况下,该用户具有 root 访问权限。
- 确定是提供自己的 SSH 密钥还是让 Azure 为您创建一个。有关如何设置 SSH 公钥的更多信息,请参阅 SSH。
查看输入设置,然后继续到“磁盘”选项卡。
配置磁盘选项卡
对于磁盘:
- 对于 OS 磁盘类型,选择 高级 SSD。
- 选择默认加密。
阅读有关 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 名称:
- 在 VM 仪表板中,在 DNS 名称 下选择 配置。
- 在 DNS 名称标签 字段中输入实例的描述性 DNS 名称,例如 gitlab-prod。这将使 VM 可通过 gitlab-prod.eastus.cloudapp.azure.com 访问。
- 选择 保存。
最终,大多数用户希望使用自己的域名。为此,您需要向域名注册商添加一条 DNS A 记录,该记录指向您的 Azure VM 的公共 IP 地址。您可以使用 Azure DNS 或其他注册商。
修改极狐GitLab 外部 URL
极狐GitLab 在其配置文件中使用 external_url 来设置域名。如果没有设置,当您访问 Azure 友好名称时,浏览器会将您重定向到公共 IP 地址。
要设置极狐GitLab 外部 URL:
-
通过从 VM 仪表板中转到 设置 > 连接 来通过 SSH 连接到极狐GitLab,并按照说明操作。请记住使用您在创建 VM 时指定的用户名和 SSH 密钥登录。Azure VM 域名是您之前设置的域名。如果您没有为 VM 设置域名,可以使用 IP 地址代替。
在我们的示例中:
shellssh -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:
rubyexternal_url 'https://gitlab-prod.eastus.cloudapp.azure.com' -
找到以下设置并将其注释掉,以便极狐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" -
重新配置极狐GitLab 以使更改生效。每次更改 /etc/gitlab/gitlab.rb 后,运行以下命令:
shellsudo gitlab-ctl reconfigure -
为防止域名在重启后重置,重命名 Bitnami 使用的实用程序:
shellsudo 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 版本:
- 在右上角,选择 管理员。
- 在左侧边栏中,选择 概览 > 仪表板。
- 在 组件 表格下找到版本。
如果有包含一个或多个安全修复程序的极狐GitLab 新版本可用,极狐GitLab 会显示 尽快更新 通知消息,鼓励您更新。
更新极狐GitLab
要将极狐GitLab 更新到最新版本:
-
通过 SSH 连接到 VM。
-
更新极狐GitLab:
shellsudo apt update sudo apt install gitlab-ee此命令将极狐GitLab 及其相关组件更新到最新版本,可能需要一些时间才能完成。在此期间,终端会显示各种更新任务正在完成。
如果遇到类似E: The repository 'https://packages.gitlab.com/gitlab/gitlab-jh/debian buster InRelease' is not signed. 的错误,请参阅故障排除部分。
-
更新过程完成后,会显示如下消息:
plaintext升级完成!如果您的极狐GitLab 服务器出现问题,请尝试运行 sudo gitlab-ctl restart 然后再尝试其他操作。
刷新浏览器中的极狐GitLab 实例并转到 管理员 区域。您现在应该拥有一个最新的极狐GitLab 实例。
后续步骤和进一步配置
现在您已经拥有一个可运行的极狐GitLab 实例,请按照后续步骤了解新安装的更多功能。
故障排除
本节介绍您可能遇到的常见错误。
更新极狐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 密钥:
shellsudo 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。更多信息,请阅读包签名。