Ansible - Beenden Sie bei einem Fehler die Rolle und führen Sie die Bereinigung durch
Ich versuche, eine AWS-Bereitstellungsumgebung in Ansible hochzufahren, und ich möchte, dass Ansible bei einem Fehler auf dem Weg alles auf AWS herunterfährt, was bisher hochgefahren wurde. Ich kann nicht herausfinden, wie ich Ansible dazu bringen kann, einen Fehler in die Rolle @ zu werfe
Beispielsweise
<main.yml>
- hosts: localhost
connection: local
roles:
- make_ec2_role
- make_rds_role
- make_s3_role
2. Then I want it to run some code based on that error here.
<make_rds_role>
- name: "Make it"
- rds:
params: etc <-- 1. Let's say it fails in the middle here
Ich habe es versucht
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr"
Sowie andere Dinge in der Dokumentation, aber was ich wirklich will, ist nur eine Möglichkeit, so etwas wie die Befehle "block" und "rescue" zu verwenden, aber soweit ich das beurteilen kann, funktioniert das nur innerhalb desselben Buches und so weiter spielt, keine Rollen. Hat jemand eine gute Möglichkeit, dies zu tun?