add playbook
This commit is contained in:
53
ensure_tsadmin.yml
Normal file
53
ensure_tsadmin.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
- name: Ensure tsadmin user and SSH key
|
||||
hosts: all
|
||||
become: yes
|
||||
vars:
|
||||
ts_user: ts-admin
|
||||
ts_pubkeys:
|
||||
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID+VHh9Q7Y/0dQgDqoHaQyf6EZjXqiBDg7FvQPrt5LSx Jan Forman"
|
||||
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdDJqGN9L5zkCoQPCOmOy3Rozf4CY+w3p1nf4Ztl4VD miko@Directwire"
|
||||
|
||||
tasks:
|
||||
- name: Ensure user exists
|
||||
ansible.builtin.user:
|
||||
name: "{{ ts_user }}"
|
||||
state: present
|
||||
create_home: yes
|
||||
shell: /bin/bash
|
||||
|
||||
- name: Ensure .ssh directory exists
|
||||
ansible.builtin.file:
|
||||
path: "/home/{{ ts_user }}/.ssh"
|
||||
state: directory
|
||||
owner: "{{ ts_user }}"
|
||||
group: "{{ ts_user }}"
|
||||
mode: '0700'
|
||||
|
||||
- name: Install public keys for the user
|
||||
ansible.builtin.authorized_key:
|
||||
user: "{{ ts_user }}"
|
||||
key: "{{ item }}"
|
||||
state: present
|
||||
loop: "{{ ts_pubkeys }}"
|
||||
|
||||
- name: Ensure authorized_keys permissions
|
||||
ansible.builtin.file:
|
||||
path: "/home/{{ ts_user }}/.ssh/authorized_keys"
|
||||
owner: "{{ ts_user }}"
|
||||
group: "{{ ts_user }}"
|
||||
mode: '0600'
|
||||
state: file
|
||||
|
||||
- name: Ensure user is member of sudo group
|
||||
ansible.builtin.user:
|
||||
name: "{{ ts_user }}"
|
||||
groups: sudo
|
||||
append: yes
|
||||
|
||||
- name: Allow user to sudo without password via sudoers.d
|
||||
ansible.builtin.copy:
|
||||
dest: "/etc/sudoers.d/{{ ts_user }}"
|
||||
content: "{{ ts_user }} ALL=(ALL) NOPASSWD:ALL\n"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0440'
|
||||
Reference in New Issue
Block a user