mirror of
https://github.com/luzifer-ansible/users.git
synced 2024-12-23 02:11:17 +00:00
59 lines
1.7 KiB
YAML
59 lines
1.7 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 }}'
|
|
when: item.state is not defined or item.state == "present"
|
|
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 }}'
|
|
|
|
...
|