在 Lightsail 上设置和配置 GitLab CE 实例 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Lightsail 上设置和配置 GitLab CE 实例

在 GitLab CE 实例启动并在 Amazon Lightsail 上运行后,你应该采取以下几个步骤来开始使用:

内容

步骤 1:阅读 Bitnami 文档

阅读 Bitnami 文档,了解如何配置您的 GitLab CE 应用程序。有关更多信息,请参阅 Bitnami 打包的 GitLab CE For。 AWS Cloud

步骤 2:获取访问 GitLab CE 管理区域的默认应用程序密码

完成以下步骤以获取访问 GitLab CE 网站管理区域所需的默认应用程序密码。有关更多信息,请参阅在 Amazon Lightsail 中获取 Bitnami 实例的应用程序用户名和密码

  1. 在您的实例管理页面的 Connect 选项卡下,选择使用连接SSH

    在 Lightsail 控制台SSH中使用 Connect
  2. 连接后,请输入以下命令来获取应用程序密码:

    cat $HOME/bitnami_application_password

    您应该会看到与以下示例类似的响应,其中包含默认应用程序密码:

    Bitnami 默认应用程序密码。

步骤 3:将静态 IP 地址附加到实例

在您首次创建实例时分配给实例的公有 IP 地址会在您每次停止和启动实例时发生更改。您应为实例创建和附加静态 IP 地址,以确保其公有 IP 地址不变。以后,当您在实例中使用注册域名(例如)时,您不必在每次停止和启动实例时都更新域名DNS记录。example.com您可以将静态 IP 附加到实例。

在实例管理页面上的联网选项卡下,选择创建静态 IP附加静态 IP(如果您之前创建了可附加到实例的静态 IP),然后按照页面上的说明操作。有关更多信息,请参阅创建静态 IP 并将其附加到实例

在 Lightsail 控制台中附加静态 IP 地址

将新的静态 IP 地址附加到实例后,您必须完成以下步骤,以使应用程序知道新的静态 IP 地址。

  1. 记下实例的静态 IP 地址。它列在实例管理页面的标题部分。

    Lightsail 实例的公共或静态 IP 地址
  2. 在实例管理页面的 Connect 选项卡下,选择使用连接SSH

    使用 SSH 连接到实例
  3. 连接后,请输入以下命令。Replace(替换) <StaticIP> 使用您的实例的新静态 IP 地址。

    sudo /opt/bitnami/configure_app_domain --domain <StaticIP>

    示例:

    sudo /opt/bitnami/configure_app_domain --domain 203.0.113.0

    您应看到类似于以下示例的响应。现在,实例上的应用程序应该识别到了新的静态 IP 地址。

    域配置工具的结果

步骤 4:登录到 Gitlab CE 网站的管理区域

现在您已经有了默认的用户密码,请导航到您的 GitLab CE 网站的主页,然后登录到管理区域。登录后,您可以开始自定义网站并进行管理更改。有关在 GitLab CE 中可以做什么的更多信息,请参阅本指南后面的 “步骤 7:阅读 GitLab CE 文档并继续配置您的网站” 部分。

  1. 在实例管理页面上的 Connect(连接)选项卡下,记下实例的公有 IP 地址。公有 IP 地址也显示在实例管理页面的标题部分。

    实例的公有 IP 地址
  2. 浏览到实例的公有 IP 地址,例如,转到 http://203.0.113.0

    应该会出现您的 Gitlab CE 网站的主页。您可能还会看到一个浏览器警告,指出您的连接不是私有的、不是安全的或存在安全风险。发生这种情况是因为您的 GitLab CE 实例尚未应用SSL/TLS证书。在浏览器窗口中,选择高级详细信息更多信息以查看可用的选项。然后选择继续连接该网站,即使它不是私有或安全的。

  3. 使用之前在本指南中检索到的默认用户名(root)和默认密码登录。

    此时将显示 Gitlab CE 管理控制面板。

    Gitlab CE 管理控制面板

第 5 步:将您注册域名的流量路由到您的 GitLab CE 网站

要将您的注册域名的流量(例如example.com路由到您的 GitLab CE 网站),您需要在域名的域名系统 (DNS) 中添加一条记录。DNS记录通常由您注册域名的注册商管理和托管。但是,我们建议您将域名DNS记录的管理权转移到 Lightsail,以便您可以使用 Lightsail 控制台对其进行管理。

在 Lightsail 控制台主页的 “网络” 选项卡下,选择 “创建DNS区域”,然后按照页面上的说明进行操作。有关更多信息,请参阅创建DNS区域来管理您的域名DNS记录

在 Lightsail 控制台中创建DNS区域

在您的域名将流量路由到您的实例后,您必须完成以下步骤以让 GitLab CE 知道该域名。

  1. 在实例管理页面的 Connect 选项卡下,选择使用连接SSH

    使用 SSH 连接到实例
  2. 连接后,请输入以下命令。Replace(替换) <DomainName> 使用将流量路由到您的实例的域名。

    sudo /opt/bitnami/configure_app_domain --domain <DomainName>

    示例:

    sudo /opt/bitnami/configure_app_domain --domain example.com

    您应看到类似于以下示例的响应。您的 GitLab CE 实例现在应该知道域名了。

    域配置工具的结果

    如果该命令失败,则您可能使用的是旧版本的 GitLab CE 实例。尝试运行以下命令。Replace(替换) <DomainName> 使用将流量路由到您的实例的域名。

    cd /opt/bitnami/apps/gitlab sudo ./bnconfig --machine_hostname <DomainName>

    运行这些命令后,输入以下命令,以防止 bnconfig 工具在服务器每次重启时自动运行。

    sudo mv bnconfig bnconfig.disabled

接下来,您应该生成并配置一个SSL/TLS证书,以启用您的 GitLab CE 网站的HTTPS连接。有关更多信息,请继续阅读本指南的下一个步骤 6:HTTPS为您的 GitLab CE 网站进行配置部分。

步骤 6:HTTPS为您的 GitLab CE 网站进行配置

完成以下步骤以HTTPS在您的 GitLab CE 网站上进行配置。这些步骤向您展示了如何使用乐高客户端,这是一款用于请求 Let's EncryptSSL/TLS证书的命令行工具。

重要

在开始此过程之前,请确保已将域配置为将流量路由到您的 GitLab CE 实例。否则,SSL/TLS证书验证过程将失败。要为您的注册域名路由流量,您需要在域名中DNS添加一条记录。DNS记录通常由您注册域名的注册商管理和托管。但是,我们建议您将域名DNS记录的管理权转移到 Lightsail,以便您可以使用 Lightsail 控制台对其进行管理。

在 Lightsail 控制台主页的 “域名和DNS选项卡” 下,选择 “创建DNS区域”,然后按照页面上的说明进行操作。有关更多信息,请参阅在 Lightsail 中创建DNS区域来管理您的网域DNS记录

  1. 在您的实例管理页面的 Connect 选项卡下,选择使用连接SSH

    在 Lightsail 控制台SSH中使用 Connect
  2. 连接后,请输入以下命令以将目录更改为临时(/tmp)目录。

    cd /tmp
  3. 输入以下命令,下载 Lego 客户端的最新版本。此命令将下载磁带存档(tar)文件。

    curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
  4. 输入以下命令以从 tar 文件中提取文件。Replace(替换) X.Y.Z 使用您下载的乐高客户端版本。

    tar xf lego_vX.Y.Z_linux_amd64.tar.gz

    示例:

    tar xf lego_v4.7.0_linux_amd64.tar.gz
  5. 输入以下命令以创建您会将 Lego 客户端文件移动到的 /opt/bitnami/letsencrypt 目录。

    sudo mkdir -p /opt/bitnami/letsencrypt
  6. 输入以下命令以将 Lego 客户端文件移动到的您创建的目录中。

    sudo mv lego /opt/bitnami/letsencrypt/lego
  7. 逐个输入以下命令以停止在您的实例上运行的应用程序服务。

    sudo service bitnami stop sudo service gitlab-runsvdir stop
  8. 输入以下命令使用乐高客户端申请 Let's EncryptSSL/TLS证书。

    sudo /opt/bitnami/letsencrypt/lego --tls --email="EmailAddress" --domains="RootDomain" --domains="WwwSubDomain" --path="/opt/bitnami/letsencrypt" run

    在该命令中,将以下示例值替换为自己的值:

    • EmailAddress – 用于注册通知的电子邮件地址。

    • RootDomain— 将流量路由到您的 GitLab CE 网站的主根域(例如,example.com)。

    • WwwSubDomain— 将流量路由到您的 GitLab CE 网站的主根域的www子域(例如,www.example.com)。

      您可以通过在命令中指定其他 --domains 参数来为证书指定多个域。当您指定多个域时,Lego 会创建一个主题备用名 (SAN) 证书,这会导致只有一个证书对您指定的所有域有效。列表中的第一个域将添加为证书的 “CommonName”,其余的则作为 “DNSNames” 添加到证书中的SAN扩展名中。

    示例:

    sudo /opt/bitnami/letsencrypt/lego --tls --email="user@example.com" --domains="example.com" --domains="www.example.com" --path="/opt/bitnami/letsencrypt" run
  9. 在提示时,按下 YEnter 以接受服务条款。

    您应看到类似于以下示例的响应。

    Lego 客户端成功响应证书请求

    如果成功,一组证书将会保存到 /opt/bitnami/letsencrypt/certificates 目录。该组证书包括服务器证书文件(例如,example.com.crt)和服务器证书密钥文件(例如,example.com.key)。

  10. 逐个输入以下命令以重命名实例上的现有证书。稍后,您将用新的 Let's Encrypt 证书替换这些现有证书。

    sudo mv /etc/gitlab/ssl/server.crt /etc/gitlab/ssl/server.crt.old sudo mv /etc/gitlab/ssl/server.key /etc/gitlab/ssl/server.key.old sudo mv /etc/gitlab/ssl/server.csr /etc/gitlab/ssl/server.csr.old
  11. 逐一输入以下命令,在目录中为新 Let's Encript 证书创建符号链接,该/etc/gitlab/ssl目录是 GitLab CE 实例上的默认证书目录。

    sudo ln -sf /opt/bitnami/letsencrypt/certificates/Domain.key /etc/gitlab/ssl/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/Domain.crt /etc/gitlab/ssl/server.crt

    在命令中,替换 Domain 使用您在申请 Let's Encrypt 证书时指定的主根域。

    示例:

    sudo ln -sf /opt/bitnami/letsencrypt/certificates/example.com.key /etc/gitlab/ssl/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/example.com.crt /etc/gitlab/ssl/server.crt
  12. 逐个输入以下命令,以在您将其移动到的目录中更改新的 Let's Encrypt 证书的权限。

    sudo chown root:root /etc/gitlab/ssl/server* sudo chmod 600 /etc/gitlab/ssl/server*
  13. 输入以下命令以在您的 GitLab CE 实例上重新启动应用程序服务。

    sudo service bitnami start

下次使用您配置的域名浏览您的 GitLab CE 网站时,您应该会看到它重定向到HTTPS连接。请注意, GitLab CE 实例最多可能需要一个小时才能识别新证书。如果您的 GitLab CE 网站拒绝您的连接,请停止并启动实例,然后重试。

第 7 步:阅读 GitLab CE 文档并继续配置您的网站

阅读 C GitLab E 文档,了解如何管理和自定义您的网站。有关更多信息,请参阅GitLab 文档

步骤 8:创建实例的快照

按照您想要的方式配置 GitLab CE 网站后,创建实例的定期快照以对其进行备份。您可以手动创建快照,也可以启用自动快照,让 Lightsail 为您创建每日快照。如果实例出现错误,则可使用快照来创建新的替代实例。有关更多信息,请参阅快照

在实例管理页面的快照选项卡下,选择创建快照或选择启用自动快照。

在 Lightsail 控制台中创建实例快照

有关更多信息,请参阅在 Amazon Lightsail 中创建 Linux 或 Unix 实例的快照或在 Amazon Lightsail 中为实例或磁盘启用或禁用自动快照