Вопрос

Я использую ткань для выполнения следующего:

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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top