fehlschlägt Ich verwende einige SQL-Skripte mit sqlplus vorhanden. Bevor ich renne bekomme ich alle sql Dateien aus diesem Verzeichnis und speichere es in sql_out
wie unten gezeigt.Ansible - Aufgabe überspringen, wenn mindestens ein Element in der Schleife
Das Problem ist, wenn eines der SQL-Skript fehlschlägt, der Rest der SQL-Skripte noch ausgeführt wird. Ich möchte die Aufgabe vollständig überspringen, wenn eines der Skripts fehlschlägt. Gibt es eine Möglichkeit zu überspringen? Ich denke, wir können with_items
verwenden, aber nicht sicher, wie zu implementieren. Irgendeine Hilfe?
- name: "Get sql files from directory"
shell: ls {{ directory }}/{{ scripts_path }}/*.sql
register: sql_out
tags:
- sql
- name: "Execute each SQL Scripts"
script: sqlplus.sh {{ db_username }} {{ db_password }} {{
connection_string }} {{ schema }} {{ item }}
delegate_to: localhost
with_items: sql_out.stdout_lines
tags:
- sql
Bitte beschreiben Sie das genaue Szenario von dem, was Sie erreichen möchten. Nenne Beispiele. Beschreiben Sie, auf welche Weise die Skripts fehlschlagen. Und pars 'ls' nicht! – techraf
Außerdem ist die "Tags" entscheidend für die Frage? Erfordert der Parameter 'script' den von Ihnen eingeschlossenen Zeilenumbruch? Soll die erste Aufgabe auf Remote-Ziel (en) und die zweite lokal ausgeführt werden? Weil das im Code steht. Was meinst du mit "* nicht sicher, wie man * implementiert"? Haben Sie versucht, den von Ihnen geposteten Code auszuführen, oder haben Sie entschieden, dass es sich nicht lohnt, es zu versuchen, und besser jemanden auf StackOverflow dazu bringen, es für Sie zu tun? – techraf