8

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.

1 Answer 1

10

You might as well use 2 distinct inventory hostnames and specify ansible_ssh_host host variable:

[personal_computers]
personal-laptop ansible_ssh_host=mylaptop ansible_ssh_user=personal-user

[work_computers]
work-laptop ansible_ssh_host=mylaptop ansible_ssh_user=work-user

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.