названия выполняет таск один раз не зависимо от количества хостов в плее и делает это на первом хосте плея. В сочетании с when вы получаете очень специфичный рандомайзер.
решил так - set_fact: test0: "{{ groups['all'] | map('extract', hostvars) | selectattr('myvalue') | map(attribute='ansible_hostname') | first }}" - set_fact: test1: "{{ groups['all'] | map('extract', hostvars) | rejectattr('myvalue') | map(attribute='ansible_hostname') | list }}" - debug: msg: "{{ hostvars[item].ansible_hostname }} {{ hostvars[item].ansible_host }}" with_items: "{{ test1 }}" delegate_to: "{{ test0 }}" run_once: true
Извините, но так вы помощи не найдете. Вместо одной хераборы написали другую, совсем не рассказав что же в итоге нужно было
Извините, но кажется, то что вы написали ещё более бессмысленно. И скорее всего таска 3 сломается как только у вас в переменной test0 окажемся больше одного хоста. Расскажите какую именно задачу вы пытаетесь решить, может быть ее можно решить менее извращёнными способами :-)
в переменной test0 не будет больше 1 хоста так как стоит модификатор | first - первый из списка
Обсуждают сегодня