Инструменты пользователя

Инструменты сайта


linux:ansible:error

Это старая версия документа!


Действия в случае ошибки.

Рассмотрим 2 варианта:

  • Мы, в любом случае, хотим выполнить чать задачь, даже если сценарий прекратит работу из-за ошибки.
  • Мы хотим выполнить определенное действие, если сценарий прекратит работу из-за ошибки.
Это возможно реализовать с помощью block + rescue/always.

Рассмотрим пример.

а) Выполнять задачу после rescue, если основной сценарий выполнился с ошибкой:

- name: Основной сценарий
  block:
    ...
  rescue:
    - name: Выполнить, если произошла ошибка
      debug:
        msg: 'Show error'

б) Выполнять задачу после always независимо от результата выполнения основного сценария:

- name: Основной сценарий
  block:
    ...
  always:
    - name: Выполнить в любом случае
      command: rm -f /tmp/test

в) И то и другое:

- name: Основной сценарий
  block:
    ...
  rescue:
    - name: Выполнить, если произошла ошибка
      debug:
        msg: 'Show error'
  always:
    - name: Выполнить в любом случае
      command: rm -f /tmp/test

* в данном примере мы отобразим текст Show error только при наличии ошибки, а также выполним команду rm -f /tmp/test независимо от исхода работы сценария.

linux/ansible/error.1701115039.txt.gz · Последние изменения: 2023/11/27 22:57 — werwolf