--- ## Installing packages - name: Install sudo on apt systems when: (ansible_facts['distribution'] == "Debian") or (ansible_facts['distribution'] == "Ubuntu") ansible.builtin.apt: name: - sudo update-cache: true # The same commands for Alpine - name: Update and install packages on Alpine when: (ansible_facts['distribution'] == "Alpine") community.general.apk: name: sudo update_cache: true remote_user: ansible ## Creating and setting up the ansible user ## First, create sshusers group to grant ssh access - name: Ensure group "sshusers" exists ansible.builtin.group: name: sshusers state: present ## Add the user to sshusers (for ssh access) and sudo (gain root access) - name: Create a new user with a password for Ansible ansible.builtin.user: name: ansible password: "{{ ansible_user_passwd_hash }}" groups: sshusers,sudo append: true ## Since password authentication in SSH will be disabled, we need to add an authorized key - name: Set authorized key taken from file ansible.posix.authorized_key: user: ansible state: present key: "{{ ansible_ssh_key }}"