如何进行AWS的自动部署工具codedeploy部署,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创建一个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": "*"
}
]
}
要从本地的计算机上调用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)
为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 警报的信息。
在设置服务角色过程中,还可以更新其信任关系,指定希望向其授予访问权限的终端节点。
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部署问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。