Ответ 1
Кажется, что в какой-то момент у вас было успешное развертывание.
Перейдите в/opt/codedeploy-agent/deploy-root/deploy-instructions/и удалите все файлы там. Тогда он не будет искать это последнее развертывание.
Итак, я пытаюсь настроить 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
Более или менее, поскольку это первое развертывание, я хочу, чтобы он добавлял все файлы в ревизии в общий каталог на веб-сервере.
Я отрываю свои волосы от этого, и я чувствую, что это простая проблема. У меня правильные правила и роли IAM, и у меня есть установка и запуск CodeDeploy на моем экземпляре, к которому я пытаюсь выполнить.
Кажется, что в какой-то момент у вас было успешное развертывание.
Перейдите в/opt/codedeploy-agent/deploy-root/deploy-instructions/и удалите все файлы там. Тогда он не будет искать это последнее развертывание.
У меня просто была эта ЖЕЛАЯ проблема, и я понял это! Убедитесь, что ваш файл AppSpec имеет право РАСШИРЕНИЯ! Я использовал yaml
, а не yml
, теперь все работает отлично.
Я сделал это так:
У меня было несколько неудачных развертываний по разным причинам. Дело в том, что компакт-диск хранится в экземпляре EC2 и в пути /opt/codedeploy-agent/deployment-root/ папке с именем ID неудавшегося развертывания [очень длинный буквенно-цифровой укус], Удалите эту папку и создайте новое развертывание [из консоли aws UI] и выполните повторное развертывание приложения. Таким образом файл appspec.yml, который находится в неправильном месте, будет удален. Он должен теперь преуспеть.
Дополнительное уведомление:
CD не переписывает файлы [которые не были созданы им специально для развертывания] CodeDeploy не развертывается в папке, где уже есть код [файлы], так как он не хочет вмешиваться в развертывание CD и/или других инструментов CI/CD [например, Jenkins]. Он развертывается только по пути, который уже развертывает код с конкретным развертыванием.
Вы можете очистить папку, где требуется развертывание, и повторно развернуть свой код с помощью компакт-диска.
Когда вы входите в систему на хост, вы видите файл appspec.yml в каталоге? Если вы не уверены, что он был проверен с остальной частью вашего развернутого кода?