AWS CodeDeploy 与 GitLab 的集成
AWS CodeDeploy integration with GitLab
我在 NAT 后面的私有子网中设置了两个 EC2 实例。
这些实例都在一个 AutoScalling 组中。
我想将 CodeDeploy 与我的 GitLab 存储库集成。
我现在能想到的就是 运行 appspec.yml 文件的 BeforeInstall 挂钩上的脚本。
还有其他方法吗?
GitLab 没有实现与 AWS 服务的直接集成,但您可以解决这个问题。您可以像您所描述的那样做一些事情,并实现所有 installation/distribution/auth 逻辑,但是您实际上并没有从 CodeDeploy 中得到太多。你应该做什么取决于你想要达到的目标。
推送时自动部署:
如果您将他们的 WebHooks 与可以向 AWS 进行身份验证的东西桥接,您可以在提交到 GitLab 时获得自动部署。这可能看起来像:
- GitLab 中的 Web Hook 向您控制的 Jenkins 服务器发送推送请求。
- Jenkins 服务器使用 Git 插件来拉取源。
- Jenkins 服务器运行您的构建和测试步骤。
- Jenkins 服务器使用 CodeDeploy 插件将构建工件上传到 S3 并创建部署。
如果您想进行手动部署,您可以执行与上述相同的操作,但手动触发 Jenkins 构建。
仅手动部署:
当您要部署时执行以下操作:
- 使用 git 签出您要部署的提交。
- 运行 在本地构建和测试。
- 执行 AWS CLI deploy push 命令将您的构建工件上传到 S3。
- 使用上传的包在 CodeDeploy 中创建部署。
我在 NAT 后面的私有子网中设置了两个 EC2 实例。 这些实例都在一个 AutoScalling 组中。 我想将 CodeDeploy 与我的 GitLab 存储库集成。
我现在能想到的就是 运行 appspec.yml 文件的 BeforeInstall 挂钩上的脚本。
还有其他方法吗?
GitLab 没有实现与 AWS 服务的直接集成,但您可以解决这个问题。您可以像您所描述的那样做一些事情,并实现所有 installation/distribution/auth 逻辑,但是您实际上并没有从 CodeDeploy 中得到太多。你应该做什么取决于你想要达到的目标。
推送时自动部署: 如果您将他们的 WebHooks 与可以向 AWS 进行身份验证的东西桥接,您可以在提交到 GitLab 时获得自动部署。这可能看起来像:
- GitLab 中的 Web Hook 向您控制的 Jenkins 服务器发送推送请求。
- Jenkins 服务器使用 Git 插件来拉取源。
- Jenkins 服务器运行您的构建和测试步骤。
- Jenkins 服务器使用 CodeDeploy 插件将构建工件上传到 S3 并创建部署。
如果您想进行手动部署,您可以执行与上述相同的操作,但手动触发 Jenkins 构建。
仅手动部署: 当您要部署时执行以下操作:
- 使用 git 签出您要部署的提交。
- 运行 在本地构建和测试。
- 执行 AWS CLI deploy push 命令将您的构建工件上传到 S3。
- 使用上传的包在 CodeDeploy 中创建部署。