hosts: localhost
strategy: linear
gather_facts: false
tasks:
- set_fact:
grouplist: "{{ groups.keys()|list|select('search','subnet')|list }}"
online: "{{ hostvars|json_query('[@.*][0]|[?!(rsyncstat.failed)].inventory_hostname') }}"
tested: "{{ hostvars|json_query('[@.*][0]|[?testfact].inventory_hostname') }}"
vars:
- jquery: "[@.*][0]|[?!(rsyncstat.failed)].inventory_hostname"
- debug: var=groups.{{ item }}|sort|first
loop: "{{ grouplist }}"
- debug: var={{item}}
with_items:
- grouplist
- online
- tested
- debug: var=groups.{{ item }}|intersect({{tested}})|default(groups.{{ item }}|intersect({{online}}))
loop: "{{ grouplist }}"
И да, это программирование на ансибл. Тут проблема в том что внутри default не отрабатывает. и в msg этот последний дебаг не могу перевести, т.е. это не возможно вынести в какую-то переменную. Вариант конечно под каждую подсеть генерить две переменные и потом их сводить в одну. или писать модуль для обработки этого именно в питоне. И тут я могу застрять, по причине отсутствия навыков программирования на питоне. Т.е. минимум еще пару дней дополнительно в минимуме.
лайк! groups.{{ item }}|intersect({{tested}})|default(groups.{{ item }}|intersect({{online}})) пиши еще!
Обсуждают сегодня