Запуск последней версии Fabric (1.11.1) (Paramiko (1.16.0), Python (2.7.11)) и im, получивший самую странную ошибку, я сделал небольшое доказательство концепции для попробуйте.Проблема с настройками Fabric()
from fabric.api import run, sudo, task
from fabric.context_managers import settings
@task
def test():
print('regular run')
run('whoami')
print('regular sudo')
sudo('whoami')
print('sudo with user arg')
sudo('whoami', user='www-data')
with settings(user='www-data'):
print('run inside settings')
run('whoami')
выход:
$ fab -f test.py -H [email protected]:2222 test
[[email protected]:2222] Executing task 'test'
regular run
[[email protected]:2222] run: whoami
[[email protected]:2222] out: vagrant # <--- good
[[email protected]:2222] out:
regular sudo
[[email protected]:2222] sudo: whoami
[[email protected]:2222] out: root # <--- good
[[email protected]:2222] out:
sudo with user arg
[[email protected]:2222] sudo: whoami
[[email protected]:2222] out: www-data # <--- good
[[email protected]:2222] out:
run inside settings
[[email protected]:2222] run: whoami
[[email protected]:2222] out: vagrant # <--- WHAT THE HECK!? this used to work
[[email protected]:2222] out:
Done.
Изменилось ли что-нибудь? Или я просто делаю что-то неправильно?