python fabric запускает () команду sudo без запроса пароля

#python #fabric

#python #структура

Вопрос:

У меня есть этот фабричный файл python fabric. Я хочу запустить команду sudo без запроса пароля. Хотел бы сохранить пароль в файле. Неужели Fabric3 больше не поддерживает опцию watchers ? Есть ли какой-нибудь способ, которым я могу ввести пароль в скрипт?

 from fabric.api import *
from invoke import Responder

env.user = "usera"
env.password = "password"

env.sudo_user = "usera"
env.password = "password"
env.sudo_prompt = "Password:"

sudopass = Responder (
        pattern=r'Password:',
        response=env.password   'n'
        )

def itm_run ():
#    result = run("sudo systemctl restart S99itm", pty=True, watchers=[sudopass])
    result = run("sudo systemctl restart S99itm")
    print(result)
  

Ответ №1:

Наблюдатели все еще работают, в противном случае проверьте свой шаблон. Вы также можете добавить echo=True .

Что касается пароля, то лучше всего сохранить его в переменной env или что-то в этом роде. итак, вы можете сделать env.password = getenv('SOMEHOST_SOMEUSER_PASSWORD')