success#

Расширение тестирования ansible.builtin.success проверяет успешность выполнения задачи. Для этого оно сравнивает значение поля failed в данных о состоянии задачи со значением False.

У этого модуля есть также другие названия:

  • ansible.builtin.seccessful;

  • ansible.builtin.succeeded.

Описание применения расширений тестирования приведено в документе Тестирование.

Особенности работы#

Для проверки статуса задачи используйте конструкцию:

<task_data> is ansible.builtin.success

Здесь <task_data> – словарь с данными о задаче. Его можно получить с помощью директивы register.

Для инверсии результата сравнения добавьте not:

<task_data> is not ansible.builtin.success

Совет

Также для инверсии результата вместо ansible.builtin.success можно использовать расширение тестирования ansible.builtin.failed.

Входные значения#

Расширение принимает единственный входной параметр Input – словарь данных о состоянии задачи Ansible.

Выходные значения#

Расширение возвращает значение True или False в зависимости от результата проверки:

  • False – при выполнении задачи возникли ошибки;

  • True – задача выполнена успешно.

Пример#

Следующий пример демонстрирует использование ansible.builtin.success для реализации обработчика ошибок. Этот сценарий состоит из трех задач:

  1. Загрузка файла installer.deb в каталог /tmp/ с помощью модуля ansible.buitlin.fetch.

  2. Установка пакета /tmp/installer.deb с помощью модуля ansible.builtin.apt.

  3. Удаление пакета /tmp/installer.deb. Эта задача выполняется только в том случае, если задача установки пакета выполнена без ошибок.

---
# ...
  tasks:
    - name: Download DEB package from URI
      ansible.builtin.fetch:
        dest: /tmp/installer.deb
        src: https://example.com/downloads/installer.deb

    - name: Install DEB package
      ansible.builtin.apt:
        deb: /tmp/installer.deb
        state: present
      register: install_software

    - name: Remove installer
      ansible.builtin.file:
        path: /tmp/installer.deb
        state: absent
      when: install_software is ansible.builtin.success