2010-12-11 70 views
6

我使用的面料來運行以下命令:面料詢問root密碼

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]: 

爲什麼面料要求我的密碼?這是sudoers文件中沒有密碼的默認ubuntu root用戶。這裏發生了什麼?

回答

6

meta:剛纔意識到這個問題還沒有答案。我不知道那裏真的發生了什麼,但這裏有一個猜測。

這可能是因爲在連接到禁用明文密碼SSH連接的計算機時未能使用密鑰文件。

正確用法是:

fab -i keyfile.pem <fabric_task>