diff options
Diffstat (limited to 'roles/ssh_dns')
-rw-r--r-- | roles/ssh_dns/tasks/main.yml | 6 | ||||
-rw-r--r-- | roles/ssh_dns/templates/generate_dns.j2 | 24 |
2 files changed, 28 insertions, 2 deletions
diff --git a/roles/ssh_dns/tasks/main.yml b/roles/ssh_dns/tasks/main.yml index 60a21bd..c134d1b 100644 --- a/roles/ssh_dns/tasks/main.yml +++ b/roles/ssh_dns/tasks/main.yml @@ -1,8 +1,10 @@ -# ssh ~~ tasks/local_dns.yml +# ssh dns ~~ roles/ssh_dns/tasks/main.yml +# generate dns for ssh use on workstations + +--- - name: Generate template to localhost template: src: templates/generate_dns.j2 dest: "{{ lookup('env', 'HOME') }}/.ssh/config.d/ssh_dns" - delegate_to: 127.0.0.1 diff --git a/roles/ssh_dns/templates/generate_dns.j2 b/roles/ssh_dns/templates/generate_dns.j2 new file mode 100644 index 0000000..5d58ae9 --- /dev/null +++ b/roles/ssh_dns/templates/generate_dns.j2 @@ -0,0 +1,24 @@ + +# ssh configuration for dns ~~ ~/.ssh/.config.d/ +# managed by Ansible + +{% for h in groups["all"] %} +{% set h = hostvars[h] %} +{##} +{% 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 "ls /sys/class/net/{{ _i.dcontroller }} && ! ping -c 1 -W 5 {{ h.ip.out }}" + HostName {{ h.ip.in }} + Port {{ _port }} + +Match originalhost {{ h.ansible_host }} + HostName {{ h.ip.out }} + Port {{ _port }} + User root + +{% endif %} +{##} +{% endfor %} |