A quick post to explain the default Ansible user and where it can be changed.
Ansible by default manages its clients over SSH protocol. So its obvious question is what is the default user Ansible uses to connect or execute the command on its clients? Followed by – how to change Ansible default user? We will answer this question in this article.
If you are running default configurations and you did not define Ansible user anywhere then user running ansible command (the current user) will be used to communicate with the client over SSH.
Define Ansible user in the configuration file
Ansible default user can be defined in Ansible configuration file
/etc/ansible/ansible.cfg in a below section by un-commenting
remote_user line and replacing the
root with the user of your choice –
# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root
Here it clearly states that if default user is not defined in configuration file then the current logged in user (on control machine i.e. Ansible server) will be used to execute commands on Ansible clients.
Define Ansible user in Inventory
Another place you can define this Ansible user is inventory i.e. client host list file. Default hosts file Ansible uses is
/etc/ansible/hosts. You can add below snippet in this file to define Ansible user for your tasks or playbook.
ansible-usr is the user you want Ansible to use while connecting to clients over SSH. Replace
ansible-usr with the user of your choice.