Solution:
touch create_user_with_public_key_access.yml
If you are using this playbook for the first time and ssh key authentication is not configured modify first line to:
#!/usr/bin/env ansible-playbook --ask-pass
#!/usr/bin/env ansible-playbook - hosts: YOUR_HOST_GROUP vars: USERNAME: YOUR_USERNAME tasks: - name: Create user user: name: "{{ USERNAME }}" #comment: Add you comment here - name: Set authorized key defining and key options for user XXXXXX authorized_key: user: "{{ USERNAME }}" state: present key: "{{ lookup('file', '/tmp/id_ed25519.pub') }}" # Path to users public key
Execute:
ansible-playbook create_user_with_public_key_access.yml
References:
- User Module doc: https://docs.ansible.com/ansible/latest/modules/user_module.html#user-module
- SSH authorized key module: https://docs.ansible.com/ansible/latest/modules/authorized_key_module.html#authorized-key-module
You can also loop over Subelements, check https://docs.ansible.com/ansible/2.4/playbooks_loops.html#looping-over-subelements.