我想管理两个用户帐户,它们恰好位于同一台主机 ( 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