我在ASG下有2個EC2實例。我使用設置爲使用Autoscaling的DeploymentGroup1在codeDeploy中創建了Application1。如何使用codedeploy自動將代碼自動部署到ASG下新創建的EC2實例?
我正面臨的問題是,當供應新的EC2實例時,codedeploy不會創建新的部署,並且代碼不會推送到實例。看起來好像沒有日誌可以看到發生了什麼。
當我列出我的自動定標組鉤我看到他們:
$ aws autoscaling describe-lifecycle-hooks --auto-scaling-group-name SAND-web-ASG
{
"LifecycleHooks": [
{
"GlobalTimeout": 60000,
"HeartbeatTimeout": 600,
"AutoScalingGroupName": "SAND-web-ASG",
"LifecycleHookName": "CodeDeploy-managed-automatic-launch-deployment-hook-DeployToNewEC2underASG-...",
"NotificationMetadata": "....",
"DefaultResult": "ABANDON",
"NotificationTargetARN": "arn:aws:sqs:us-west-1:blabla:blahh-us-west-1-prod-default-autoscaling-lifecycle-hook",
"LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING"
}
]
}
有什麼遺漏或錯在這裏?這些不是自定義的,它們是由codedeploy創建的。
我是繼guide to setup codedeploy with ASG,一切都創建但是當新的實例被創建codedeploy不會創建新的部署..和我有點失去了爲什麼某些原因..
我的服務角色有2 IAM策略:
1 - codePipelinePolicy(自定義)具有下列權限 - 從亞馬遜AWSCodedeployRole
2默認:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:CompleteLifecycleAction",
"autoscaling:DeleteLifecycleHook",
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribeLifecycleHooks",
"autoscaling:PutLifecycleHook",
"autoscaling:RecordLifecycleActionHeartbeat",
"autoscaling:CreateAutoScalingGroup",
"autoscaling:UpdateAutoScalingGroup",
"autoscaling:EnableMetricsCollection",
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribePolicies",
"autoscaling:DescribeScheduledActions",
"autoscaling:DescribeNotificationConfigurations",
"autoscaling:DescribeLifecycleHooks",
"autoscaling:SuspendProcesses",
"autoscaling:ResumeProcesses",
"autoscaling:AttachLoadBalancers",
"autoscaling:PutScalingPolicy",
"autoscaling:PutScheduledUpdateGroupAction",
"autoscaling:PutNotificationConfiguration",
"autoscaling:PutLifecycleHook",
"autoscaling:DescribeScalingActivities",
"autoscaling:DeleteAutoScalingGroup",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:TerminateInstances",
"tag:GetTags",
"tag:GetResources",
"sns:Publish",
"cloudwatch:DescribeAlarms",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeInstanceHealth",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer"
],
"Resource": "*"
}
]
}
我在這裏錯過了什麼,或者有什麼不對(愚蠢的錯誤),我沒有看到?
任何意見真的很感激。 謝謝 歐內斯特
是否在這些EC2實例上安裝並運行了CodeDeploy代理?如果不是,它需要。如果是,請檢查CodeDeploy代理中的日誌(位於/ opt/codedeploy-agent/deployment-root/deployment-logs中)。 – jarmod
是的,安裝了代理。:instance/i- 「) 2017-07-19 15:18:14 INFO [codedeploy-agent(3534)]:在/ opt/codedeploy-agent/.version.'中找到的版本文件
它是亞馬遜Linux操作系統,日誌位於/var/log/aws/codedeploy-agent/codedeploy-agent.log
並顯示
'2017-07-19 15:17:13 INFO [codedeploy-agent( 3534)]:在/opt/codedeploy-agent/.version中找到的版本文件。 2017-07-19 15:18:13 INFO [codedeploy-agent(3534)]:[Aws :: CodeDeployCommand :: Client 200 60.290274 0 retries] poll_host_command(host_identifier:「arn:aws:ec2:us-west-1 :
謝謝 – kabucek
如果您還沒有,請查看故障排除指南(http://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html)。 – jarmod