Tessuto chiede la password di root
Domanda
Sto usando tessuto per eseguire la seguente:
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()
Ma ottengo questo:
ubuntu@host.dev:~/projects/proj_name$ fab staging bootstrap
[host.dev] run: mkdir -p /home/ubuntu/www/staging
Password for ubuntu@host.dev:
Perché Tessuto chiede la password? Questo è l'utente root di default di Ubuntu che non ha la password nei file sudoers. Che cosa sta succedendo qui?
Soluzione
meta: appena realizzato questa domanda è ancora senza risposta. Non ho idea di quello che veramente c'è accaduto, ma qui è una supposizione.
Questo è stato probabilmente causato omettendo di usare un file di chiavi per la connessione a una macchina in cui la connessione SSH password in chiaro è stato disattivato.
L'utilizzo corretto sarebbe:
fab -i keyfile.pem <fabric_task>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow