diff options
Diffstat (limited to 'roles/sshd_keys/tasks/main.yml')
-rw-r--r-- | roles/sshd_keys/tasks/main.yml | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/roles/sshd_keys/tasks/main.yml b/roles/sshd_keys/tasks/main.yml index 32f6b5a..5d45e34 100644 --- a/roles/sshd_keys/tasks/main.yml +++ b/roles/sshd_keys/tasks/main.yml @@ -2,12 +2,33 @@ - name: get ssh keys for all users ansible.builtin.find: - paths: files/keys + paths: "{{ sshd_keys_paths }}" file_type: link recurse: true delegate_to: localhost run_once: true - register: result + register: sshd_keys_result_find + +- name: set sshd_keys_found_users variable + ansible.builtin.set_fact: + sshd_keys_found_users: "{{ sshd_keys_result_find.files + | map(attribute='path') + | map('dirname') + | map('basename') + | unique }}" + +- name: create groups for users with ssh keys + ansible.builtin.group: + name: "{{ item }}" + state: present + loop: "{{ sshd_keys_found_users }}" + +- name: create users with ssh keys + ansible.builtin.user: + name: "{{ item }}" + group: "{{ item }}" + state: present + loop: "{{ sshd_keys_found_users }}" - name: synchronize ssh keys ansible.posix.authorized_key: @@ -15,6 +36,6 @@ state: present key: "{{ lookup('file', item.path) }}" loop_control: - label: "{{ item.path }} -> user: {{ item.path | dirname | basename }}" - loop: "{{ result.files }}" + label: "{{ item.path }}: {{ item.path | dirname | basename }}" + loop: "{{ sshd_keys_result_find.files }}" failed_when: false |