Вопрос
Я использую ткань для выполнения следующего:
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 по умолчанию Ubuntu, который не имеет пароля в файлах sudoers. Что тут происходит?
Решение
Мета: только что понял, что этот вопрос все еще без ответа. Я понятия не имею, что на самом деле произошло там, но вот думаю.
Это, вероятно, было вызвано неспособностью использовать ключевой файл при подключении к машине, где Plain Tex Password SSH Connection был отключен.
Правильное использование было бы:
fab -i keyfile.pem <fabric_task>
Не связан с StackOverflow