diff --git a/README.md b/README.md index 278954a..3afc0e6 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ The Option of these directory-variables are the following. | ``state`` | ``present`` | - | Create or delete user | | ``shell`` | ``/bin/bash`` | - | The Shell of the User | | ``create_home`` | ``true`` | - | create a user home *(needed to store ssh keys)* | +| ``home`` | *string* | - | Optionally set the user's home directory | | ``admin`` | ``false`` | - | enable it to give the user superpowers | | ``admin_commands`` | *string or list* | - | Commands that are allows to be run as admin, eg. 'ALL' or specific script | | ``admin_nopassword`` | ``false`` | - | Need no Password for sudo | @@ -71,6 +72,7 @@ The Option of these directory-variables are the following. | ``password`` | password hash | - | See [official FAQ](https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-generate-encrypted-passwords-for-the-user-module) | | ``groups`` | list | - | Additional groups for your user | | ``remove`` | ``false`` | - | completly remove user if ``state: absent`` | +| ``only_sshd_config`` | ``false`` | Skip user and permission creation and only add user to SSHD config | ### Other variables | name | default value | description | diff --git a/roles/admin/README.md b/roles/admin/README.md index 462b140..f8acf49 100644 --- a/roles/admin/README.md +++ b/roles/admin/README.md @@ -31,6 +31,7 @@ The Option of these directory-variables are the following. | ``password`` | password hash | - | See [official FAQ](https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-generate-encrypted-passwords-for-the-user-module) | | ``groups`` | list | - | Additional groups for your user | | ``remove`` | ``false`` | - | completly remove user if ``state: absent`` | +| ``only_sshd_config`` | ``false`` | Skip user and permission creation and only add user to SSHD config | ### Other diff --git a/roles/admin/tasks/users.yml b/roles/admin/tasks/users.yml index aee20e8..a82a2f9 100644 --- a/roles/admin/tasks/users.yml +++ b/roles/admin/tasks/users.yml @@ -11,7 +11,7 @@ loop_control: label: "user={{ user.name }}" loop_var: user - when: user.state | default ('present') == 'present' and user.admin | default(false) | bool + when: user.state | default ('present') == 'present' and user.admin | default(false) | bool and not user.only_sshd_config | default(false) | bool - name: Remove superpowers from Users become: true diff --git a/roles/sshd/README.md b/roles/sshd/README.md index 26d93f1..22ceb8c 100644 --- a/roles/sshd/README.md +++ b/roles/sshd/README.md @@ -29,6 +29,7 @@ The Option of these directory-variables are the following. | ``password`` | password hash | - | See [official FAQ](https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-generate-encrypted-passwords-for-the-user-module) | | ``groups`` | list | - | Additional groups for your user | | ``remove`` | ``false`` | - | completly remove user if ``state: absent`` | +| ``only_sshd_config`` | ``false`` | Skip user and permission creation and only add user to SSHD config | There is a third directory-variable called ``l3d_users__ssh_login: []`` which only support ``name`` and ``state`` for users, that sould be able to login on that system. diff --git a/roles/sshd/vars/main.yml b/roles/sshd/vars/main.yml index 2b9e309..e2e03d4 100644 --- a/roles/sshd/vars/main.yml +++ b/roles/sshd/vars/main.yml @@ -1,5 +1,5 @@ --- -playbook_version_number: 4 +playbook_version_number: 5 playbook_version_path: 'l3d.users.sshd.version' l3d_users_sshd__service_var_path: diff --git a/roles/user/README.md b/roles/user/README.md index 6734375..d256777 100644 --- a/roles/user/README.md +++ b/roles/user/README.md @@ -21,6 +21,7 @@ The Option of these directory-variables are the following. | ``state`` | ``present`` | - | Create or delete user | | ``shell`` | ``/bin/bash`` | - | The Shell of the User | | ``create_home`` | ``true`` | - | create a user home *(needed to store ssh keys)* | +| ``home`` | *string* | - | Optionally set the user's home directory | | ``admin`` | ``false`` | - | enable it to give the user superpowers | | ``admin_commands`` | *string or list* | - | Commands that are allows to be run as admin, eg. 'ALL' or specific script | | ``admin_nopassword`` | ``false`` | - | Need no Password for sudo | @@ -30,6 +31,7 @@ The Option of these directory-variables are the following. | ``password`` | password hash | - | See [official FAQ](https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-generate-encrypted-passwords-for-the-user-module) | | ``groups`` | list | - | Additional groups for your user | | ``remove`` | ``false`` | - | completly remove user if ``state: absent`` | +| ``only_sshd_config`` | ``false`` | Skip user and permission creation and only add user to SSHD config | ### Other Variables diff --git a/roles/user/tasks/pubkeys.yml b/roles/user/tasks/pubkeys.yml index 58b2684..d5a0927 100644 --- a/roles/user/tasks/pubkeys.yml +++ b/roles/user/tasks/pubkeys.yml @@ -10,4 +10,4 @@ loop_control: label: "user={{ user.name }}" loop_var: user - when: user.state | default ('present') == 'present' + when: user.state | default ('present') == 'present' and not user.only_sshd_config | default(false) | bool diff --git a/roles/user/tasks/users.yml b/roles/user/tasks/users.yml index b682cfd..07dd62c 100644 --- a/roles/user/tasks/users.yml +++ b/roles/user/tasks/users.yml @@ -8,7 +8,7 @@ loop_control: label: "user={{ user.name }}" loop_var: user - when: user.state | default ('present') == 'present' + when: user.state | default ('present') == 'present' and not user.only_sshd_config | default(false) | bool - name: Create Accounts for Users become: true @@ -18,6 +18,7 @@ groups: "{{ user.groups | default() }}" state: 'present' create_home: "{{ user.create_home | default(true) }}" + home: "{{ user.home | default('/home/' + user.name) }}" comment: "User created by ansible" shell: "{{ user.shell | default('/bin/bash') }}" password: "{{ user.password | default() }}" @@ -25,7 +26,7 @@ loop_control: label: "user={{ user.name }}" loop_var: user - when: user.state | default ('present') == 'present' + when: user.state | default ('present') == 'present' and not user.only_sshd_config | default(false) | bool - name: Remove Accounts for Users become: true diff --git a/roles/user/vars/main.yml b/roles/user/vars/main.yml index 476ca0b..ace42a6 100644 --- a/roles/user/vars/main.yml +++ b/roles/user/vars/main.yml @@ -1,3 +1,3 @@ --- -playbook_version_number: 9 +playbook_version_number: 11 playbook_version_path: 'l3d.users.user.version'