【问题标题】:Amazon EC2 Code Deploy No hosts succeededAmazon EC2 代码部署没有成功的主机
【发布时间】:2016-02-11 07:50:51
【问题描述】:

我是 Amazon Code Deploy 的新手。部署时出现错误

部署失败
没有成功的主机

我检查了我的 Linux 机器上的服务代码 deploy-agent 并且它正在运行 我该如何解决这个问题?

【问题讨论】:

  • 顺便说一句,如果它有帮助,当我查看错误页面时,我还可以看到 Minimum Healthy Hosts 0 of 1 instances 有什么想法吗?
  • 我们可能需要更多信息来帮助您。你运行了哪个命令?确切的输出是什么?

标签: amazon-ec2 amazon aws-ec2 aws-code-deploy


【解决方案1】:

大多数情况下,由于实例和 CodeDeploy 服务上的 IAM 权限不足,会出现此问题。您需要检查 /var/log/aws/codedeploy-agent/codedeploy-agent.log 文件以获取详细信息。同样在/etc/codedeploy-agent/conf/codedeployagent.yml 文件中,您可以设置:verbose: true 以在日志文件中获取更多信息。

这些是您需要更新的 IAM 政策:

// Policy Role for Code Deploy
{
  "Version": "2012-10-17",
  "Statement": [
 {
  "Action": [
    "autoscaling:PutLifecycleHook",
    "autoscaling:DeleteLifecycleHook",
    "autoscaling:RecordLifecycleActionHeartbeat",
    "autoscaling:CompleteLifecycleAction",
    "autoscaling:DescribeAutoscalingGroups",
    "autoscaling:PutInstanceInStandby",
    "autoscaling:PutInstanceInService",
    "ec2:Describe*"
  ],
  "Effect": "Allow",
  "Resource": "*"
}
 ]
}

// Policy Trust for Code Deploy
{
  "Version": "2012-10-17",
  "Statement": [
{
  "Sid": "",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "codedeploy.us-west-2.amazonaws.com",
      "codedeploy.us-east-1.amazonaws.com"
    ]
  },
  "Action": "sts:AssumeRole"
}
 ]
}

// Instance Role for EC2 Instance
{ 
"Version": "2012-10-17", 
"Statement": [   
  {     
      "Action": [       
          "s3:Get*",       
          "s3:List*"     
      ],     
      "Effect": "Allow",     
      "Resource": "*"   
  } 
]
}

【讨论】:

    【解决方案2】:

    正如 BrunoLevy 所说,我们需要有关您尝试进行的部署的更多信息。

    不过,作为调试的起点,您可以从部署页面观察部署失败的步骤

    您还可以查看主机上的主机代理日志文件 (/var/log/aws/codedeploy-agent/codedeploy-agent.log)。该文件包含有关部署的信息。

    【讨论】:

      【解决方案3】:

      发生这种情况是因为 codeDeploy 通过点击实例来检查 ec2 实例的运行状况。在部署之前,您需要在实例上运行以下 bash 脚本并检查脚本是否有效。必须启动 httpd 服务。重启实例。

          #!/bin/bash
          sudo su
          yum update -y
          yum install httpd -y
          yum install ruby
          yum install aws-cli
          cd ~
          aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
          chmod +x ./install auto
          ./install auto
          echo 'hello world' > /var/www/html/index.html
          hostname >> /var/www/html/index.html
          chkconfig httpd on
          service httpd start
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 2013-03-06
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        相关资源
        最近更新 更多