有没有一种方法可以在失败时运行任务而不会阻止/救援?

时间:2020-10-24 14:43:22

标签: ansible

我想在任务失败时运行一些 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

1 个答案:

答案 0 :(得分:2)

没有办法做到。 Rescue不包含block,您可以在第一个任务中使用register保存一个变量,如果变量为false,则可以使用when执行其他任务,但我想最好还是使用block代替。