2016-03-04 2 views
1

У меня есть эта часть playbbokанзибль with_first_found не работает

- shell: echo "{{ ansible_env.CMS_PLI }}/conf/application.conf" 
    register: pli_loc 
- shell: echo "{{ ansible_env.CMS }}/conf/application.conf" 
    register: cms_loc 
- shell: "echo {{ item }}" 
    with_first_found: 
    - "{{ pli_loc.stdout }}" 
    - "{{ cms_loc.stdout }}" 
    - "{{ ansible_env.CMS_PLI }}/conf/application.conf" 
    - /etc/passwd 

Первый и второй выход скорлупы нормально, существуют файлы, но выходы третьего оболочки только/и т.д./пароль

Я хотел бы, третий вывод оболочки должен быть одним из pli_loc.stdout или cms_loc.stdout

Почему он не находит одно из первых?

+0

Принудительный вызов модуля 'debug:' перед последней командой оболочки, чтобы убедиться, что эти значения содержат то, что, по их мнению, они содержат. Есть ли в режиме подробного использования какая-либо дополнительная информация? – larsks

ответ

4

Почему он не находит одно из первых?

Потому что with_first_found (как и все плагины для поиска) выполняются локально, а не удаленно. Итак, вы ищете файлы на хосте управления.

Посмотрите на docs для этого цикла. Пример - это шаблонная задача, поэтому ясно, что это поиск на узле управления. К сожалению, документы не очень ясны в этом вопросе, и вы должны прочитать их в контексте используемых модулей.

Смежные вопросы