【发布时间】:2017-06-27 06:46:02
【问题描述】:
我正在运行一些使用 sqlplus 的 SQL 脚本。在运行之前,我会从该目录中获取所有 sql 文件列表并将其存储在 sql_out 中,如下所示。
问题是如果其中一个 sql 脚本失败,其余的 sql 脚本仍会执行。如果任何一个脚本失败,我想完全跳过该任务。有什么办法可以跳过。我认为我们可以使用with_items,但不确定如何实现。有什么帮助吗?
- 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
【问题讨论】:
-
请描述您想要实现的确切场景。举个例子。描述脚本以何种方式失败。并且不要解析
ls! -
此外,
tags对这个问题至关重要吗?script参数是否需要您包含的换行符?第一个任务是要在远程目标上运行,而第二个任务是在本地运行吗?因为这就是代码中的内容。 “不确定如何实施”是什么意思?您是否尝试运行您发布的代码,或者认为不值得尝试并最好让 StackOverflow 上的某个人为您执行此操作?