From a0dd74445b4460e5e7fa4c72bd478348eb960224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Gon=C3=A7alves?= Date: Sun, 5 Dec 2021 13:07:49 +0000 Subject: roles/workstation: Generate hostnames for ssh --- roles/workstation/tasks/main.yml | 11 +++++++++++ roles/workstation/tasks/ssh.yml | 18 ++++++++++++++++++ roles/workstation/templates/ssh.config.j2 | 11 +++++++++++ 3 files changed, 40 insertions(+) create mode 100644 roles/workstation/tasks/ssh.yml create mode 100644 roles/workstation/templates/ssh.config.j2 (limited to 'roles/workstation') diff --git a/roles/workstation/tasks/main.yml b/roles/workstation/tasks/main.yml index c20b81b..87f6188 100644 --- a/roles/workstation/tasks/main.yml +++ b/roles/workstation/tasks/main.yml @@ -32,3 +32,14 @@ file: smartcard.yml apply: tags: task_smartcard + +- name: include ssh setup + tags: always + include_tasks: + file: ssh.yml + apply: + tags: task_ssh + args: + apply: + become: true + become_user: "{{ workstation_user }}" diff --git a/roles/workstation/tasks/ssh.yml b/roles/workstation/tasks/ssh.yml new file mode 100644 index 0000000..318198e --- /dev/null +++ b/roles/workstation/tasks/ssh.yml @@ -0,0 +1,18 @@ +- name: create ssh directory + file: + path: "/home/{{ workstation_user }}/{{ item }}" + owner: "{{ workstation_user }}" + group: "{{ workstation_user }}" + state: directory + mode: 0700 + loop: + - .ssh + - .ssh/config.d + +- name: generate ssh configuration + template: + src: ssh.config.j2 + dest: "/home/{{ workstation_user }}/.ssh/config.d/dns.config" + owner: "{{ workstation_user }}" + group: "{{ workstation_user }}" + mode: 0600 diff --git a/roles/workstation/templates/ssh.config.j2 b/roles/workstation/templates/ssh.config.j2 new file mode 100644 index 0000000..2915a1a --- /dev/null +++ b/roles/workstation/templates/ssh.config.j2 @@ -0,0 +1,11 @@ +# managed by Ansible +{% import 'macros.j2' as macros with context %} + +{% call(h) macros.loop_valid_hosts("all") %} +{% set command = "pgrep wg && ! ping -c 1 -w 1 %s" % h.__ip.external %} +Match originalHost {{ h.inventory_hostname }} exec "{{ command }}" + HostName {{ h.__ip.internal }} +Match originalHost {{ h.inventory_hostname }} + HostName {{ h.__ip.external }} + +{% endcall %} -- cgit v1.2.3