Not possible to source .bashrc with Ansible

Question:

I can ssh to the remote host and do a source /home/username/.bashrc – everything works fine.
However if I do:

I get:

I have no idea what I’m doing wrong…

Answer:

You have two options to use source with ansible. One is with the “shell:” command and /bin/sh (the ansible default). “source” is called “.” in /bin/sh. So your command would be:

Note you have to run a command after sourcing .bashrc b/c each ssh session is distinct – every ansible command runs in a separate ssh transaction.

Your second option is to force Ansible shell to use bash and then you can use the “source” command:

Finally, I’ll note that you may want to actually source “/etc/profile” if you’re on Ubuntu or similar, which more completely simulates a local login.

Leave a Reply