задумка кормить ufw не ip-адресами a inventory_hostname провалилась, ибо ufw не понимет хостнеймы (хотя iptables под капотом). В следующий заход я попробовал скормить ufw ansible_default_ipv4 из hostvars['groupname'], но и тут не удалось, ибо серевра могут быть в нескольких подсетях, в том числе и внешних, а нужен один конкретный адрес из конкретной подсети, а ansible_default_ipv4 отдает адрес с 1 интерфейса. Есть мысль написать луп с резолвом на каждый inventory_hostname, но это во первых не красиво, а во вторых будет долго. Может есть еще какие способы?
есть вообще фильтр ipaddr. пример использования: vars.yml: —- check_source: "{{ ansible_all_ipv4_addresses | ipaddr('192.168.20.0/24') | ipaddr(-1) | first }}:1025-65000"
Обсуждают сегодня