2010-12-11 3 views
6

Я использую ткань, чтобы выполнить следующую команду:Ткань запрашивает пароль суперпользователя

def staging(): 
    """ use staging environment on remote host""" 
    env.user = 'ubuntu' 
    env.environment = 'staging' 
    env.hosts = ['host.dev'] 
    _setup_path() 

def bootstrap(): 
    """ initialize remote host environment (virtualenv, deploy, update) """ 
    require('root', provided_by=('staging', 'production')) 
    run('mkdir -p %(root)s' % env) 
    run('mkdir -p %s' % os.path.join(env.home, 'www', 'log')) 
    create_virtualenv() 
    deploy() 
    update_requirements() 

Но я получаю это:

[email protected]:~/projects/proj_name$ fab staging bootstrap 
[host.dev] run: mkdir -p /home/ubuntu/www/staging 
Password for [email protected]: 

Почему просит Fabric мой пароль? Это пользователь root ubuntu по умолчанию, который не имеет пароля в файлах sudoers. Что тут происходит?

ответ

6

meta: Только что понял, что этот вопрос по-прежнему остается без ответа. Я понятия не имею, что на самом деле произошло, но вот догадка.

Возможно, это произошло из-за невозможности использования ключевого файла при подключении к машине, где отключено SSH-соединение с открытым текстом.

Правильное использование будет:

fab -i keyfile.pem <fabric_task> 
Смежные вопросы