2015-07-10 6 views
2

Я знаю, что я могу запускать плейбуры и задания с помощью sudo, но есть ли способ запустить sudo с аргументами? В частности, мне нужно запустить sudo -E <command>, чтобы сохранить среду зарегистрированного пользователя.Как запустить одиночную задачу с sudo -E?

Если это невозможно, есть ли хорошие обходные пути?


Редактировать

Два уточнения:

  1. Я пытаюсь запустить с sudo -E только для некоторых задач, а не весь PlayBook
  2. Несколько запутанный пример того, что я Я пытаюсь сделать: у меня есть экземпляр ubuntu EC2, где пользователь ubuntu имеет несколько хостов, настроенных под ~/.ssh/config. Я хотел бы использовать эти настройки с помощью модуля git без необходимости копировать их в /root/.ssh, и я хотел бы использовать их для изменения каталога, не принадлежащего пользователю ubuntu. Например, для вытягивания один способ сделать это непосредственно в оболочке - sudo -E git pull. Идеальное решение позволило бы мне (1) использовать модуль ansible git, (2) разрешить мне sudo -E для этой задачи и до sudo без флага -E для других задач.
+0

, что о 'shell' и/или' sudo_user'? – tedder42

+0

@ tedder42 могут ли они использоваться для одной задачи, но не для всей пьесы? –

+0

Да, 'sudo_user' поставлен на задание,' shell' * - это задача. Дайте образец задания, который показывает, что вы хотите сделать, и мы можем попытаться помочь. – tedder42

ответ

0

Вы должны быть в состоянии сделать это с помощью параметра sudo_flags в ansible.cfg

+0

Могу ли я использовать sudo_flags только для одной задачи, но не для всей пьесы? –

+0

Я так не верю, нет. Это параметр в файле конфигурации, который читается только один раз при запуске. –

+1

Как насчет [ansible_become_method] (https://docs.ansible.com/ansible/latest/become.html). – TekiusFanatikus

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