Reputation: 165242
I am using Fabric to run the following:
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()
But I get this:
[email protected]:~/projects/proj_name$ fab staging bootstrap
[host.dev] run: mkdir -p /home/ubuntu/www/staging
Password for [email protected]:
Why is Fabric asking for my password? This is the default ubuntu root user which has no password in the sudoers files. What's going on here?
Upvotes: 6
Views: 2879
Reputation: 165242
meta: Just realized this question is still unanswered. I have no idea what really happened there but here's a guess.
This was probably caused by failing to use a keyfile when connecting to a machine where plaintext password SSH connection was disabled.
Proper usage would be:
fab -i keyfile.pem <fabric_task>
Upvotes: 6