2016-11-01 3 views
0

Я пытаюсь запустить скрипт с момента, когда война будет загружена так вот содержимое конфигурацийЗапуск сценария из папки .ebextensions в AWS упругой Beanstalk

container_commands: 
    01_setup_apache: 
     command: "cp .ebextensions/enable_mod_deflate.conf /etc/httpd/conf.d/enable_mod_deflate.conf" 
    02_setup_script: 
     command: "sudo su root" 
    03_setup_script: 
     command: "sudo mkdir -p /home/dev" 
    04_setup_script: 
     command: "sudo chmod 777 /home/dev -R" 
    05_setup_script: 
     command: "sudo cp .ebextensions/scripts/setup.sh /home/dev/" 
    06_setup_script: 
     command: "sudo chmod +x /home/dev/setup.sh" 
    07_setup_script: 
     command: "sudo /home/dev/setup.sh" 
    08-restart-apache: 
     command: "sudo /etc/init.d/httpd restart" 

я попробовал все, но развертывание всегда терплю неудачу на выполнение setup.sh. В приведенном выше примере это терпит неудачу на 07_setup_script

Вот журнал содержание

] : Starting activity... 
/Command 01_setup_apache] : Starting activity... 
/Command 01_setup_apache] : Completed activity. 
/Command 02_setup_script] : Starting activity... 
/Command 02_setup_script] : Completed activity. 
/Command 03_setup_script] : Starting activity... 
/Command 03_setup_script] : Completed activity. 
/Command 04_setup_script] : Starting activity... 
/Command 04_setup_script] : Completed activity. 
/Command 05_setup_script] : Starting activity... 
/Command 05_setup_script] : Completed activity. 
/Command 06_setup_script] : Starting activity... 
/Command 06_setup_script] : Completed activity. 
/Command 07_setup_script] : Starting activity... 
/Command 07_setup_script] : Activity execution failed, because: sudo: unable to execute /home/dev/setup.sh: No such file or directory 
    (ElasticBeanstalk::ExternalInvocationError) 

Если SSH на случаях там нет папки или файла там (/ дом/DEV) или (/ дом/DEV /setup.sh) кажется, что предыдущие команды не были выполнены, но журнал говорит о завершении

Я знаю, что есть способ создать файл сценария во время выполнения, но можем ли мы избежать этого и просто использовать описанный выше метод.

ответ

2

Пара вопросов. Вы не должны начинать пытаться управлять домашней директорией/структурой каталогов вообще, это определенно вне передовых методов beanstalk. Также не выполняйте действия как sudo, он выполняет hooks как root.

ли что-то вроде этого:

в .ebextension/foo.config:

container_commands: 
    01_restart_httpd: 
    command: /etc/init.d/httpd restart 

files: 
    /etc/httpd/conf.d/enable_mod_deflate.conf: 
    mode: "000644" 
    owner: root 
    group: root 
    content: | 
     #content of your conf 

или же

files: 
    /etc/httpd/conf.d/enable_mod_deflate.conf: 
    mode: "000644" 
    owner: root 
    group: root 
    content: | 
     #content of your conf 

    /opt/elasticbeanstalk/hooks/appdeploy/post/50_restart_httpd: 
    mode: "000777" 
    owner: root 
    group: root 
    content: | 
     #!/bin/sh 
     /etc/init.d/httpd restart 
+0

Да, это то, что я сейчас делаю (создание файлов во время выполнения и добавления данных), но я хочу, чтобы мой файл sh запускался. –

+0

Найдите, где находятся файлы для развертывания post/opt и поместите их там, см. Пример –

+0

. Длинная история не пытается создать/управлять домашним каталогом, это не «путь beanstalk». Правильный способ - это комбинация примеров, которые я опубликовал в ответе. –

Смежные вопросы