Ansible:在localhost上以不同的用户身份运行

时间:2017-08-17 15:32:43

标签: linux ansible localhost ansible-inventory

我想使用ansible_connection=local在localhost上运行命令,但也作为特定用户运行,即ansible_user=my_other_user。有趣的是,这两个选项似乎是相互排斥的:

  • /etc/ansible/hostslocalhost ansible_user=my_other_user
    • ansible localhost -a "whoami" localhost | SUCCESS | rc=0 >> my_other_user
  • /etc/ansible/hostslocalhost ansible_user=my_other_user ansible_connection=local
    • ansible localhost -a "whoami" localhost | SUCCESS | rc=0 >> myself

这是一个错误还是一个功能?

如何使用configure Ansible的Inventory使用my_other_user登录localhost但不需要ssh?

编辑:这绝不应该通过本地用户myself使用sudo。用户myselfmy_other_user的密码不同,Ansible不知道myself的密码。

EDIT2:更改为方法su(即localhost ansible_connection=local ansible_become_user=my_other_user ansible_become_method=su ansible_become=true工作,因为在不知道root密码的情况下无法以root用户身份运行命令。

1 个答案:

答案 0 :(得分:0)

那是become

ubuntu@test:/$ ansible all -i 'localhost,' -c local -m shell -a 'whoami'
localhost | SUCCESS | rc=0 >>
ubuntu

ubuntu@test:/$ ansible all -i 'localhost,' -c local -b --become-user=www-data -m shell -a 'whoami'
localhost | SUCCESS | rc=0 >>
www-data