Не удается заставить команды sudo работать с Ansible

Я пытаюсь использовать Ansible для подготовки коробки Vagrant и сервера EC2. Он отлично работает в окне Vagrant при использовании --connection=local, но, похоже, просто игнорирует строку 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 без запроса пароля. Что мне не хватает?


person jmickela    schedule 08.01.2014    source источник
comment
Где вы хотите создать этот каталог? В домашнем каталоге root?   -  person Mxx    schedule 09.01.2014
comment
Создание каталога — это всего лишь тест, чтобы увидеть, кто его создает. Если бы root запустил команду, как я и ожидал, она была бы в /root/test, если бы это сделал пользователь ubuntu, то она была бы в /home/ubuntu/test (что происходит каждый раз).   -  person jmickela    schedule 09.01.2014
comment
Команда sudo работает иначе... Вы можете легко убедиться в этом, зайдя на этот сервер и из своего ~/run sudo mkdir test. Вы увидите, что он создан именно там, где вы находитесь, а не в каталоге root ~/.   -  person Mxx    schedule 09.01.2014
comment
Это правда, но на самом деле это была только часть теста. Второй частью была собственность. Каталог создается в обычном пользовательском каталоге и принадлежит обычному пользователю, что означает, что sudo вообще не используется.   -  person jmickela    schedule 10.01.2014


Ответы (1)


Вам также необходимо добавить опцию «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.

person tomu    schedule 10.01.2014