

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

# 在 Lightsail 上设置和配置 GitLab CE 实例
<a name="amazon-lightsail-quick-start-guide-gitlab"></a>

**你知道吗？**  
 Lightsail 存储七张每日快照，当您为实例启用自动快照时，会自动将最旧的快照替换为最新的快照。有关更多信息，请参阅[为 Lightsail 实例和磁盘配置自动快照](https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-configuring-automatic-snapshots.html)。

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

**内容**
+ [步骤 1：阅读 Bitnami 文档](#amazon-lightsail-read-the-bitnami-documentation-gitlab)
+ [步骤 2：获取访问 GitLab CE 管理区域的默认应用程序密码](#amazon-lightsail-get-the-default-user-password-gitlab)
+ [步骤 3：将静态 IP 地址附加到实例](#amazon-lightsail-attach-static-ip-gitlab)
+ [步骤 4：登录到 Gitlab CE 网站的管理区域](#amazon-lightsail-sign-in-gitlab)
+ [第 5 步：将您注册域名的流量路由到 GitLab CE 网站](#amazon-lightsail-map-your-domain-to-your-instance-gitlab)
+ [第 6 步：为您的 GitLab CE 网站配置 HTTPS](#amazon-lightsail-https-gitlab)
+ [第 7 步：阅读 GitLab CE 文档并继续配置您的网站](#amazon-lightsail-read-documentation-gitlab)
+ [步骤 8：创建实例的快照](#amazon-lightsail-create-a-snapshot-gitlab)

## 步骤 1：阅读 Bitnami 文档
<a name="amazon-lightsail-read-the-bitnami-documentation-gitlab"></a>

阅读 Bitnami 文档，了解如何配置您的 GitLab CE 应用程序。有关更多信息，请参阅 [Bitnami 打包的 GitLab CE](https://docs.bitnami.com/aws/apps/gitlab/) For。 AWS Cloud

## 步骤 2：获取访问 GitLab CE 管理区域的默认应用程序密码
<a name="amazon-lightsail-get-the-default-user-password-gitlab"></a>

完成以下步骤以获取访问 GitLab CE 网站管理区域所需的默认应用程序密码。有关更多信息，请参阅[在 Amazon Lightsail 中获取 Bitnami 实例的应用程序用户名和密码](log-in-to-your-bitnami-application-running-on-amazon-lightsail.md)。

1. 在实例管理页面上的 **Connect（连接）**选项卡下，选择**使用 SSH 连接**。  
![在 Lightsail 控制台中使用 SSH 进行连接](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-connect-to-your-instance.png)

1. 连接后，请输入以下命令来获取应用程序密码：

   ```
   cat $HOME/bitnami_application_password
   ```

   您应该会看到与以下示例类似的响应，其中包含默认应用程序密码：  
![Bitnami 默认应用程序密码。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-bitnami-application-password.png)

## 步骤 3：将静态 IP 地址附加到实例
<a name="amazon-lightsail-attach-static-ip-gitlab"></a>

附加到实例的默认动态公有 IP 地址会在您每次停止和启动实例时发生变化。您可以创建一个静态 IP 地址并将其附加到您的实例，以防止公有 IP 地址发生变化。稍后，当您对实例使用自己的域名时，就无需在每次停止和启动该实例时更新域的 DNS 记录。您只能将一个静态 IP 地址附加到每个实例。

在实例管理页面上的**联网**选项卡下，选择**创建静态 IP**或**附加静态 IP**（如果您之前创建了可附加到实例的静态 IP），然后按照页面上的说明进行操作。有关更多信息，请参阅[创建静态 IP 并将其附加到实例](lightsail-create-static-ip.md)。

![在 Lightsail 控制台中附加静态 IP 地址](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-static-ip-address.png)


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

1. 记下实例的静态 IP 地址。它列在实例管理页面的标题部分。  
![Lightsail 实例的公共或静态 IP 地址](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-public-static-ip.png)

1. 在实例管理页面上的 **Connect (连接)** 选项卡下，选择**使用 SSH 连接**。  
![使用 SSH 连接到您的实例](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-connect-using-ssh.png)

1. 连接后，请输入以下命令。{{<StaticIP>}}替换为您的实例的新静态 IP 地址。

   ```
   sudo /opt/bitnami/configure_app_domain --domain {{<StaticIP>}}
   ```

   **示例**：

   ```
   sudo /opt/bitnami/configure_app_domain --domain {{203.0.113.0}}
   ```

   您应看到类似于以下示例的响应。现在，实例上的应用程序应该识别到了新的静态 IP 地址。  
![域配置工具的结果](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-configure-domain-ip-gitlab.png)

## 步骤 4：登录到 Gitlab CE 网站的管理区域
<a name="amazon-lightsail-sign-in-gitlab"></a>

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

1. 在实例管理页面上的 **Connect**（连接）选项卡下，记下实例的公有 IP 地址。公有 IP 地址也显示在实例管理页面的标题部分。  
![实例的公有 IP 地址](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-public-ip.png)

1. 浏览到实例的公有 IP 地址，例如，转到 `http://203.0.113.0`。

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

1. 使用之前在本指南中检索到的默认用户名（`root`）和默认密码登录。

   此时将显示 Gitlab CE 管理控制面板。  
![Gitlab CE 管理控制面板](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-gitlab-dashboard.png)

## 第 5 步：将您注册域名的流量路由到 GitLab CE 网站
<a name="amazon-lightsail-map-your-domain-to-your-instance-gitlab"></a>

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

在 Lightsail 控制台主页的 “**网络**” 选项卡下，选择 “**创建 DNS 区域**”，然后按照页面上的说明进行操作。有关更多信息，请参阅[创建 DNS 区域以管理域的 DNS 记录](lightsail-how-to-create-dns-entry.md)。

![在 Lightsail 控制台中创建 DNS 区域](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-create-dns-zone.png)


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

1. 在实例管理页面上的 **Connect (连接)** 选项卡下，选择**使用 SSH 连接**。  
![使用 SSH 连接到您的实例](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-connect-using-ssh.png)

1. 连接后，请输入以下命令。{{<DomainName>}}替换为将流量路由到您的实例的域名。

   ```
   sudo /opt/bitnami/configure_app_domain --domain {{<DomainName>}}
   ```

   **示例**：

   ```
   sudo /opt/bitnami/configure_app_domain --domain {{example.com}}
   ```

   您应看到类似于以下示例的响应。您的 GitLab CE 实例现在应该知道域名了。  
![域配置工具的结果](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-configure-domain-example-gitlab.png)
**注意**  
如果该命令失败，则您可能使用的是旧版本的 GitLab CE 实例。尝试运行以下命令。{{<DomainName>}}替换为将流量路由到您的实例的域名。  

   ```
   cd /opt/bitnami/apps/gitlab && \
   sudo ./bnconfig --machine_hostname {{<DomainName>}}
   ```
运行上述命令后，输入以下命令以防止 bnconfig 工具在每次服务器重新启动时自动运行。  

   ```
   sudo mv bnconfig bnconfig.disabled
   ```

接下来，您应该生成并配置 SSL/TLS 证书，以便为 GitLab CE 网站启用 HTTPS 连接。有关更多信息，请继续阅读本指南的下一个[步骤 6：为您的 GitLab CE 网站配置 HTTPS](#amazon-lightsail-https-gitlab) 部分。

## 第 6 步：为您的 GitLab CE 网站配置 HTTPS
<a name="amazon-lightsail-https-gitlab"></a>

完成以下步骤，在您的 GitLab CE 网站上配置 HTTPS。这些步骤向您展示了如何使用[乐高客户端](https://github.com/go-acme/lego)，这是一款用于请求 Let's Encrypt SSL/TLS 证书的命令行工具。

**重要**  
在开始此过程之前，请确保已将域配置为将流量路由到您的 GitLab CE 实例。否则， SSL/TLS 证书验证过程将失败。要路由注册域名的流量，您需要向域的 DNS 添加一条记录。DNS 记录通常由您注册域的注册商进行托管和管理。但是，我们建议您将域名的 DNS 记录的管理权转移到 Lightsail，以便您可以使用 Lightsail 控制台对其进行管理。  
在 Lightsail 控制台主页的 “**域名和 DNS**” 选项卡下，选择 “**创建 DNS 区域**”，然后按照页面上的说明进行操作。有关更多信息，请参阅在 [Lightsail 中创建 DNS 区域来管理您的域名的 DNS 记录](lightsail-how-to-create-dns-entry.md)。

1. 在实例管理页面上的 **Connect（连接）**选项卡下，选择**使用 SSH 连接**。  
![在 Lightsail 控制台中使用 SSH 进行连接](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-connect-to-your-instance.png)

1. 连接后，请输入以下命令以将目录更改为临时（/tmp）目录。

   ```
   cd /tmp
   ```

1. 输入以下命令，下载 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 -
   ```

1. 输入以下命令以从 tar 文件中提取文件。{{X.Y.Z}}替换为您下载的 Lego 客户端版本。

   ```
   tar xf lego_v{{X.Y.Z}}_linux_amd64.tar.gz
   ```

   **示例**：

   ```
   tar xf lego_v{{4.7.0}}_linux_amd64.tar.gz
   ```

1. 输入以下命令以创建您会将 Lego 客户端文件移动到的 `/opt/bitnami/letsencrypt` 目录。

   ```
   sudo mkdir -p /opt/bitnami/letsencrypt
   ```

1. 输入以下命令以将 Lego 客户端文件移动到的您创建的目录中。

   ```
   sudo mv lego /opt/bitnami/letsencrypt/lego
   ```

1. 输入以下命令以停止在您的实例上运行的应用程序服务。

   ```
   sudo service bitnami stop && \
   sudo service gitlab-runsvdir stop
   ```

1. 输入以下命令，使用 Lego 客户端申请 Let's Encrypt SSL/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
   ```

1. 在提示时，按下 **Y** 和 **Enter** 以接受服务条款。

   您应看到类似于以下示例的响应。  
![Lego 客户端成功响应证书请求](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-configure-domain-cert-response-gitlab.png)

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

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

   ```
   sudo mv /etc/gitlab/ssl/tls.crt /etc/gitlab/ssl/tls.crt.old && \
   sudo mv /etc/gitlab/ssl/tls.key /etc/gitlab/ssl/tls.key.old
   ```

1. 输入以下命令，在`/etc/gitlab/ssl`目录中为您的新 Let's Encrypt 证书创建符号链接，该目录是 GitLab CE 实例上的默认证书目录。

   ```
   sudo ln -sf /opt/bitnami/letsencrypt/certificates/{{Domain}}.key /etc/gitlab/ssl/tls.key && \
   sudo ln -sf /opt/bitnami/letsencrypt/certificates/{{Domain}}.crt /etc/gitlab/ssl/tls.crt
   ```

   在命令中，{{Domain}}替换为您在申请 Let's Encrypt 证书时指定的主根域。

   **示例**：

   ```
   sudo ln -sf /opt/bitnami/letsencrypt/certificates/{{example.com}}.key /etc/gitlab/ssl/tls.key && \
   sudo ln -sf /opt/bitnami/letsencrypt/certificates/{{example.com}}.crt /etc/gitlab/ssl/tls.crt
   ```

1. 输入以下命令以更改新的 Let's Encrypt 证书在您移入的目录中的权限。

   ```
   sudo chown root:root /etc/gitlab/ssl/tls* && \
   sudo chmod 600 /etc/gitlab/ssl/tls*
   ```

1. 输入以下命令以在您的 GitLab CE 实例上重新启动应用程序服务。

   ```
   sudo service bitnami start && \
   sudo service gitlab-runsvdir start
   ```

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

## 第 7 步：阅读 GitLab CE 文档并继续配置您的网站
<a name="amazon-lightsail-read-documentation-gitlab"></a>

阅读 C GitLab E 文档，了解如何管理和自定义您的网站。有关更多信息，请参阅 [GitLab 文档](https://docs.gitlab.com/ee/index.html)。

## 步骤 8：创建实例的快照
<a name="amazon-lightsail-create-a-snapshot-gitlab"></a>

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

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

![在 Lightsail 控制台中创建实例快照](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/quick-start-instance-snapshots.png)


有关更多信息，请参阅在 Amazon Lightsail 中创建 [Linux 或 Unix 实例的快照或在 Amazon Lightsail](lightsail-how-to-create-a-snapshot-of-your-instance.md) [中为实例或磁盘启用或禁用自动快照](amazon-lightsail-configuring-automatic-snapshots.md)。