【发布时间】:2014-01-08 23:28:30
【问题描述】:
我正在尝试使用 Ansible 来配置 Vagrant box 和 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 的命令而不会被提示输入密码。我错过了什么?
【问题讨论】:
-
你想在哪里创建那个目录?在
root的主目录中? -
创建目录只是一个测试,看看谁在创建。如果 root 运行命令,如我所料,它将在 /root/test 中,如果 ubuntu 用户这样做,那么它将在 /home/ubuntu/test (每次都是这种情况)。
-
这不是
sudo命令的工作方式...您可以通过登录到该服务器并从您的 ~/ 运行sudo mkdir test轻松看到这一点。您会看到它是在您所在的位置创建的,而不是在根目录的 ~/. -
没错,但这只是测试的一部分。第二部分是所有权。该目录在普通用户目录中创建,并归普通用户所有,这意味着根本不使用 sudo。
标签: sudo ansible ansible-playbook