私はファブファイルを持っています:
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
。明らかに、設定をオーバーライドすることは可能ですが、通常のコマンド ライン フラグからはできないようです。私は何か間違ったことをしていますか?