Ansible:以不同的用户身份在同一台主机上运行不同的剧本

Ansible:以不同的用户身份在同一台主机上运行不同的剧本

我想管理两个用户帐户,它们恰好位于同一台主机 ( mylaptop) 上。我为每个帐户都设置了一个单独的剧本。但是,尽管我在 中写了以下内容,Ansible 仍以同一用户身份执行这两个剧本inventory

[personal_computers]
mylaptop ansible_ssh_user=personal-user

[work_computers]
mylaptop ansible_ssh_user=work-user

test.yml这是我用于测试的剧本( ):

- hosts: personal_computers
  tasks:
    - debug: var={{ ansible_env.HOME }}

- hosts: work_computers
  tasks:
    - debug: var={{ ansible_env.HOME }}

当我使用 运行它时ansible-playbook -i inventory test.yml -vvvv,我可以看到所有连接都是通过用户 建立的work-user,并且两个调试任务都返回/home/work-user。这是 ansible 中的错误吗?我如何才能完成我需要的操作,即以两个不同的用户身份运行两个游戏?

我正在使用 ansible 1.9.2。

答案1

您不妨使用 2 个不同的库存主机名并指定ansible_ssh_host主机变量:

[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

相关内容