{% import 'macros.j2' as macros with context %} # ssh configuration for dns ~~ ~/.ssh/.config.d/ # managed by Ansible {% set dcontroller = hostvars[global.dcontroller] %} {% call(h) macros.loop_hosts("servers") %} {% if h.ip is defined and h.services is defined %} {% set _port = h.services | selectattr("name", "equalto", "ssh") | map(attribute="port") | list | join(' ') %} # {{ h.ansible_host }} Match originalhost {{ h.ansible_host }} exec "ping -c 1 -w {{ sshdns_waittime }} {{ dcontroller.ip.in }} && ! ping -c 1 -w {{ sshdns_waittime }} {{ h.ip.out }}" HostName {{ h.ip.in }} Port {{ _port }} Match originalhost {{ h.ansible_host }} HostName {{ h.ip.out }} Port {{ _port }} User root {% endif %} {% endcall %}