Takun
@Takun
Инженер

Как работает sudo в ansible?

Доброго времени суток, коллеги, подскажите, пожалуйста, как работает sudo в ansible и в чем его разница, если я применяю sudo непосредственно в консоли,
В консоли выполняю
[user@server01 opt]$ sudo mkdir /opt/test
Выполняется успешно, но при использовании команды непосредственно с помощью ansible:
[user@server01 opt]$ ansible servers -m file -a "dest=/opt/test  mode=755" -k -u user -b

Возникает ошибка
"module_stdout": "Sorry, user user is not allowed to execute '/bin/sh -c echo BECOME-SUCCESS-qvlcsrrsgixvikeamiollrbbnyxljoxl

У меня и в самом деле ограниченный sudo на команды /bin/sh и /bin/bash, вопрос заключается в следующем,
в чем разница моего локального выполнения sudo и через ansible?
права sudo
sudo -l
    (ALL) NOPASSWD: ALL, !/bin/sh, !/bin/tcsh, !/bin/csh, !/bin/zsh, !/bin/ksh, !/bin/bash, !/usr/bin/sudo, !/bin/su, !/usr/bin/mc
    (root) NOPASSWD: ALL
    (root) NOPASSWD: ALL, !/bin/sh, !/bin/tcsh, !/bin/csh, !/bin/zsh, !/bin/ksh, !/bin/bash, !/usr/bin/sudo, !/bin/su, !/usr/bin/mc, !/usr/bin/chattr, !/usr/bin/screen, !/usr/bin/tmux
  • Вопрос задан
  • 934 просмотра
Пригласить эксперта
Ответы на вопрос 3
@neol
Перед тем как выполнить вашу команду, ansible проверяет, что sudo в принципе работает. И эта проверка у вас заканчивается неудачей. До mkdir дело вообще не доходит.
Ответ написан
@noute
Лучше закинуть ssh ключ ansible из под root-а.
Зайдешь в убунту сделай su - или sudo -s стань root-ом и пихай ключ ansible. Меньше головной боли будет.
Ответ написан
Комментировать
@MaxKozlov
Такая ошибка может возникать если у пользователя через sudo есть не все права, а только на запуск определённых команд, ansible создаёт временный файл со своими командами в /tmp и запускает его, а не напрямую /bin/sh
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы