2

我在 NAT 后面的私有子网中设置了两个 EC2 实例。这些实例都在 AutoScalling 组中。我想将 CodeDeploy 与我的 GitLab 存储库集成。

我现在能想到的就是在 appspec.yml 文件的 BeforeInstall 挂钩上运行一个脚本。

还有另一种方法可以做到这一点吗?

4

1 回答 1

5

GitLab 没有实现与 AWS 服务的直接集成,但您可以解决这个问题。您可以执行您所描述的操作,并实现所有安装/分发/身份验证逻辑,但是您并没有真正从 CodeDeploy 中获得太多收益。你应该做什么取决于你想要达到的目标。

推送时自动部署:如果您将他们的 WebHook 与可以向 AWS 进行身份验证的东西桥接,您可以在提交到 GitLab 时获得自动部署。这可能看起来像:

  1. GitLab 中的 Web Hook,用于向您控制的 Jenkins 服务器发送推送请求。
  2. Jenkins 服务器使用 Git 插件来拉取源代码。
  3. Jenkins 服务器运行您的构建和测试步骤。
  4. Jenkins 服务器使用 CodeDeploy 插件将构建工件上传到 S3 并创建部署。

如果您想要手动部署,您可以执行与上述相同的操作,但手动触发 Jenkins 构建。

仅手动部署:要部署时执行以下操作:

  1. 使用 git 检查您要部署的提交。
  2. 在本地运行您的构建和测试。
  3. 执行 AWS CLI deploy push 命令将您的构建工件上传到 S3。
  4. 使用上传的包在 CodeDeploy 中创建部署。
于 2015-11-27T18:38:49.390 回答