2014-12-10 4 views
1

저는 처음으로 제로 다운 타임을 구축했습니다. 나는 배치 전후에 작업을 수행하여로드 밸런서를 업데이트하기 전에 상자를 꺼내서 다시 넣으려고했지만 나중에 좀 더 오류를 허용하려고합니다. 한 번에 몇 상자를 배포하고 있는데 serial: n/2입니다. 상황을 좀더 오류가없는 것으로 만들려면 한 상자에서 오류가 발생하면 코드에 문제가있는 경우 시스템이 모든 상자에 배포를 중단하는 것이 좋습니다. 어떻게해야합니까? 비슷한 맥락에서, 오류시에 롤백 할 수있는 간단한 방법이 있습니까? 나는 몇몇 사람들이 나의 후자의 요청과 같은 것을 해킹 방법처럼 보이고 두 가지 요청에 대해 표준적인 것을 기대하고 있음을 보았다.하나의 상자에 대한 잠재적 오류로 인해 모든 상자에 배포가 중단됩니다.

답변

1

너무 많은 호스트가 실패한 경우 maximum_fail_percentage을 사용하여 재생 목록을 중지 할 수 있습니다.

롤백 관련 - Anable가 '실패로 전환'을 장려합니다. 즉, 배포가 실패하면 처음부터 다시 실행할 수 있어야합니다. 그것은 Anabilities의 멱등 원 (idempotency)이 도움이되는 곳입니다. 이전에 완료 한 작업은 변경 사항을 두 번씩해서는 안됩니다.

정말로 롤백하고 싶다면 첫 번째 시나리오를 실행하는 보조 플레 북으로 실패 할 수 있습니다. Anabilities는 실패한 호스트의 목록을 재생 목록에 생성하므로 실패한 호스트 만 롤백 할 수 있습니다.

ansible-playbook deploy.yml || ansible-playbook rollback.yml --limit @$HOME/deploy.retry 
+0

좋은 답변입니다! 모든 것이 의미가 있지만, 새로운 코드에 문제가있는 경우를 대비하여 이전 버전의 앱으로 롤백하는 것을 의미했습니다. 그러한 상황에 대해 상세히 설명 된 모범 사례가 있습니까? – Eli

+0

흠, 내가 아는 것은 아닙니다. 어쨌든 책임감이있는 사람에게 국한되지 않습니다. – hkariti

관련 문제