我正在尝试使用Ansible来配置Vagrant盒子和EC2服务器。当使用--connection = local时,它在Vagrant框上工作正常,但它似乎只是忽略了sudo:True line
当我这样做时:
---
- hosts: remote
vars_files:
- vars.yml
gather_facts: false
sudo: True
remote_user: root
tasks:
- name: test
file: state=directory path=~/test
它在普通用户的主目录中创建目录,由普通用户拥有。用户没有密码,我可以使用sudo命令而不提示输入密码。我错过了什么?
答案 0 :(得分:5)
您还需要添加“sudo_user”选项。
详细说明:
sudo使用sudo_user的值来获取用户名,sudo_user默认为root,所以在你的例子中你以root身份登录(这个用户名来自“remote_user”)并且做到了
sudo su - root -c "mkdir ~/test"
http://docs.ansible.com/intro_configuration.html#sudo-user
是的,该目录是在sudo_user home中创建的。