OK
{% for host in groups['keepalived'] | map('extract', hostvars, ['ansible_{{ interface }}', 'ipv4', 'address']) | list | difference([ansible_{{ interface }}.ipv4.address]) %}
{{ host }}
{% endfor %}
но проблема в том, что {{ interface }} на разных машинах разный, при подстановке переменой {{ interface }} в цикл он заваливается. Как описать в j2 момент с разными значениями переменной {{ interface }}? спасибо