Я создал пользовательский 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 работает просто отлично.
Я что-то упустил?