Question

J'utilise Fabric pour exécuter ce qui suit:

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

Mais j'obtiens ceci:

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

Pourquoi tissu demande mon mot de passe? Ceci est l'ubuntu par défaut utilisateur root qui n'a aucun mot de passe dans les fichiers sudoers. Qu'est-ce qui se passe ici?

Était-ce utile?

La solution

meta: cette question vient de réaliser est encore sans réponse. Je ne sais pas ce qui est arrivé là, mais voici une supposition.

Cela a été probablement causée par défaut d'utiliser un fichier de clés lors de la connexion à une machine où la connexion SSH mot de passe en texte clair a été désactivé.

L'utilisation correcte serait:

fab -i keyfile.pem <fabric_task>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top