python - Fabric 要求输入 root 密码

标签 python fabric

我正在使用 Fabric 运行以下命令:

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()

但是我明白了:

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

为什么 Fabric 要求我输入密码?这是默认的 ubuntu root 用户,在 sudoers 文件中没有密码。这是怎么回事?

最佳答案

meta:刚刚意识到这个问题仍然没有答案。我不知道那里到底发生了什么,但这是一个猜测。

这可能是由于在连接到禁用明文密码 SSH 连接的机器时未能使用 key 文件造成的。

正确的用法是:

fab -i keyfile.pem <fabric_task>

关于python - Fabric 要求输入 root 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4416848/

相关文章:

python - 在普通代码中使用断言

python - 更好的 Django 模型设计

python - pytesseract Windows错误: [Error 5] Access is denied

python - Fabric的run功能在较大的场景下不起作用,在较小的场景下工作正常

python - fabric 和 svn 密码

python - 如何改变 ndb 重复属性?

python - Django的reverse_lazy配置不正确

tomcat - 如何以另一个用户身份使用 sudo 通过 Fabric 启动 tomcat?

Python Fabric local() -exec 之后缺少语句

python - Fabric 和Paramiko