4

我正在尝试使用 Ansible 来配置 Vagrant 盒子和 EC2 服务器。使用 --connection=local 时,它在 Vagrant 框上运行良好,但似乎只是忽略了 sudo: True 行

当我这样做时:

---
- hosts: remote
  vars_files:
    - vars.yml
  gather_facts: false
  sudo: True
  remote_user: root

  tasks:
  - name: test
    file: state=directory path=~/test

它在普通用户的主目录中创建目录,该目录归普通用户所有。用户没有密码,我可以使用带有 sudo 的命令而不会被提示输入密码。我错过了什么?

4

1 回答 1

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 主目录中创建的。

于 2014-01-10T15:10:57.133 回答