2012-03-29 5 views
0

실행 인스턴스 EC2 API에 전달 된 사용자 데이터 스크립트의 일부로 Rails 애플리케이션을 완전히 시작하려고합니다. 이 스크립트는 적절한 키를 설정 내 자식의 repo에서 응용 프로그램을 다운로드하고 그것을 시작으로, 일부 초기화 스크립트를 실행해야합니다 AWS ec2의 사용자 데이터 스크립트에서 레이크 작업 수행

bundle install 

모든 누락 된 보석을 설치해야한다. 그러나 실패합니다. 다른 명령은 정상적으로 작동합니다.

원래 실패는 번들 명령을 찾을 수 없다는 것이 었습니다. 수동으로 환경 변수를 설정하여 해결했지만 여전히 루비는 bundler 보석을 찾을 수 없었습니다.

내 문제는 여기에 내가 (일단 사용자 데이터 스크립트가 실패했습니다) 시작된 인스턴스에 ssh를 사용하면 번들러가 문제없이 작동한다는 것입니다. 이것은 원래 문제를 디버그 할 수있는 방법이 없습니다.

ec2에서 사용자 데이터가 실행되는 자격 증명은 무엇입니까? 이것이 문제가 될 수 있습니까? 번들러가 bash 스크립트에서 호출 될 수없는 몇 가지 특별한 이유가 있습니까?

답변

3

레일즈 애플리케이션으로 디렉토리를 변경 했습니까?

번들을 호출 할 수도 있습니다. 솔루션을 아직 찾지 못했다면 이런 식으로 시도해 보겠습니다.

#Pipe stdout and stderr to a log file. 
exec &> /home/ubuntu/startup.log 

DIR=/home/ubuntu/[rails app] 

echo "[START UP] change directory: " $DIR 
cd $DIR 

echo "[START UP] Update code" 
sudo -u ubuntu git pull origin master 

echo "[START UP] Bundling latest codebase" 
bundle 
+0

정확하게 해결책은 아니지만 그것을 이끌어 냈습니다. :) – zmilojko

+0

@zmilojko 그래서 해결책은 무엇입니까? – Sixty4Bit