Я улучшил fabri c с fabric3==1.14.post1
до fabric=2.5.0
. Код отлично работает с fabric3==1.14.post1
. И теперь у меня проблема при выполнении задач внутри других задач. Проблема в том, что когда я запускаю задачу, задача должна обновлять и устанавливать программное обеспечение на удаленном сервере, который подключается без пароля (с ключом publi c, не спрашивайте пароль!). Старая версия (1.14.post1):
from fabric.api import task, sudo, env, run
@task
def install_docker():
sudo('apt-get update && apt-get install -qy docker.io')
@task
def task_queue():
execute(install_docker)
execute(install_some_soft)
Как я запускаю: fab task_queue
Новая версия (2.5.0)
@task
def install_docker(ctx):
ctx.sudo('apt-get update && apt-get install -qy docker.io')
@task(pre=[install_docker])
def task_queue(ctx):
pass
Как я бегаю это: fab task-queue
И у меня такая ошибка:
invoke.exceptions.AuthFailure: The password submitted to prompt '[sudo] password: ' was rejected.