题
我正在使用面料来运行以下内容:
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:
为什么面料要求我的密码?这是默认的ubuntu root用户,在sudoers文件中没有密码。这里发生了什么?
解决方案
META:刚刚意识到这个问题仍然没有解决。我不知道那里到底发生了什么,但这是一个猜测。
这可能是由于连接到禁用了纯文本密码SSH连接的机器时未使用钥匙文件而引起的。
适当的用法是:
fab -i keyfile.pem <fabric_task>
不隶属于 StackOverflow