我正在尝试为我的PHP Web应用程序设置AWS CodeDeploy。我在AWS控制台上创建了CodeDeploy应用程序和部署组。我已经使用appspec yaml文件创建了必要的修订包。修订包存储在Amazon S3上。
当我点击AWS控制台上的“部署此修订版本”按钮时,它会向我显示“没有主机成功”错误。我浏览了技术常见问题解答,找不到任何答案。我该如何处理这个错误?
更新:我现在明白这个错误与最低健康主机数量有关。但我仍然无法理解AWS如何计算主机的健康状况。
答案 0 :(得分:1)
为什么部署失败主机健康状况非常简单。如果主机成功部署了最后一个部署,则主机是健康的。如果主机失败,则主机不健康。如果主机已跳过并且之前没有部署,则主机未知。
主机运行状况的其他方面会影响它们在下一次部署中部署的顺序,但这不会影响部署失败,并且“没有主机成功”。
如果主机的任何生命周期事件失败,主机可能会使其单独部署失败。由于服务端超时等待代理响应或者主机代理报告执行命令时出错,生命周期事件可能会失败。您可以检查主机代理日志,以获取有关主机代理报告失败的确切原因的更多详细信息。
如果您遇到服务器端超时,则应检查主机代理是否正在运行并且能够正确轮询命令。您可能在VPC配置中意外地限制了访问权限,或者未向实例授予适当的权限以轮询实例配置文件中的命令。
答案 1 :(得分:0)
此错误消息表示您未在部署组所针对的EC2实例上运行CodeDeploy服务。
1)从S3下载最新版本的codedeploy(选择你所在的地区)
PS> Read-S3Object -BucketName aws-codedeploy-eu-west-1 -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi
2)安装codedeploy
cmd> c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt
3)启动codeploy
PS> Start-Service -Name codedeployagent
AWS CodeDeploy指南:http://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-run-agent.html#how-to-run-agent-install-windows
答案 2 :(得分:0)
我自己也遇到了这个问题。我的解决方案是运行:
ntpdate-debian
如果您正在运行centos,那就像
ntpdate pool.ntp.org
对我而言,时间已经结束,并导致codedeploy代理出现问题。
现在,如果这不能解决您的问题。首先确保您的问题是您的CodeDeploy代理没有注册。我以前遇到过这个问题,原因是我的一个实例因为部署过程而处于失败状态,所以一定要仔细检查。 (ELB状态,测试等)
然后,您应该通过在/etc/codedeploy-agent/conf/codedeployagent.yml中将log_aws_wire和verbose设置为true来启用CodeDeploy代理的日志记录,然后重新启动CodeDeploy。记录日志,您应该看到问题的原因。