2024-09-24 15:19:51 +02:00
---
- name : Read salt from environment
ansible.builtin.set_fact :
user_password_salt : "{{ lookup('env', 'USER_PASSWORD_SALT') | default('') }}"
- name : Adding ssh users
become : true
ansible.builtin.user :
name : "{{ item.username }}"
comment : "{{ item.comment }} ( Managed by ansible )"
password : "{{ lookup('env', 'USER_PASSWORD_' + (item.username | upper)) | password_hash('sha512', user_password_salt) }}"
state : "{{ 'absent' if item.enabled is defined and not item.enabled else 'present' }}"
shell : "{{ item.shell if item.shell is defined else '/bin/bash' }}"
2024-09-28 23:12:19 +02:00
loop : "{{ login_users }}"
2024-09-24 15:19:51 +02:00
2024-09-29 11:42:32 +02:00
- name : Disable password expiration
2024-10-06 18:06:37 +02:00
ansible.builtin.command : chage -M -1 "{{ item.username }}"
2024-09-29 11:42:32 +02:00
become : yes
when : item.password_expiration is defined and not item.password_expiration
loop : "{{ login_users }}"
- name : Disable password login
2024-10-06 18:06:37 +02:00
ansible.builtin.command : passwd -d "{{ item.username }}"
2024-09-29 11:42:32 +02:00
become : yes
when : item.password_disabled is defined and item.password_disabled
loop : "{{ login_users }}"
2024-09-24 15:19:51 +02:00
- name : "Add SSH Authorized key"
become : true
ansible.posix.authorized_key :
user : "{{ item.username }}"
key : "{{ item.pubkey }}"
state : "{{ 'present' if item.pubkey is defined else 'absent' }}"
when : item.pubkey is defined
2024-09-28 23:12:19 +02:00
loop : "{{ login_users }}"
2024-09-24 15:19:51 +02:00
- name : Create sudoers.d entry if user allowed
become : true
ansible.builtin.copy :
dest : "/etc/sudoers.d/{{ item.username }}"
content : |
2024-09-29 11:42:32 +02:00
{{ item.username }} ALL=({{ 'root' if item.sudoer_root_only is defined and item.sudoer_root_only else 'ALL' }}) {{ 'NOPASSWD:' if item.sudoer_no_password is defined and item.sudoer_no_password else '' }}ALL
2024-09-24 15:19:51 +02:00
owner : root
group : root
mode : "0600"
when : item.sudoer is defined and item.sudoer
2024-09-28 23:12:19 +02:00
loop : "{{ login_users }}"
2024-09-29 11:42:32 +02:00
- name : Disable user history
become : true
ansible.builtin.copy :
dest : "/etc/profile.d/disable_history.sh"
content : |
#!/bin/bash
readonly PROMPT_COMMAND='history -a'
readonly HISTFILE=/dev/null
owner : root
group : root
mode : "0755"