Ich betreibe Terraform mit einer privaten Openstack-Cloud, um neue Server zu starten. Wenn ich versuche, während der geschäftigsten Betriebszeiten (wochentags am Nachmittag) neue Server zu erstellen (mit irgendeiner Methode), scheitert normalerweise die Hälfte der Server (und das hat nichts mit Terraform zu tun). Das Problem ist, wenn einer der Server, die ich versuche, einen provisioner "remote-exec"
Block fehlerfrei zu vervollständigen (wegen meiner privaten Wolke) mein ganzes terraform apply
stoppt.Terraform, wie man fehlgeschlagene Server während der Bereitstellung ignoriert?
Ich möchte Terraform vollständig ignorieren diese fehlgeschlagenen Server, wenn ich terraform apply
ausführen, so dass, wenn ich 20 Server bereitstellen und nur 1 von ihnen erfolgreich gestartet wird, dann durchläuft dieser Server alle Befehle, die ich in meinem Ressourcenblock angeben .
Gibt es so etwas wie eine ignore_failed_resources = true
Zeile, die ich meinen Ressourcen hinzufügen kann, damit Terraform die fehlgeschlagenen Server ignoriert und die erfolgreichen zum Abschluss führt?
Es gibt nicht wirklich eine Möglichkeit, das in TF zu tun (soweit ich weiß). Sie könnten versuchen, die Terraform und die Bereitstellung zu entbündeln und etwas externes zu tun, nachdem TF fertiggestellt wurde. Wir haben TF Instanzen erstellen und separat Ansible Playbooks gegen die neuen Instanzen ausführen und alles über Jenkins orchestrieren. Fügt dem Ganzen ein bisschen Komplexität hinzu, bedeutet aber, dass Sie nicht so eng miteinander verbunden sind wie Sie hier sind. – ydaetskcoR
Hallo! Die gleiche Idee wie beim vorherigen Kommentar. Probieren Sie [sparrowform] (https://github.com/melezhik/sparrowform) aus, ein einfaches Provisionierungswerkzeug für Terraform-basierte Infrastruktur. Es ist von Terraform entkoppelt, so dass dies Ihren Fall mit Bereitstellungsfehlern behandelt. –