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 для реализации обработчика ошибок.
Этот сценарий состоит из трех задач:
Загрузка файла
installer.debв каталог/tmp/с помощью модуля ansible.buitlin.fetch.Установка пакета
/tmp/installer.debс помощью модуля ansible.builtin.apt.Удаление пакета
/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