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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .