Не удалось развернуть развертывание кода AWS для сценариев оболочки - PullRequest
0 голосов
/ 01 сентября 2018

Пытаюсь создать группу развертывания CodeDeploy с использованием стека формирования облака. Каждый раз, когда я запускаю стек, я получаю ошибки скрипта, такие как Bad Interpreter, команда rm / ll не найдена, / r / n ошибки. Я попытался изменить файлы сценариев оболочки с помощью dos2unix, сжать эти файлы и загрузить в CodeDeploy, но безуспешно.

Ниже приводится сообщение об ошибке, которое я получаю в журналах:

2018-09-01 10:41:45 INFO  [codedeploy-agent(2681)]: [Aws::CodeDeployCommand::Client 200 0.037239 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":4,\"script_name\":\"BeforeInstall.sh\",\"message\":\"Script at specified location: BeforeInstall.sh run as user root failed with exit code 127\",\"log\":\"LifecycleEvent - BeforeInstall\\nScript - BeforeInstall.sh\\n[stderr]/usr/bin/env: bash\\r: No such file or directory\\n\"}"},host_command_identifier:"WyJjb20uYW1hem9uLmFwb2xsby5kZXBsb3ljb250cm9sLmRvbWFpbi5Ib3N0Q29tbWFuZElkZW50aWZpZXIiLHsiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS91cy1lYXN0LTEvUHJvZC9hcm46YXdzOnNkczp1cy1lYXN0LTE6OTkzNzM1NTM2Nzc4OmRlcGxveW1lbnQvZC05V0kzWk5DNlYiLCJob3N0SWQiOiJhcm46YXdzOmVjMjp1cy1lYXN0LTE6OTkzNzM1NTM2Nzc4Omluc3RhbmNlL2ktMDk1NGJlNjk4OTMzMzY5MjgiLCJjb21tYW5kTmFtZSI6IkJlZm9yZUluc3RhbGwiLCJjb21tYW5kUG9zaXRpb24iOjMsImNvbW1hbmRBdHRlbXB0IjoxfV0=")

2018-09-01 10:41:45 ERROR [codedeploy-agent(2681)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: InstanceAgent::Plugins::CodeDeployPlugin::ScriptError - Script at specified location: BeforeInstall.sh run as user root failed with exit code 127 - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:173:in `execute_script'

......
......

2018-09-01 10:41:45 INFO  [codedeploy-agent(2681)]: [Aws::CodeDeployCommand::Client 200 0.018288 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"Script at specified location: BeforeInstall.sh run as user root failed with exit code 127\",\"log\":\"\"}"},host_command_identifier:"WyJjb20uYW1hem9uLmFwb2xsby5kZXBsb3ljb250cm9sLmRvbWFpbi5Ib3N0Q29tbWFuZElkZW50aWZpZXIiLHsiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS91cy1lYXN0LTEvUHJvZC9hcm46YXdzOnNkczp1cy1lYXN0LTE6OTkzNzM1NTM2Nzc4OmRlcGxveW1lbnQvZC05V0kzWk5DNlYiLCJob3N0SWQiOiJhcm46YXdzOmVjMjp1cy1lYXN0LTE6OTkzNzM1NTM2Nzc4Omluc3RhbmNlL2ktMDk1NGJlNjk4OTMzMzY5MjgiLCJjb21tYW5kTmFtZSI6IkJlZm9yZUluc3RhbGwiLCJjb21tYW5kUG9zaXRpb24iOjMsImNvbW1hbmRBdHRlbXB0IjoxfV0=")

В чем может быть причина неудачи?

1 Ответ

0 голосов
/ 13 октября 2018

Журналы указывают, что есть какие-то проблемы с вашими скриптами, в частности BeforeInstall.sh. Что-то в этом скрипте происходит с ошибкой с кодом завершения 127. Я бы порекомендовал добавить логи к этому скрипту, чтобы увидеть, где на самом деле происходит сбой. Как только вы определили команду, которая не выполняется, вы можете увидеть, что означает код выхода 127 для этой конкретной команды.

Если вам нужна помощь в отладке этого конкретного сценария, вам следует открыть еще один вопрос и предоставить сценарий, включая журналы при его запуске.

Примечание о крюках жизненного цикла CodeDeploy

В вашем случае ваш BeforeInstall скрипт не работает, это будет скрипт, который будет развернут с вашим приложением. Однако, если ваш сценарий ApplicationStop не работал, важно понимать, что ApplicationStop использует сценарии последнего успешного развертывания, поэтому, если в последнем успешном развертывании был сценарий сбоя, это может привести к сбою будущих развертываний до эти шаги выполняются .

...