diff options
Diffstat (limited to 'roles/sshd_keys/tasks/main.yml')
-rw-r--r-- | roles/sshd_keys/tasks/main.yml | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/roles/sshd_keys/tasks/main.yml b/roles/sshd_keys/tasks/main.yml new file mode 100644 index 0000000..5d45e34 --- /dev/null +++ b/roles/sshd_keys/tasks/main.yml @@ -0,0 +1,41 @@ +--- + +- name: get ssh keys for all users + ansible.builtin.find: + paths: "{{ sshd_keys_paths }}" + file_type: link + recurse: true + delegate_to: localhost + run_once: true + 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: + user: "{{ item.path | dirname | basename }}" + state: present + key: "{{ lookup('file', item.path) }}" + loop_control: + label: "{{ item.path }}: {{ item.path | dirname | basename }}" + loop: "{{ sshd_keys_result_find.files }}" + failed_when: false |