0

我想自动化这个过程,当我将代码推送到 Bitbucket 上的私有存储库时,它将直接在我的 EC2 实例上更新。为此,我获得了一些知识,例如:

AWS CodeDeploy 用于此目的。我学到的是:

  • 转到 IAM 角色并创建角色并附加策略,即 AmazonEC2RoleForCodeDeploy 和 AWSCodeDeployRole
  • 编辑信任关系->“服务”:“codedeploy.amazonaws.com”
  • 在创建 EC2 实例时,将 IAM 角色用于我们刚刚创建的角色。

但是我对将粘贴在高级详细信息(在创建实例时)上的 YML 代码感到困惑。

我参加了许多博客和 youtube 教程,但对正确的实施感到困惑。

在一些教程中,使用 S3 进行代码部署。关于自动化过程,我对这个问题有点困惑。

我的简单要求是当我在我的个人分支上更新/推送代码时,它将在我的 EC2 实例下的目录上更新。

任何 AWS 专家或 DevOps 都会帮助我,请分享完成此任务的最佳有效方式。我提到“专家”是因为我需要最好和最佳的解决方案,而不是实现目标的解决方案。

任何帮助或建议都非常感谢。如果我的查询中有一些拼写错误或任何语法错误,请原谅我。

4

1 回答 1

0

基本步骤是:

  1. 从 Bitbucket 的 App Marketplace 添加 CodeDeploy 插件并进行配置。
  2. 添加允许 Bitbucket 首先将代码推送到您账户中的中间 S3 存储桶的 IAM 角色。
  3. 从 Bitbucket 控制台的“设置”页面配置 CodeDeploy 设置后,您可以从分支执行部署到部署组并在 Codedeploy 控制台中进行监控。

下面的博客对此有明确而详细的步骤: https ://aws.amazon.com/blogs/apn/announcing-atlassian-bitbucket-support-for-aws-codedeploy/

您感到困惑的 Yaml 文件是 Appspec 文件,它告诉 CodeDeploy 在部署期间要执行哪些操作。

您必须部署源包中的所有文件的最低限度的 appspec.yml 文件:

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html

该文件位于源代码的根目录中。

Appspec 文件示例: https ://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-example.html#appspec-file-example-server

于 2019-09-25T05:15:42.310 回答