Ansible: как использовать переменную ${item} from from_items в уведомлении?
Я новичок в Ansible, и я пытаюсь создать несколько виртуальных сред (по одному для каждого проекта, список проектов определяется в переменной).
Задача работает хорошо, я получил все папки, однако обработчик не работает, он не запускает каждую папку с виртуальной средой. Параметр ${item} varialbe в обработчике не работает.
Как я могу использовать обработчик, когда я использую with_items?
tasks:
- name: create virtual env for all projects ${projects}
file: state=directory path=${virtualenvs_dir}/${item}
with_items: ${projects}
notify: deploy virtual env
handlers:
- name: deploy virtual env
command: virtualenv ${virtualenvs_dir}/${item}
Ответы
Ответ 1
Обработчики просто "помечены" для выполнения, как только любая запрошенная (подчиненная подзадача) запрашивает его (в результате получилось изменение: да).
В то время обработчики точно так же, как и следующие обычные задачи, и не знают о детализации цикла.
Возможное решение не с обработчиком, а с extratask + условным
Что-то вроде
- hosts: all
gather_facts: false
tasks:
- action: shell echo {{item}}
with_items:
- 1
- 2
- 3
- 4
- 5
register: task
- debug: msg="{{item.item}}"
with_items: task.results
when: item.changed == True