Я пытаюсь использовать ansible, но мне кажется, что я не могу заставить его работать с sudo. Я минимизировал проблему до этого:
Это не работает:
ansible localhost --ask-become-pass -m shell -a "cat /var/log/syslog"
Дает такой вывод: я набираю пароль, потом это ошибки.
SUDO password:
localhost | FAILED | rc=1 >>
cat: /var/log/syslog: Permission denied
Они работают нормально:
ssh -t localhost sudo cat /var/log/syslog #without ansible
ansible localhost -m shell -a "ls" #without sudo
Другая диагностика:
#expecting last line to be `root`
ansible localhost --become-user=root --ask-become-pass -m shell -a "whoami"
выдает этот вывод, когда введен правильный пароль.
SUDO password:
localhost | SUCCESS | rc=0 >>
richard
--become-user=root
, не помогло (без изменений). И в руководстве сказано, что по умолчанию это root.Кажется, этого
--ask-become-pass
недостаточно, вам также нужен--become
параметр. Поэтому команда:ansible localhost --become --ask-become-pass -m shell -a "cat /var/log/syslog"
.Я также заметил, что мне не нужно
--ask-become-pass
, я думаю, что пароль кешируется, как иsudo
делает.источник