【问题标题】:'No hosts succeeded' error on AWS CodeDeploy serviceAWS CodeDeploy 服务上的“没有主机成功”错误
【发布时间】:2015-10-05 22:20:23
【问题描述】:

我正在尝试为我的 PHP Web 应用程序设置 AWS CodeDeploy。我在 AWS 控制台上创建了一个 CodeDeploy 应用程序和一个部署组。我已经使用 appspec yaml 文件创建了必要的修订包。修订包存储在 Amazon S3 上。

当我单击 AWS 控制台上的“部署此修订版”按钮时,它给了我“没有主机成功”错误。我浏览了技术常见问题解答,但找不到任何答案。我该如何应对这个错误?

更新:我现在明白这个错误与最低健康主机数有关。但我仍然无法理解 AWS 如何计算主机的健康状况。

【问题讨论】:

  • 您是在部署期间遇到错误还是阻止部署,这会有所不同。通常,主机的健康状况取决于更新的结果,例如,如果您有 3 个实例,并且至少需要 2 个健康状况,如果任何实例失败,除了最后一个,就没有办法了成为 3 台健康主机,因为它必须让其中一台离线才能更新。
  • 如果您已解决,请发布解决方案。我面临同样的错误。
  • 这里有同样的问题。如果你解决了,你能发布你的解决方案吗?谢谢。

标签: amazon-web-services amazon-s3 aws-code-deploy


【解决方案1】:

基本上它的意思是“您的 ec2 实例上的 codedeploy 服务没有运行”...

【讨论】:

    【解决方案2】:

    为什么部署失败主机健康是相当简单的。如果该主机成​​功地将最后一次部署部署到该主机,则该主机是健康的。如果主机失败,则主机不健康。主机是否被跳过并且之前没有部署是未知的。

    主机运行状况的其他方面会影响它们在下一次部署中的部署顺序,但这不会影响部署失败并显示“没有主机成功”。

    如果主机的任何生命周期事件失败,它的单独部署可能会失败。生命周期事件可能由于等待代理响应的服务端超时或主机代理报告执行命令的错误而失败。您可以查看主机代理日志以了解主机代理报告失败的确切原因的更多详细信息。

    如果您遇到服务器端超时,您应该检查主机代理是否正在运行并且能够正确轮询命令。您可能在 VPC 配置中意外限制了访问权限,或者未向实例授予适当的权限以轮询实例配置文件中的命令。

    【讨论】:

      【解决方案3】:

      此错误消息表示您没有在部署组所针对的 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) 开始代码部署

      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

      【讨论】:

        【解决方案4】:

        我自己也遇到了这个问题。我的解决方案是运行:

        ntpdate-debian
        

        如果你正在运行 centos,它类似于

         ntpdate pool.ntp.org
        

        对我来说,时间已经过去,导致 codedeploy 代理出现问题。

        现在,如果这不能解决您的问题。首先确保您的问题是您的 CodeDeploy 代理未注册。我以前遇到过这个问题,这是因为我的一个实例由于部署不当而处于失败状态,因此请务必仔细检查。 (ELB 状态、测试等)

        然后您应该通过在 /etc/codedeploy-agent/conf/codedeployagent.yml 中将 log_aws_wire 和 verbose 设置为 true 来为您的 CodeDeploy 代理启用日志记录,然后重新启动 CodeDeploy。跟踪日志,您应该会看到问题的原因。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-09-28
          • 2019-05-05
          • 2014-04-13
          • 1970-01-01
          • 2014-10-28
          • 2021-09-11
          • 2017-12-17
          相关资源
          最近更新 更多