infra/ansible/roles/base/tasks/users.yml
2025-08-14 08:03:14 -05:00

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 }}"