Ansible 块:在“rescue”块中重新引发错误

Pet*_*ete 7 error-handling ansible

rescue我是 Ansible 的新手,所以我可能会错误地处理这个问题,但我正在尝试找到一种方法,在错误被块删除后重新引发错误。

这样做的目的是能够在终止 playbook 之前将失败的任务记录到 API。我会使用该always部分,但随后ansible_failed_taskansible_failed_result变量不会被填充。

我相当确信我的方法是错误的,那么经验丰富的 Ansible 开发人员将如何处理这个问题?谢谢!

Zei*_*tor 6

如果我正确理解你想要做什么,这是我将如何管理它的基本(非功能性)说明。关键是在按照您希望的方式处理错误后,使用该fail模块在救援阶段结束剧本。

- name: handle error nicely in my block
  block:

    - name: This is my task that can fail
      debug:
        msg: "I'm a a task that can fail"
      register: some_var

  rescue:

    - name: Do whatever you need to log the failure
      debug:
        msg: "I'm a log task playing around with some_var: {{ some_var }}"

    - name: fail the playbook as the task was not successful
      fail:
        msg: "The task was not successful. Aborting"
Run Code Online (Sandbox Code Playgroud)

这个场景符合你的预期吗?