users/tasks/main.yml
Knut Ahlers 776fd91ffb
Add ability for sudo access
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-01-07 18:40:34 +01:00

58 lines
1.6 KiB
YAML

---
- name: Create and configure users
user:
name: '{{ item.name }}'
shell: '{{ item.shell | default("/bin/bash") }}'
password: '{{ item.password | default(omit) }}'
update_password: on_create
groups: '{{ item.groups | default([]) }}'
state: '{{ item.state | default("present") }}'
with_items: '{{ users }}'
- name: Ensure .ssh directory
file:
dest: '{% if item.name != "root" %}/home{% endif %}/{{ item.name }}/.ssh'
state: directory
mode: 0700
owner: '{{ item.name }}'
group: '{{ item.name }}'
with_items: '{{ users }}'
- name: Install SSH keys for user
copy:
content: '{{ item.ssh_key }}'
dest: '{% if item.name != "root" %}/home{% endif %}/{{ item.name }}/.ssh/authorized_keys'
mode: 0600
owner: '{{ item.name }}'
group: '{{ item.name }}'
when: item.ssh_key is defined
with_items: '{{ users }}'
- name: Install Github SSH keys for user
get_url:
url: 'https://github.com/{{ item.github_key_user }}.keys'
dest: '{% if item.name != "root" %}/home{% endif %}/{{ item.name }}/.ssh/authorized_keys'
force: yes
mode: 0600
owner: '{{ item.name }}'
group: '{{ item.name }}'
when: item.github_key_user is defined and item.ssh_key is not defined
with_items: '{{ users }}'
- name: Set up sudo access for user
copy:
content: |
{{ item.name }} ALL=(ALL) NOPASSWD: ALL
dest: '/etc/sudoers.d/{{ item.name }}'
when: item.sudo is defined and item.sudo
with_items: '{{ users }}'
- name: Revoke sudo access for user
file:
dest: '/etc/sudoers.d/{{ item.name }}'
state: absent
when: item.sudo is not defined or not item.sudo
with_items: '{{ users }}'
...