Условный переменный - PullRequest
       2

Условный переменный

0 голосов
/ 19 ноября 2018

У меня есть простая задача оболочки - 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...