如何进行AWS的自动部署工具codedeploy部署

12次阅读
没有评论

如何进行 AWS 的自动部署工具 codedeploy 部署,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

开始部署 codedeploy:1. 先预置 IAM 用户:

创建一个 IAM 用户或使用一个与 AWS 相关联的用户;

复制以下的策略附加到 IAM 用户,向 IAM 用户赋予对 codedeploy(及 codedeploy 所依赖的 AWS 服务和操作)的访问权限:

{
  Version : 2012-10-17 ,
  Statement : [
    {
      Effect : Allow ,
      Action : [
        autoscaling:* ,
        codedeploy:* ,
        ec2:* ,
        lambda:* ,
        ecs:* ,
        elasticloadbalancing:* ,
        iam:AddRoleToInstanceProfile ,
        iam:CreateInstanceProfile ,
        iam:CreateRole ,
        iam:DeleteInstanceProfile ,
        iam:DeleteRole ,
        iam:DeleteRolePolicy ,
        iam:GetInstanceProfile ,
        iam:GetRole ,
        iam:GetRolePolicy ,
        iam:ListInstanceProfilesForRole ,
        iam:ListRolePolicies ,
        iam:ListRoles ,
        iam:PassRole ,
        iam:PutRolePolicy ,
        iam:RemoveRoleFromInstanceProfile , 
        s3:*
      ],
      Resource : *
    }    
  ]
}

可以使用提供的 AWS cloudformation 模板启动与 codedeploy 兼容的 EC2 实例;如果使用 AWS cloudformation 模板创建应用程序,部署组及部署配置,需要向 IAM 用户赋予 AWS  cloudformation 和 AWS cloudformation 所依赖的 AWS 服务和操作的访问权限,例如:

{
  Version : 2012-10-17 ,
  Statement : [
    {
      Effect : Allow ,
      Action : [               
        cloudformation:*        
      ],
      Resource : *
    }
  ]
}

2. 安装或升级 AWS CLI 或升级:

要从本地的计算机上调用 codedeploy,必须安装 AWS CLI。

AWS CLI 的 1.6.1 版最先提供了 CodeDeploy 命令。而 1.7.19 版的 AWS CLI 中提供了用于处理本地实例的 CodeDeploy 命令;

安装的是旧版 AWS CLI,则必须升级它,以使 CodeDeploy 命令可用。调用  aws –version  来查看版本

使用捆绑安装程序安装 AWS CLI:(这是为当前用户安装 AWS CLI 命令)

curl https://s3.amazonaws.com/aws-cli/awscli-bundle.zip -o awscli-bundle.zip

unzip awscli-bundle.zip

./awscli-bundle/install -b ~/bin/aws

这会将 AWS CLI 安装到默认位置 (~/.local/lib/aws) 并在  ~/bin/aws  中创建符号链接 (symlink)。确保您的  ~/bin  环境变量中包含  PATH,以使该符号链接生效。

$ echo $PATH | grep ~/bin$ export PATH=~/bin:$PATH

确保 $PATH  设置在多次会话之间保留,将  export  行添加到 shell 配置文件(~/.profile、~/.bash_profile  等)

卸载 AWS CLI:

除了可选的符号链接之外,捆绑安装程序不会将任何内容放在安装目录之外,所以卸载十分简单,就是直接删除这两个项目,

sudo rm -rf /usr/local/aws
sudo rm /usr/local/bin/aws

在安装完后需要进行配置:

aws config 命令是配置 AWS CLI 最快的方法:

$ aws configureAWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]: us-west-2Default output format [None]: json

键入该命令时,AWS CLI 会提示您输入四条信息(访问密钥、秘密访问密钥,AWS 区域和输出格式),并将它们存储在名为  default  的配置文件(一个设置集合)中。每当您运行的 AWS CLI 命令未明确指定要使用的配置文件时,就会使用该配置文件.

AWS Access Key ID  和  AWS Secret Access Key  它和 IAM 或角色相关联。

在配置 AWS CLI 时,系统将提示您指定 AWS 区域。选择  AWS General Reference  中的区域和终端节点中列出的支持区域之一

要确认安装或者升级:可以使用(aws deploy  help)

3. 为 codedeploy 创建服务角色:

为 codedeploy 创建的服务角色必须授予对计算平台所需的权限,部署多个平台,建议为每一个平台创建一个角色,要添加权限,请添加以下一个或多个 AWS 提供的策略:

对于 EC2/ 本地 部署,附加  AWSCodeDeployRole  策略。该策略为您的服务角色提供针以下权限:

阅读您实例上的标签或通过 Amazon EC2 Auto Scaling 组名称来识别您的 Amazon EC2 实例。

读取、创建、更新和删除 Amazon EC2 Auto Scaling 组、生命周期挂钩和扩展策略。

将信息发布到 Amazon SNS 主题。

检索有关 CloudWatch 警报的信息。

读取和更新 Elastic Load Balancing。

对于 Amazon ECS 部署,附加  AWSCodeDeployRoleForECS  策略。该策略为您的服务角色提供针以下权限:

读取、更新和删除 Amazon ECS 任务集。

更新 Elastic Load Balancing 目标组、侦听器和规则。

调用 AWS Lambda 函数。

访问 Amazon S3 存储桶中的修订文件。

检索有关 CloudWatch 警报的信息。

将信息发布到 Amazon SNS 主题。

对于 AWS Lambda 部署,附加  AWSCodeDeployRoleForLambda  策略。该策略为您的服务角色提供针以下权限:

读取、更新和调用 AWS Lambda 函数和别名。

访问 Amazon S3 存储桶中的修订文件。

将信息发布到 Amazon SNS 主题。

检索有关 CloudWatch 警报的信息。

在设置服务角色过程中,还可以更新其信任关系,指定希望向其授予访问权限的终端节点。

4. 为 EC2 实例创建 IAM 实例配置文件:

ECS 和 lambda 平台是不需要 IAM 实例配置文件的;

ECS 部署会部署一个 ECS 服务,Lambda 部署会部署一个无服务器的 Lambda 函数版本;

登录 AWS 管理控制台并通过以下网址打开 IAM 控制台 https://console.aws.amazon.com/iam/。

在 IAM 控制台的导航窗格中,选择策略(策略),然后选择创建策略(创建策略)。(如果开始按钮出现,选择此按钮,然后选择创建策略。)

在创建³³策略页面上的 JSON 选项卡中粘贴以下内容:

{
    Version : 2012-10-17 ,
    Statement : [
        {
            Action : [
                s3:Get* ,
                s3:List*
            ],
            Effect : Allow ,
            Resource : *
        }
    ]
}

建议将此策略限制为仅  EC2 实例必须访问的  S3。允许访问包含 CodeDeploy 代理的 S3。否则,在实例上安装或更新 CodeDeploy 代理时可能会发生错误。要授予 IAM 实例配置文件仅访问  S3 中的某些 CodeDeploy 资源工具包存储桶,请使用以下策略,但删除要阻止访问的存储桶行:

{
  Version : 2012-10-17 ,
  Statement : [
    {
      Effect : Allow ,
      Action : [
        s3:Get* ,
        s3:List*
      ],
      Resource : [
        arn:aws:s3:::replace-with-your-s3-bucket-name/* ,
        arn:aws:s3:::aws-codedeploy-us-east-2/* ,
        arn:aws:s3:::aws-codedeploy-us-east-1/* ,
        arn:aws:s3:::aws-codedeploy-us-west-1/* ,
        arn:aws:s3:::aws-codedeploy-us-west-2/* ,
        arn:aws:s3:::aws-codedeploy-ca-central-1/* ,
        arn:aws:s3:::aws-codedeploy-eu-west-1/* ,
        arn:aws:s3:::aws-codedeploy-eu-west-2/* ,
        arn:aws:s3:::aws-codedeploy-eu-west-3/* ,
        arn:aws:s3:::aws-codedeploy-eu-central-1/* ,
        arn:aws:s3:::aws-codedeploy-ap-northeast-1/* ,
        arn:aws:s3:::aws-codedeploy-ap-northeast-2/* ,
        arn:aws:s3:::aws-codedeploy-ap-southeast-1/* ,        
        arn:aws:s3:::aws-codedeploy-ap-southeast-2/* ,
        arn:aws:s3:::aws-codedeploy-ap-south-1/* ,
        arn:aws:s3:::aws-codedeploy-sa-east-1/*
      ]
    }
  ]
}

选择查看策略。

在 Create policy(创建策略)页面上,在 Policy Name(策略名称)框中键入 CodeDeployDemo-EC2-Permissions。

(任选)对于描述,键入策略的描述。

选择创建策略。

在导航窗格中,选择角色,然后选择创建角色。

在 Create role(创建角色)页面上,选择 AWS 服务(AWS 服务),然后从选择将使用此角色的服务(选择将使用此角色的服务)列表中,选择 EC2。

从选择您的使用案例列表中,选择 EC2。

选择下一个:权限。

在附件权限策略页面中,选择您刚刚创建的策略,选择然后下一步:标签。如果您使用建议的名称,则该名称是 CodeDeployDemo-EC2-Permissions。

在评论页面上的角色名称中,键入服务角色(例如,CodeDeployDemo-EC2-Instance-Profile),然后选择创建角色。

您还可以在部署说明框中键入此服务角色的说明。

现在,要附加到 Amazon EC2 实例的 IAM 实例配置文件已经创建完了。

关于如何进行 AWS 的自动部署工具 codedeploy 部署问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。