changed#
Расширение тестирования ansible.builtin.changed проверяет, внесла ли задача изменения в ходе выполнения.
Для этого расширение проверяет наличие ключа changed в данных о состоянии задачи.
Если ключ существует и его значение равно true, результат проверки будет True.
У этого расширения есть также другое название – ansible.builtin.change.
Описание применения расширений тестирования приведено в документе Тестирование.
Особенности работы#
Для проверки, вносила ли задача изменения, используйте конструкцию:
<task_data> is ansible.builtin.changed
Здесь <task_data> – словарь с данными о задаче.
Его можно получить с помощью директивы register.
Для инверсии результата добавьте not:
<task_data> is not ansible.builtin.changed
Входные значения#
Расширение принимает единственный входной параметр Input – словарь данных с результатом выполнения задачи.
Выходные значения#
Расширение возвращает значение True или False в зависимости от результата проверки:
False– если ключchangedотсутствует или имеет значениеfalse;True– если значение ключаchangedравноtrue.
Пример#
Следующий пример демонстрирует использование ansible.builtin.changed для определения необходимости перезапуска службы после изменения конфигурационного файла.
Если файл был изменен, запускается задача перезапуска службы. В противном случае никаких действий не происходит.
---
#...
tasks:
- name: Update configuration file
ansible.builtin.template:
src: config.j2
dest: /etc/myapp/config.yml
register: config_update
- name: Restart application service if config changed
ansible.builtin.service:
name: myapp
state: restarted
when: config_update is ansible.builtin.changed