我想在任务失败时运行一些 code (例如任务)。我发现这样做的唯一方法是使用block
s。
block
/ rescue
方法适用于我的用例,但是它在我的剧本中强制使用(否则)不必要的关键字。
是否可以重写以下内容:
- name: my play
hosts: 127.0.0.0
any_errors_fatal: true
connection: local
tasks:
- name: install something and configure that thing
block:
- name: install something
shell: install something
- name: configure that something
shell: do some things
rescue:
- name: rollback
shell: uninstall that thing
在我不使用block
的地方吗?通过rescue
(如果可以使用无障碍救援?)或其他方式。像这样:
- name: my play
hosts: 127.0.0.0
any_errors_fatal: true
connection: local
tasks:
- name: install something
shell: install something
- name: configure that something
shell: do some things
rescue:
- name: rollback
shell: uninstall that thing
?
答案 0 :(得分:2)
没有办法做到。 Rescue不包含block,您可以在第一个任务中使用register
保存一个变量,如果变量为false,则可以使用when
执行其他任务,但我想最好还是使用block代替。