저는 heroku에서 engine yard로 rails3 앱을 이동 중입니다. 각 배치시 엔진 마당에서 sidekiq을 시작 (또는 재시작)하는 방법을 알고 싶습니다. sidekiq가 작동하는지 확인하려면 EY 인스턴스로 ssh하고 sidekiq를 수동으로 시작하십시오. 이 프로세스를 EY 배포 스크립트 (config/deploy.yml)에서 처리하도록합니다. 나는 mina 배치와 EC2에 익숙하다.engineyard에서 sidekiq를 시작하는 방법
답변
Engine Yard는 환경을 사용자 정의하는 두 가지 방법을 제공합니다. custom chef recipes 및 deploy hooks을 사용할 수 있습니다.
SideKiq의 경우 두 가지를 모두 사용하는 것이 좋습니다. 사용자 지정 요리사 레시피를 사용하여 SideKiq을 구성 및 실행하고 새 코드를 배포 할 때마다 SideKiq를 다시 시작하기위한 전개 후크를 사용합니다.
Engine Yard는 SideKiq에 대한 사전 제작 된 맞춤 요리사 레시피를 http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq에 제공합니다. 예제 레서피에 대한 문서는 deploy 후크에도 정확히 사용할 것을 보여줍니다.
사용자 정의 레서피를 사용하려면 먼저 엔진 야드 보석을 로컬에 설치해야합니다 (gem install engineyard
). 그런 다음 git clone [email protected]:engineyard/ey-cloud-recipes.git
을 사용하여 예제 리포지토리의 복사본을 만듭니다.
일단 저장소를 복제하면 ./ey-cloud-recipes/cookbooks/main/recipes/default.rb에 require_recipe 'sidekiq'
을 추가 한 다음 문서에 설명 된대로 사이드 키 작성법을 수정해야합니다.
모든 것이 완료되면 ey recipes upload
을 실행 한 다음 ey recipes apply
을 실행하여 사용자 환경에 래서 피를 적용 할 수 있습니다. EY gem에서 레서피를 적용하려는 응용 프로그램 및 환경을 추측 할 수 있는지 여부에 따라 일부 명령 행 옵션을 지정해야 할 수도 있습니다. ey 명령의 출력은 필요한 정보를 제공해야합니다.
레시피를 적용한 후에는 애플리케이션이있는 git 리포지토리에 배치 후크를 생성해야합니다. 저장소의 루트에 'deploy'디렉토리를 만들고 after_restart.rb deploy hook sidekiq chef recipe 's documentation에 설명 된대로.
다시 배포하면 좋은 결과를 얻으실 수 있습니다.
문제가 생기면 Engine Yard의 지원을 받아주세요. 기꺼이 도와 드리겠습니다.
http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq에 지정된대로 구현되었습니다. 나는 메인 레시피를 변경하고 지정된대로 후크를 추가했습니다. 내 조리법은 업로드되지만 적용되지는 않습니다. 오류가 발생했습니다. EY 지원에 대한 티켓을 추가했습니다. 솔루션을 얻을 때 대답을 업데이트합니다. 감사. –