2013-06-26 2 views
0

node.js 기반 웹 앱용 요리사 배치 스크립트를 작성하고 있습니다. 나는 총 주방장 n00b입니다.요리사에서 서비스 중지, 제거, 재설치

지금까지는 잘 진행 중입니다. 내 앱이 의존하는 모든 패키지를 설치하는 "dependencies.rb"레시피가 있습니다. 지금 당장은 "install.rb"를 작성하여 실제로 앱을 설치하려고합니다.

If the app install directory already exists then: 
    Stop the server 
    Delete the old install directory 
Unpack the new version to the install directory 
Start the service 

음, 즉 단순화를 통해 조금,하지만 그것은 내가 달성하기 위해 노력하고있어 다소의 :

는 내가 일이 싶은 것입니다. 조리법에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 나는 그것이 "통보"를 수반 할 것이라는 느낌이 들었습니다. : P

답변

0

대부분의 경우 제조법은 질문에서 정의한 의사 코드와 정확히 일치합니다. 그러나 당신이 고려해야 할 한가지 방법은 당신이 멱등수를 만드는 방법입니다.

Chef의 핵심 개념 중 하나는 컴퓨터가 이미 올바른 상태 (즉, 올바른 버전의 앱이 이미 배포되어있는 경우) 인 경우 어떤 작업도 수행하지 않아야한다는 것입니다.

아직 사용하지는 않았지만 애플리케이션 배포를 위해 LWRP를 노출하는 applicationapplication_nodejs 요리 책을 살펴보아야합니다.

+0

응용 프로그램에 대한 포인터를 보내 주셔서 감사합니다. 나는 그들에 대해 살펴볼 것이다. –

+0

내가 정말로하고 싶은 것은 내 응용 프로그램을 "myapp - # {version}"에 압축을 풀고 그 디렉토리에 "myapp"를 심볼릭시킨 다음 다른 포트에서 새 응용 프로그램을 시작하고 새 앱으로 HAProxy를 리디렉션하는 것입니다. , 그런 다음 이전 애플리케이션을 종료하고 가동 중단 시간을 효과적으로 줄 수 있습니다 (물론 DB 마이그레이션이 없으면 이전 애플리케이션을 먼저 종료하고 마이그레이션을 실행 한 다음 새 애플리케이션을 시작하십시오). 상자는 그 모든 것을 꺼내기에 충분할만큼 멋질 것입니다. –

+0

사실, 이것을 읽은 후 : http://docs.opscode.com/resource_deploy.html 이것은 내가 원하는 것을 거의 정확하게 수행 할 것입니다. 또한 방금 유용하다고 보이는 https://github.com/RiotGames/artifact-cookbook을 발견했습니다. –