Например, учитывая файл и книгу воспроизведения
оболочка> кошка test.txt
ХХ
оболочка> cat playbook.yml
- хосты: локальный
задачи:
- доступная.встроенная.команда:
cmd: кошка test.txt
регистрация: sync_status
до: sync_status.stdout == 'SSUS'
задача не будет выполнена
ЗАДАЧА [ansible.builtin.command] ************************************************* **
НЕУДАЧА - ПОВТОРНАЯ Попытка: ansible.builtin.command (осталось 3 попытки).
НЕУДАЧА - ПОВТОРНАЯ Попытка: ansible.builtin.command (осталось 2 попытки).
НЕУДАЧА — ПОВТОРНАЯ Попытка: ansible.builtin.command (осталось 1 попытка).
фатальный: [localhost]: FAILED! => изменено = верно
попытки: 3
команда:
- кот
- test.txt
дельта: '0:00:00.003479'
конец: '2021-06-16 07:27:19.927499'
ру: 0
начало: '2021-06-16 07:27:19.924020'
стдерр: ''
stderr_lines: <опущено>
стандартный вывод: ХХ
stdout_lines: <опущено>
Но если вы вставите строку «SSUS» в файл до или во время тестирования, задача будет выполнена успешно, например.
ЗАДАЧА [ansible.builtin.command] ************************************************* **
НЕУДАЧА - ПОВТОРНАЯ Попытка: ansible.builtin.command (осталось 3 попытки).
НЕУДАЧА - ПОВТОРНАЯ Попытка: ansible.builtin.command (осталось 2 попытки).
изменено: [локальный хост]
Установите параметры к вашим потребностям.
Вопрос: "Если вывод состоит из нескольких строк, мне нужно будет использовать stdout_lines."
A: Проверьте наличие строки в списке, например.
- доступная.встроенная.команда:
cmd: кошка test.txt
регистрация: sync_status
до: "'SSUS' в sync_status.stdout_lines"