73 lines
No EOL
1.5 KiB
YAML
73 lines
No EOL
1.5 KiB
YAML
---
|
|
# User and group management tasks
|
|
|
|
- name: Install sudo package (Debian)
|
|
apt:
|
|
name: sudo
|
|
state: present
|
|
when: ansible_os_family == "Debian"
|
|
|
|
- name: Create ansible group
|
|
group:
|
|
name: ansible
|
|
gid: 10001
|
|
state: present
|
|
|
|
- name: Create ansible user
|
|
user:
|
|
name: ansible
|
|
group: ansible
|
|
uid: 10001
|
|
shell: /bin/bash
|
|
home: /home/ansible
|
|
state: present
|
|
|
|
- name: Create graham user
|
|
user:
|
|
name: graham
|
|
shell: /bin/bash
|
|
home: /home/graham
|
|
state: present
|
|
|
|
- name: Create andy user
|
|
user:
|
|
name: andy
|
|
shell: /bin/bash
|
|
home: /home/andy
|
|
state: present
|
|
|
|
- name: Set up SSH key for ansible user
|
|
authorized_key:
|
|
user: ansible
|
|
key: "{{ lookup('file', 'ansible.pub') }}"
|
|
exclusive: true
|
|
state: present
|
|
|
|
- name: Configure sudo for ansible user
|
|
template:
|
|
src: sudoers_ansible.j2
|
|
dest: /etc/sudoers.d/ansible
|
|
mode: '0440'
|
|
validate: 'visudo -cf %s'
|
|
|
|
- name: Configure sudo for graham user
|
|
template:
|
|
src: sudoers_graham.j2
|
|
dest: /etc/sudoers.d/graham
|
|
mode: '0440'
|
|
validate: 'visudo -cf %s'
|
|
|
|
- name: Enable passwordless sudo for %sudo
|
|
lineinfile:
|
|
path: /etc/sudoers
|
|
state: present
|
|
regexp: '^%sudo'
|
|
line: '%sudo ALL=(ALL) NOPASSWD: ALL'
|
|
validate: 'visudo -cf %s'
|
|
|
|
- name: Install SSH keys from GitHub
|
|
ansible.posix.authorized_key:
|
|
user: "{{ item.username }}"
|
|
state: present
|
|
key: "https://github.com/{{ item.github }}.keys"
|
|
loop: "{{ github_users }}" |