使用IAM用户凭据为CodeDeploy设置Amazon Linux实例
我已经创建了成功部署所需的全部内容。 我试图在没有在Amazon实例中配置CodeDeploy代理的情况下进行部署,部署[显然]失败。 虽然设置它,但成功。 所以,我的问题是,我应该配置手动使用的每个实例吗? 如果我在部署组中有100个实例,该怎么办? 我应该使用已配置的CodeDeploy代理工具创建AMI吗?使用IAM用户凭据为CodeDeploy设置Amazon Linux实例
编辑
我曾经看过这样的: https://www.youtube.com/watch?v=qZa5JXmsWZs
与此: https://github.com/andrewpuch/code_deploy_example
我只是不明白,为什么我必须与IAM配置信任该实例。难道它不应该从我发起的角色中获得信任吗? 我不是aws角色和策略方面的专家,但是从CD文档来看,这就是我所理解的。 有没有办法让IAM用户访问实例,所以我不必设置CD代理?
EDIT 2
我认为这个帖子样的答案:http://adndevblog.typepad.com/cloud_and_mobile/2015/04/practice-of-devops-with-aws-codedeploy-part-1.html
But as you can see, I launched multiple instances but I only installed CodeDeploy agent on one instance, what about others? Do I have to repeat myself and login to them and install them separately? It is OK since I just have 2 or 3. But what if I have handers or even thousand of instances? Actually there are different solutions for this. One of them is, I setup all environment on one instances and create an AMI from it. When I launch my working instance, I will create instance from the one I’ve already configured instead of the AWS default ones. Some other solutions are available
每个实例只需要在其上安装代理CodeDeploy。它不需要安装AWS CLI。有关安装和操作的详细信息,请参阅AWS CodeDeploy Agent Operations。
您应该在IAM中创建一个实例配置文件/角色,该配置文件/角色将授予任何实例通过CodeDeploy服务接受代码部署的正确权限。
创建一个名为ApplicationServer的角色。为此角色添加以下策略。这是假设你正在使用S3为您的修改:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::codedeploy-example-com/*"
]
},
{
"Sid": "Stmt1414002531000",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": [
"*"
]
},
{
"Sid": "Stmt1414002720000",
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:PutLogEvents"
],
"Resource": [
"*"
]
}
]
}
为了您的具体问题:
所以,我的问题是,我应该配置每一个我手动使用 实例?
如果我在部署组中有100个实例,该怎么办?我应该创建 AMI并配置了aws-cli工具吗?
使用您的基本工具配置AMI,或根据需要使用CloudFormation或puppet管理给定实例上的软件安装。 CodeDeploy不再需要AWS CLI。只需要最新版本的CodeDeploy代理。
你是说因为某种原因将IAM角色分配给EC2实例不起作用? –
@Rodrigo M:我认为我误解了CD代理的aws-cli。真的很抱歉混淆。我将编辑我的问题。 –
@Mark B:如果将IAM角色分配给EC2实例意味着我不必配置CodeDeploy代理,那么是的。据我了解,我创造了2个角色,但我对他们的用法和必要性感到困惑。 –