У меня есть простая задача оболочки - feed with_items
.Я хочу, чтобы статус ' изменился ' только тогда, когда запуск действительно что-то сделал.Поэтому для этого я должен проанализировать вывод и найти « Done ».
Проблема использует register
в то время, когда with_items
генерирует список результатов.И я не нахожу способ получить доступ к stdout
текущей итерации цикла.
---
- name: Test to set changed status only on when output match with 'Done'
hosts: my-host-01
gather_facts: no
tasks:
- name: Task doing stuff
shell: |
echo {{ item }}
register: do_stuff
with_items:
- "Doing... Done!"
- "Nothing to do"
#changed_when: do_stuff.results[{{ item.id }}].stdout.find('Done')
- name: Print 'do_stuff' var to debug
debug:
var: do_stuff
- name: Try to access to the desired stdout
debug:
var: do_stuff.results[0].stdout
Ожидаемый результат, который я хотел бы получить:
TASK [Task doing stuff]
*************************************************************************
changed: [cnode02] => (item=Doing... Done!)
Ok: [cnode02] => (item=Nothing to do)