aboutsummaryrefslogtreecommitdiffstats
path: root/roles/_workstation/sshdns/templates/sshdns.j2
diff options
context:
space:
mode:
authorRomain Gonçalves <me@rgoncalves.se>2021-05-03 20:21:31 +0200
committerRomain Gonçalves <me@rgoncalves.se>2021-05-03 20:21:31 +0200
commit5d07c5c3ea19bf03232ab6c90c3176f1ab0388f2 (patch)
tree4e992c28bb8114ac9cbb412146f5fbcf1b42ddb1 /roles/_workstation/sshdns/templates/sshdns.j2
parent2a4483132d4fea880c19283c9fadfe1e4e3a1b06 (diff)
downloadold-infrastructure-5d07c5c3ea19bf03232ab6c90c3176f1ab0388f2.tar.gz
sshdns: Refactor role for _workstation only
Diffstat (limited to 'roles/_workstation/sshdns/templates/sshdns.j2')
-rw-r--r--roles/_workstation/sshdns/templates/sshdns.j220
1 files changed, 20 insertions, 0 deletions
diff --git a/roles/_workstation/sshdns/templates/sshdns.j2 b/roles/_workstation/sshdns/templates/sshdns.j2
new file mode 100644
index 0000000..1778215
--- /dev/null
+++ b/roles/_workstation/sshdns/templates/sshdns.j2
@@ -0,0 +1,20 @@
+{% 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 %}
remember that computers suck.