ansible users

🧩 Syntax:
fredrik@tf-ansible-boss:~/ansible$ cat users.yml
---

- name: Create a user with sudo privileges
  hosts: all
  vars_files:
    - vault.yml
  become: yes
  tasks:
    - name: Create a personal user
      user:
        name: fredrik  # Replace with desired username
        password: "{{ 'user_password' | password_hash('sha512') }}"
        shell: /bin/bash
        state: present

    - name: Add user to sudo group
      user:
        name: fredrik  # Replace with the same username
        groups: sudo  # On Debian/Ubuntu; for CentOS/RHEL, use 'wheel'
        append: yes

    - name: Allow passwordless sudo for the user (Debian/Ubuntu)
      lineinfile:
        path: /etc/sudoers
        state: present
        regexp: '^fredrik'
        line: 'username ALL=(ALL) NOPASSWD:ALL'
        validate: '/usr/sbin/visudo -cf %s'

    - name: set root password
      user:
        name: root  # Replace with desired username
        password: "{{ 'user_password' | password_hash('sha512') }}"
        shell: /bin/bash
        state: present

    - name: add SSH public keys to user
      authorized_key:
        user: fredrik
        key: "{{ lookup('pipe','cat ./files/ssh_public_keys/*.pub') }}"