安装前的AWS Code Deploy错误无法解决

时间:2015-04-20 16:36:57

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

所以我正在尝试为我的应用程序设置CodeDeploy,并且在部署的BeforeInstall部分期间我一直收到错误。以下是错误。

Error Code UnknownError
Script Name
Message No such file or directory - /opt/codedeploy-agent/deployment-root/06100f1b-5495-42d9-bd01-f33d59fb5deb/d-NL5K1THE8/deployment-archive/appspec.yml
Log Tail

我认为这意味着YAML文件位于错误的位置。但是它位于我的修订版的根目录中。我尝试使用像这样的简单AppSpec文件而不是更复杂的文件。

    ## YAML Template.
---
version: 0.0
os: linux
files:
  - source: /
    destination: /home/ubuntu/www

或多或少,因为这是第一次部署,我希望它将修订中的所有文件添加到Web服务器上的公共目录中。

我正在撕裂我的头发,我觉得这是一个简单的问题。我有正确的IAM策略和角色,我有我正在尝试部署到的实例上的CodeDeploy设置和运行。

5 个答案:

答案 0 :(得分:28)

似乎认为你在某个时候成功部署了。

进入/ opt / codedeploy-agent / deployment-root / deployment-instructions /并删除其中的所有文件。然后它不会寻找最后一次部署。

答案 1 :(得分:4)

我刚遇到这个相同的问题,我想出来了!确保您的AppSpec文件具有正确的EXTENSION!我使用yaml而不是yml,现在一切正常。

答案 2 :(得分:2)

我让它像这样工作:

由于各种原因,我有几次失败的部署。 问题是CD保留在EC2实例和路径 / opt / codedeploy-agent / deployment-root / 一个由失败部署的ID命名的文件夹[一个非常长的字母数字sting] 。 删除此文件夹并[从aws UI控制台]创建新部署并重新部署该应用程序。这样,将删除位于错误位置的appspec.yml文件。 它现在应该成功。

额外通知:

CD不会重写文件[尚未由其特定部署创建] CodeDeploy不会部署在已有代码[files]的文件夹中,因为它不想干扰不同的CD部署和/或其他CI / CD工具[如Jenkins]。 它仅部署在已部署具有特定部署的代码的路径中。

您可以清空部署要发生的文件夹,并通过CD重新部署代码。

答案 3 :(得分:0)

当您登录主机时,您是否在目录中看到appspec.yml文件?如果不是,你是否肯定已经使用其余已部署的代码进行了检查?

答案 4 :(得分:0)

也遇到了这个问题。就我而言,修订zip文件在部署后会提取到目录中。因此,/opt/codedeploy-agent/deployment-root/xxx/xxx/deployment-archive包含我的修订文件的父目录(而不是实际的修订文件)。

关键是压缩不带父目录的修订。在Mac终端中,

cd your-app-directory-containing-appspec
zip -r app.zip .