2015-07-30 4 views
1

У меня есть приложение, которое мне нужно установить с помощью root с помощью Linux (CentOS).Как запустить команду Ansible с идентификатором пользователя root

Когда я устанавливаю приложение вручную, оно не работает, когда я набираю sudo <command>. Мне действительно нужно войти в систему с правами администратора, используя sudo su -, а затем введите свою команду. Я использовал:

remote_user: root

или

su: root

и даже использовали что-то вроде

command: sudo su - 
command: <command> 

Но команда не выполняется таким же образом, как я хотел бы сделать войти вручную? Я не получаю таких же результатов.

Как я могу запустить свою команду с идентификатором пользователя root с Ansible?

+0

Проверьте '$ PATH' на' root' аккаунт. –

+0

Я заметил, что есть разница, когда я вручную [бродяга] ssh в поле. Когда я делаю это под идентификатором пользователя бродяги, путь имеет следующее: PATH =/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin: /home/vagrant/.local/bin :/home/vagrant/bin, но когда я «sudo su -» и войдите в систему как root, я вижу, что теперь переменная «PATH =/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin «Можете ли вы объяснить, что проверить и почему/что исправить? –

ответ

0

Я рекомендую вам настроить свою машину для работы с учетной записью управления.

Ваше окружение, вероятно, должен быть настроен должным образом в файле sudoers, например:

--- 
- name: set a sudoers.d file 
    hosts: www 
    tasks: 
    - name: Copy /etc/sudoers.d/env_keep into place 
     copy: 
     content: "Defaults env_keep += \"PATH\"\n" 
     dest: /etc/sudoers.d/env_keep 
     validate: visudo -cf %s 
     owner: root 
     group: root 
     mode: 0440 

Вы также можете попробовать новый метод become, если у вас нет альтернативы.

Смежные вопросы