Скрипт запуска на EC2 - PullRequest
       14

Скрипт запуска на EC2

6 голосов
/ 13 февраля 2009

Я создал пользовательский Amazon AMI (Fedora), запускает несколько сценариев и затем завершает работу.

Проблема с AMI состоит в том, что если мой код изменяется, у экземпляра AMI должен быть способ получить последние сценарии до того, как он их выполнит.

Я написал сценарий оболочки и поместил его в /etc/init.d/nt_startup

Чтобы поддерживать код в актуальном состоянии, я выполняю сценарий оболочки git pull в своем хранилище кода и затем выполняю сценарий.

Проблема в том, что git pull не запускается при загрузке экземпляра, но скрипт на python работает просто отлично. Не уверен, что мне не хватает ... вот сценарий запуска:

#!/bin/bash
#
# ec2 Startup script for EC2 machines
#
# chkconfig: 345 99 02
# description: Script used to issue startup and shutdown commands.
#

if [ "$1" = "start" ]; then
 /usr/scripts/code/git_latest
 python /usr/scripts/code/process.py
 exit
fi

if [ "$1" = "stop" ]; then
#nothing
exit
fi

Сценарий оболочки /usr/scripts/code/git_latest выглядит следующим образом:

#pulls in the latest code from the repository
cd /usr/scripts/code
sudo git pull

Должно быть сброшено самое последнее process.py скрипт.

Странно то, что если я запускаю ssh в свой экземпляр и вручную запускаю сценарий запуска (/etc/init.d/nt_startup "start"), сценарий git работает просто отлично.

Я что-то упустил?

Ответы [ 2 ]

3 голосов
/ 14 февраля 2009

ОК, я наконец понял это. После очистки вывода EC2 я нашел эту строку:

"Запуск ntstartup: sudo: извините, у вас должен быть tty для запуска sudo"

Очевидно, что Fedora блокирует не tty команды sudo.

Быстрый поиск привел к решению:

  1. В качестве пользователя root запустите "visudo".
  2. Найдите строку с параметром "По умолчанию requiretty" и закомментируйте ее (#Default requiretty)

Надеюсь, что это полезно для всех, кто сталкивается с этой проблемой.

0 голосов
/ 13 февраля 2009

Вы должны поместить ссылку на запуск в /etc/rc?.d. Вы можете использовать chkconfig (8) или ntsysv (8), чтобы помочь вам управлять этими каталогами.

...