我正在尝试为我的PHP web应用程序设置AWS CodeDeploy。我已经在AWS控制台创建了一个CodeDeploy应用程序和一个部署组。我已经用appspec yaml文件创建了必要的修订包。修订包存储在Amazon S3上。
当我在AWS控制台上单击"部署此修订"按钮时,它给了我"没有主机成功"的错误。我浏览了技术常见问题解答,但没有找到任何答案。我该如何解决这个错误?
UPDATE:我现在明白这个错误与最小健康主机计数有关。但是我仍然无法理解AWS是如何计算主机的健康状况的。
基本上它的意思是"你的ec2实例上的codedeploy服务没有运行"…
为什么部署失败主机运行状况相当简单。如果主机成功地向其部署了最后一次部署,则该主机是健康的。如果主机失败,则表示该主机不健康。如果主机被跳过并且以前没有部署过,则该主机是未知的。
主机运行状况的其他方面会影响它们在下一次部署中的部署顺序,但这不会影响您的部署失败,显示"No hosts succeeded"。
如果主机的任何生命周期事件失败,它的单个部署可能会失败。由于服务端超时等待代理响应或主机代理报告执行命令的错误,生命周期事件可能会失败。您可以查看主机代理日志,了解主机代理报告失败的确切原因。
如果您遇到了服务器端超时,您应该检查主机代理是否正在运行,并且能够正确轮询命令。您可能意外地限制了VPC配置中的访问权限,或者没有授予实例适当的权限来轮询实例配置文件中的命令。
此错误消息意味着您没有在部署组所针对的EC2实例上运行CodeDeploy服务。
1)从S3下载最新版本的codedeploy(选择您的区域)
PS> Read-S3Object -BucketName aws-codedeploy-eu-west-1 -Key latest/codedeploy-agent.msi -File c:tempcodedeploy-agent.msi
2)安装codedeploy
cmd> c:tempcodedeploy-agent.msi /quiet /l c:temphost-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
我自己刚刚遇到这个问题。我的解决方案是运行:
ntpdate-debian
如果你运行的是centos,它就像
ntpdate pool.ntp.org
对我来说,时间已经过去了,并且导致了codedeploy代理的问题。
如果这还不能解决你的问题。首先,确保您的问题是CodeDeploy代理没有注册。我以前遇到过这个问题,这是因为我的一个实例由于拙劣的部署而处于失败状态,所以一定要仔细检查。(ELB状态、测试等)
那么您应该通过在/etc/CodeDeploy -agent/conf/CodeDeploy -agent中设置log_aws_wire和verbose为true来启用CodeDeploy代理的日志记录。yml,然后重新启动CodeDeploy。跟踪日志,您应该会看到问题的原因。