У меня есть код развертывания, развертывания на месте.
И все мои развертывания терпят неудачу по той же причине. Вот мои шаги проверки:
- Я создаю новый пакет с UUID, поэтому нет возможности его повторного использования
- выгрузка пакета
- начало развертывания
- Потяните пакет s3 на сам хост.
- проверьте сценарии на хосте.
- Выполните сценарии.
Все, как и ожидалось, когда я тестирую, но развертывание кода НЕ при выполнении новых сценариев. Даже когда я извлекаю тот самый файл, он говорит, что использует. Когда я проверяю каталог архива, который он использует, в нем есть каталог для развертывания, но нет моих сценариев (хотя некоторые каталоги развертывания делают !?)
Вот список каталога развертывания кода:
[root@ip-10-204-85-36 7dc37854-97b7-431e-90d1-64daeb47dd9b]# pwd
/opt/codedeploy-agent/deployment-root/7dc37854-97b7-431e-90d1-64daeb47dd9b
[root@ip-10-204-85-36 7dc37854-97b7-431e-90d1-64daeb47dd9b]# ls
d-0WRU55VY3 d-7R64SCWY3 d-AEJA4NVY3 d-CRB8JWVY3 d-E6FJ22WY3 d-JKZYXDWY3 d-KQG7HEVY3 d-MR6VSCVY3 d-N8QGYWUY3 d-QDN9AKWY3 d-RF3AWMVY3 d-VB8D8KVY3
[root@ip-10-204-85-36 7dc37854-97b7-431e-90d1-64daeb47dd9b]# find . -name stop.sh
./d-N8QGYWUY3/deployment-archive/scripts/stop.sh
./d-RF3AWMVY3/deployment-archive/scripts/stop.sh
Теперь выгрузите только найденные файлы:
[root@ip-10-204-85-36 7dc37854-97b7-431e-90d1-64daeb47dd9b]# find . -name stop.sh | xargs cat
#!/bin/env bash
set -e
set -o pipefail
source /etc/environment
docker stop nexus#!/bin/env bash
set -e
set -o pipefail
source /etc/environment
. Это одно из неудачных развертываний. Заметьте, что здесь нет сценариев? Но он показывает ошибку, которую я вижу в консоли внутри этого файла журнала
[root@ip-10-204-85-36 7dc37854-97b7-431e-90d1-64daeb47dd9b]# cd d-E6FJ22WY3/
[root@ip-10-204-85-36 d-E6FJ22WY3]# ls
logs
[root@ip-10-204-85-36 d-E6FJ22WY3]# cat logs/scripts.log
2020-04-29 14:23:35 LifecycleEvent - ApplicationStop
2020-04-29 14:23:35 Script - scripts/stop.sh
2020-04-29 14:23:35 [stderr]Error response from daemon: No such container: nexus
Итак, давайте извлечем фактический архив для этого развертывания и проверим его. Может ?? скрипт не пишется / отсутствует?
[root@ip-10-204-85-36 7dc37854-97b7-431e-90d1-64daeb47dd9b]# aws deploy get-deployment --deployment-id d-E6FJ22WY3 --profile ops | jq -re '.deploymentInfo.revision.s3Location | "s3://\(.bucket)/\(.key)"'
s3://sterling-build-artifacts-us-east-1/sonatype-nexus/sonatype-nexus-004A607A-1D92-45E8-82E2-FBC69ABC0AEA.tgz
[root@ip-10-204-85-36 ~]# cd
[root@ip-10-204-85-36 ~]# aws s3 cp s3://sterling-build-artifacts-us-east-1/sonatype-nexus/sonatype-nexus-004A607A-1D92-45E8-82E2-FBC69ABC0AEA.tgz .
download: s3://sterling-build-artifacts-us-east-1/sonatype-nexus/sonatype-nexus-004A607A-1D92-45E8-82E2-FBC69ABC0AEA.tgz to ./sonatype-nexus-004A607A-1D92-45E8-82E2-FBC69ABC0AEA.tgz
[root@ip-10-204-85-36 ~]# tar -xzf sonatype-nexus-004A607A-1D92-45E8-82E2-FBC69ABC0AEA.tgz
[root@ip-10-204-85-36 ~]# ls
appspec.yml awslogs.conf common-session docker-compose.yml limits.conf scripts sonatype-nexus-004A607A-1D92-45E8-82E2-FBC69ABC0AEA.tgz
[root@ip-10-204-85-36 ~]# cat scripts/stop.sh
#!/bin/env bash
echo "this is a test"
docker stop nexus &> /dev/null || true[root@ip-10-204-85-36 ~]#
NOPE!
И код ошибки, который показывает развертывание, относится к развертыванию 10 попыток go:
LifecycleEvent - ApplicationStop
Script - scripts/stop.sh
[stderr]Error response from daemon: No such container: nexus
В зависимости от aws из bash, эта банка 't будет правильным выводом. И, основываясь на ls
из этого развертывания, мы видим, что у него даже нет такого сценария. Итак, я не знаю, откуда взялся этот скрипт, но он определенно не прав. Никакая документация не объясняет это, но я надеюсь, что кто-то здесь может дать мне некоторое представление.