요리사를 활용하면서 여러 호스트에 내 애플리케이션 (웹/DB/애플리케이션 계층)을 배포하는 방법을 모색 중입니다. 내가 생각해 낸 것은 요리사 레시피를 사용하여 배포의 각 단계를 개별 노드 상태으로 표시하는 것입니다. 예를 들어 X 데몬 & 모니터링을 중지하는 단계가있는 경우 특정 X 데몬이 중지 될 것으로 예상하는 요리사 레시피로 작성 될 수 있습니다. 동일한 방식으로 이슈를 공유 위치에서 웹 루트로 이동하는 배포 단계는 해당 노드의 특정 상태를 나타내는 요리사 레시피로 참조 할 수도 있습니다 (지점 A에서 지점 B로 아티팩트가 복사 됨).요리사와의 지속적인 배포 및 오케스트레이션
전체 배포 프로세스는 기본적으로이 세 가지 일을 여러 단계로 구성됩니다 :
- 는 현재 배포 단계에 따라 노드의 실행 목록을 수정합니다.
- 각 노드에서 chef-client 실행
- 실패를 기록하고 실패한 노드에서 반복 실행하거나 단계를 건너 뛰면 배치를 계속할 수 있습니다.
질문 :
- 나쁜 연습 (지속적으로 노드 상태를 변경하기 위해 내 노드의 실행 목록을 수정)하는 방식으로 요리사를 사용 있나요? 그렇다면 왜?
- 이 모든 것을 조율하는 가장 좋은 방법은 무엇입니까? 거기에 CI 도구를 사용할 수는 있지만 chef-client의 출력을 캡처하고 특정 노드에서 실행되는 chef-client를 무시하거나 무시할 수있는 방법을 알아내는 데 어려움이 있습니다.