amazon-web-services - AWS CodeDeploy 与 GitLab 的集成

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

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

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

还有其他方法吗?

最佳答案

GitLab 未实现与 AWS 服务的直接集成,但您可以解决这个问题。您可以像您描述的那样做一些事情,并实现所有安装/分发/身份验证逻辑,但是您实际上并没有从 CodeDeploy 中获得太多。您应该做什么取决于您要实现的目标。

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

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

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

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

  1. 使用 git checkout 您要部署的提交。
  2. 在本地运行构建和测试。
  3. 执行 AWS CLI 部署推送命令以将您的构建工件上传到 S3。
  4. 使用上传的包在 CodeDeploy 中创建部署。

关于amazon-web-services - AWS CodeDeploy 与 GitLab 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33957162/

相关文章:

amazon-web-services - Amazon AWS DynamoDB 桌面客户端 - 是否存在?

linux - 无法连接到 22 (ssh) AWS 以外的任何端口

amazon-web-services - 让 Vagrant 与 AWS 配合使用

php - 在 EC2 中加载 php 类的最佳方式 - InstanceStore、EBS 或 S3?

gitlab - gitlab中项目和子组之间的区别

amazon-web-services - Terraform:等到实例为 "reachable"

python - 通过 AWS PrivateLink 从不同的 AWS 账户访问 AWS ElastiCache(Redis CLUSTER 模式)

amazon-web-services - Amazon AWS spot 实例比为 24x365 使用预留便宜

git - 我如何从 gitlab 中的 fork 创建 merge 请求

GitLab 显示已删除的分支