В моем /etc/sudoers
у меня есть:
# Allow the picky user to restart its own gunicorn process
picky ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl restart picky
Я действительно могу запустить эту команду от придирчивого пользователя:
$ su picky
$ sudo supervisorctl restart picky
В моем fabfile.py у меня есть следующее:
from fabric.api import sudo
def restart():
sudo("supervisorctl restart picky")
Однако, когда я запускаю свой файл ткани, он по-прежнему запрашивает пароль:
[picky@myhost] sudo: supervisorctl restart picky
[picky@myhost] out: sudo password:
Как я могу запускать команды sudo внутри Fabric, чтобы мне не нужно было вводить пароль?
Изменить:
Я заметил, что это работает:
from fabric.api import run
def restart():
run("sudo supervisorctl restart picky")