AWS CodeDeploy与GitLab集成

时间:2015-11-27 12:12:07

标签: amazon-web-services amazon-ec2 gitlab aws-code-deploy

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

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

还有其他办法吗?

1 个答案:

答案 0 :(得分:3)

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

推送时自动部署: 如果您将WebHooks与可以向AWS进行身份验证的内容桥接,则可以在提交到GitLab时自动部署。这可能看起来像:

  1. GipLab中的Web Hook,它向您控制的Jenkins服务器发送推送请求。
  2. Jenkins服务器使用Git插件来获取源。
  3. Jenkins服务器运行您的构建和测试步骤。
  4. Jenkins服务器使用CodeDeploy插件将构建工件上传到S3并创建部署。
  5. 如果您想进行手动部署,可以像上面一样操作,但手动触发Jenkins构建。

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

    1. 使用git签出要部署的提交。
    2. 在本地运行构建和测试。
    3. 执行AWS CLI deploy push命令,将构建工件上传到S3。
    4. 使用上传的捆绑包在CodeDeploy中创建部署。