I want to manage two user accounts, which happen to be on the same host (mylaptop
). I have a separate play for each of them. However, Ansible keeps executing both plays as the same user, despite what I wrote in my inventory
:
[personal_computers]
mylaptop ansible_ssh_user=personal-user
[work_computers]
mylaptop ansible_ssh_user=work-user
This is the playbook (test.yml
) I'm using for testing:
- hosts: personal_computers
tasks:
- debug: var={{ ansible_env.HOME }}
- hosts: work_computers
tasks:
- debug: var={{ ansible_env.HOME }}
When I run it with ansible-playbook -i inventory test.yml -vvvv
, I can see that all connections are made with user work-user
, and both debug tasks return /home/work-user
. Is this a bug in ansible? How can I accomplish what I need, i.e. running two plays as two different users?
I'm using ansible 1.9.2.
Best Answer
You might as well use 2 distinct inventory hostnames and specify
ansible_ssh_host
host variable: