У меня есть fabfile с:--user = root, похоже, не переопределяет ткань env.user, как получилось?
env.user = 'deploy'
def infra():
"""You need to use a user that can root itself, deploy cannot without a
password."""
put('conf.d/etc/nginx/sites-available/www.foo.hk',
'/etc/nginx/sites-available/www.foo.hk', use_sudo=True)
sudo('nginx -s reload',)
Что я бегу как fab infra -Rservers
.
Так что я думал, что могу переопределить пользователя --user=root or -u root
, когда я запустил fab infra --user=root
, но он все еще просит меня ввести пароль. Однако, если я изменю env.user
на env.user = 'root'
, это не так. Я могу также использовать менеджер установки контекста, как:
def infra(user):
"""You need to use a user that can root itself, deploy cannot without a
password."""
with settings(user=user):
put('conf.d/etc/nginx/sites-available/www.foo.hk',
'/etc/nginx/sites-available/www.foo.hk', use_sudo=True)
sudo('nginx -s reload',)
Это работает, когда я fab infra:root -Rservers
. Таким образом, можно переопределить настройку, но, похоже, я не могу от нормального флага командной строки. Я делаю что-то неправильно?
какая версия ткани вы используете? – Morgan