From f45e95d70ea1085ce5511cc745882bb654474d44 Mon Sep 17 00:00:00 2001 From: binary Date: Tue, 19 Jan 2021 23:04:46 +0100 Subject: Rename sshdns role --- roles/sshdns/tasks/main.yml | 16 ++++++++++++++++ roles/sshdns/templates/generate_dns.j2 | 25 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 roles/sshdns/tasks/main.yml create mode 100644 roles/sshdns/templates/generate_dns.j2 (limited to 'roles/sshdns') diff --git a/roles/sshdns/tasks/main.yml b/roles/sshdns/tasks/main.yml new file mode 100644 index 0000000..0942e68 --- /dev/null +++ b/roles/sshdns/tasks/main.yml @@ -0,0 +1,16 @@ + +# ssh dns ~~ roles/ssh_dns/tasks/main.yml +# generate dns for ssh use on workstations + +--- + +- name: create config directory + file: + path: "{{ lookup('env', 'HOME') }}/.ssh/config.d" + state: directory + mode: 0700 + +- name: Generate template to localhost + template: + src: templates/generate_dns.j2 + dest: "{{ lookup('env', 'HOME') }}/.ssh/config.d/ssh_dns" diff --git a/roles/sshdns/templates/generate_dns.j2 b/roles/sshdns/templates/generate_dns.j2 new file mode 100644 index 0000000..a509677 --- /dev/null +++ b/roles/sshdns/templates/generate_dns.j2 @@ -0,0 +1,25 @@ + +# ssh configuration for dns ~~ ~/.ssh/.config.d/ +# managed by Ansible + +{% for h in groups["all"] %} +{% set h = hostvars[h] %} +{% set dcontroller = hostvars[global.dcontroller] %} +{##} +{% 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 5 {{ dcontroller.ip.in }} && ! 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 %} -- cgit v1.2.3