在 Lightsail 上设置和配置 GitLab CE 实例
以下是在 Amazon Lightsail 上启动并运行 GitLab CE 实例后要开始使用时应采取的几个步骤:
内容
步骤 1:阅读 Bitnami 文档
阅读 Bitnami 文档以了解如何配置 GitLab CE 应用程序。有关更多信息,请参阅 Bitnami 为 AWS Cloud 打包的 GitLab CE
步骤 2:获取默认应用程序密码以访问 GitLab CE 管理区域
完成以下程序以获取访问 GitLab CE 网站的管理区域所需的默认应用程序密码。有关更多信息,请参阅在 Amazon Lightsail 中获取 Bitnami 实例的应用程序用户名和密码。
-
在实例管理页面上的 Connect(连接)选项卡下,选择使用 SSH 连接。
-
连接后,请输入以下命令来获取应用程序密码:
cat $HOME/bitnami_application_password
您应该会看到与以下示例类似的响应,其中包含默认应用程序密码:
步骤 3:将静态 IP 地址附加到实例
在您首次创建实例时分配给实例的公有 IP 地址会在您每次停止和启动实例时发生更改。您应为实例创建和附加静态 IP 地址,以确保其公有 IP 地址不变。之后当您将注册域名(如 example.com
)指向实例时,无需在每次停止和重启实例时都更新域的 DNS 记录。您可以将静态 IP 附加到实例。
在实例管理页面上的联网选项卡下,选择创建静态 IP或附加静态 IP(如果您之前创建了可附加到实例的静态 IP),然后按照页面上的说明操作。有关更多信息,请参阅创建静态 IP 并将其附加到实例。
将新的静态 IP 地址附加到实例后,您必须完成以下步骤,以使应用程序知道新的静态 IP 地址。
-
记下实例的静态 IP 地址。它列在实例管理页面的标题部分。
-
在实例管理页面上的 Connect (连接) 选项卡下,选择使用 SSH 连接。
-
连接后,请输入以下命令。将
<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 文档并继续配置网站一节。
-
在实例管理页面上的 Connect(连接)选项卡下,记下实例的公有 IP 地址。公有 IP 地址也显示在实例管理页面的标题部分。
-
浏览到实例的公有 IP 地址,例如,转到
http://203.0.113.0
。应该会出现您的 Gitlab CE 网站的主页。您可能还会看到一个浏览器警告,指出您的连接不是私有的、不是安全的或存在安全风险。发生这种情况的原因是您的 GitLab CE 实例尚未应用 SSL/TLS 证书。在浏览器窗口中,选择高级、详细信息或更多信息以查看可用的选项。然后选择继续连接该网站,即使它不是私有或安全的。
-
使用之前在本指南中检索到的默认用户名(
root
)和默认密码登录。此时将显示 Gitlab CE 管理控制面板。
步骤 5:将注册域名的流量路由到 GitLab CE 网站
要将注册域名(如 example.com
)的流量路由到 GitLab CE 网站,您需要向域的域名系统(DNS)添加记录。DNS 记录通常由您注册域的注册商进行托管和管理。但是,我们建议您将域的 DNS 记录管理工作转移到 Lightsail,这样您就可以使用 Lightsail 控制台进行管理。
在 Lightsail 控制台主页上的联网选项卡下,选择创建 DNS 区域,然后按照页面上的说明操作。有关更多信息,请参阅创建 DNS 区域以管理域的 DNS 记录。
在您的域名将流量路由到实例之后,您必须完成以下程序才能让 GitLab CE 知道域名。
-
在实例管理页面上的 Connect (连接) 选项卡下,选择使用 SSH 连接。
-
连接后,请输入以下命令。将
<DomainName>
替换为将流量路由到实例的域名。sudo /opt/bitnami/configure_app_domain --domain
<DomainName>
示例:
sudo /opt/bitnami/configure_app_domain --domain
example.com
您应看到类似于以下示例的响应。现在,您的 GitLab CE 实例应该识别到了域名。
如果此命令失败,您可能是在使用旧版本的 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。
步骤 6:配置 GitLab CE 网站的 HTTPS
完成以下程序以在 GitLab CE 网站上配置 HTTPS。这些步骤向您展示如何使用 Lego 客户端
重要
在开始此过程之前,请确保对域进行配置,以将流量路由到 GitLab CE 实例。否则,SSL/TLS 证书验证过程将失败。要路由注册域名的流量,您需要向域的 DNS 添加一条记录。DNS 记录通常由您注册域的注册商进行托管和管理。但是,我们建议您将域的 DNS 记录管理工作转移到 Lightsail,这样您就可以使用 Lightsail 控制台进行管理。
在 Lightsail 控制台主页上的Domains & DNS(域和 DNS)选项卡下,选择 Create DNS zone(创建 DNS 区域),然后按照页面上的说明操作。有关更多信息,请参阅在 Lightsail 中创建 DNS 区域以管理域的 DNS 记录。
-
在实例管理页面上的 Connect(连接)选项卡下,选择使用 SSH 连接。
-
连接后,请输入以下命令以将目录更改为临时(/tmp)目录。
cd /tmp
-
输入以下命令,下载 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 -
-
输入以下命令以从 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 -
输入以下命令以创建您会将 Lego 客户端文件移动到的
/opt/bitnami/letsencrypt
目录。sudo mkdir -p /opt/bitnami/letsencrypt
-
输入以下命令以将 Lego 客户端文件移动到的您创建的目录中。
sudo mv lego /opt/bitnami/letsencrypt/lego
-
逐个输入以下命令以停止在您的实例上运行的应用程序服务。
sudo service bitnami stop sudo service gitlab-runsvdir stop
-
输入以下命令以使用 Lego 客户端请求 Let's Encrypt SSL/TLS 证书。
sudo /opt/bitnami/letsencrypt/lego --tls --email="
EmailAddress
" --domains="RootDomain
" --domains="WwwSubDomain
" --path="/opt/bitnami/letsencrypt" run在该命令中,将以下示例值替换为自己的值:
-
– 用于注册通知的电子邮件地址。EmailAddress
-
– 将流量路由到 GitLab CE 网站的主要根域(例如,RootDomain
example.com
)。 -
– 将流量路由到 GitLab CE 网站的主要根域(例如,WwwSubDomain
www.example.com
)的www
子域。您可以通过在命令中指定其他
--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 -
-
在提示时,按下 Y 和 Enter 以接受服务条款。
您应看到类似于以下示例的响应。
如果成功,一组证书将会保存到
/opt/bitnami/letsencrypt/certificates
目录。该组证书包括服务器证书文件(例如,example.com.crt
)和服务器证书密钥文件(例如,example.com.key
)。 -
逐个输入以下命令以重命名实例上的现有证书。稍后,您将用新的 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
-
逐个输入以下命令,在
/etc/gitlab/ssl
目录中为您的新 Let's Encript 证书创建符号链接,该目录是 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 -
逐个输入以下命令,以在您将其移动到的目录中更改新的 Let's Encrypt 证书的权限。
sudo chown root:root /etc/gitlab/ssl/server* sudo chmod 600 /etc/gitlab/ssl/server*
-
输入以下命令以在 GitLab CE 实例上重新启动应用程序服务。
sudo service bitnami start
下次使用配置的域浏览到 GitLab CE 网站时,您应该会看到它重定向到 HTTPS 连接。请注意,GitLab CE 实例可能需要一个小时才能识别新证书。如果您的 GitLab CE 网站拒绝连接,请停止并启动实例,然后重试。
步骤 7:阅读 GitLab CE 文档并继续配置网站
阅读 GitLab CE 文档,以了解如何管理和自定义网站。有关更多信息,请参阅 GitLab 文档
步骤 8:创建实例的快照
按照您所需的方式配置 GitLab CE 网站后,创建实例的定期快照以进行备份。您可以手动创建快照,或者启用自动快照来让 Lightsail 为您创建每日快照。如果实例出现错误,则可使用快照来创建新的替代实例。有关更多信息,请参阅快照。
在实例管理页面的快照选项卡下,选择创建快照或选择启用自动快照。
有关更多信息,请参阅在 Amazon Lightsail 中创建 Linux 或 Unix 实例的快照或在 Amazon Lightsail 中启用或禁用实例或磁盘的自动快照。