개인 오픈 스택 클라우드로 terraform을 실행하여 새 서버를 부트 스트랩합니다. 가장 바쁜 시간대 (평일 오후에)에 새 서버 (모든 방법 사용)를 만들려고 할 때 일반적으로 서버의 절반이 실패합니다 (그리고 이것은 terraform과 관련이 없습니다). 문제는 내가 제공하려고 시도하는 서버 중 하나가 provisioner "remote-exec"
블록을 오류없이 완료하지 못하는 경우 (내 사설 클라우드로 인해) 내 terraform apply
이 중지됩니다.Terraform, 프로비저닝 중에 실패한 서버를 무시하는 방법은 무엇입니까?
terraform apply
을 실행할 때 terraform이 이러한 실패한 서버를 완전히 무시하도록합니다. 따라서 20 개의 서버를 프로비저닝하고 성공적으로 1 개의 서버 만 시작하면 해당 서버는 리소스 블록에서 지정한 모든 명령을 실행합니다 .
내 리소스에 추가 할 수있는 행이 ignore_failed_resources = true
이니 terraform이 실패한 서버를 무시하고 완료된 서버를 무시합니다.
TF에서 (내가 아는 한) 실제로 그렇게 할 방법이 없습니다. TF가 완료된 후 Terraform과 프로비저닝의 개별화를 시도하고 외부에서 준비 작업을 수행 할 수 있습니다. 우리는 TF를 만들어 인스턴스를 만든 다음 Aninst playbooks를 새 인스턴스와 별도로 실행하고 Jenkins를 통해 모든 인스턴스를 조정합니다. 전체에 약간의 복잡성을 추가하지만 여기에있는 것처럼 너무 단단히 결합되어 있지 않다는 것을 의미합니다. – ydaetskcoR
안녕하세요. 이전 의견과 같은 생각. terraform 기반 인프라를위한 경량 제공 도구 인 [sparrowform] (https://github.com/melezhik/sparrowform)을 사용해보십시오. 이것은 테라 폼과 분리되어 있으므로 프로비저닝 오류로 케이스를 처리합니다. –