gpt4 book ai didi

fabric - --user = root似乎没有覆盖结构env.user,为什么?

转载 作者:行者123 更新时间:2023-12-02 03:58:37 26 4
gpt4 key购买 nike

我有一个fabfile与:

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时,这有效。显然,可以覆盖该设置,但似乎我无法从常规命令行标志中删除。难道我做错了什么?

最佳答案

目前无法以我想要的方式从命令行覆盖默认设置。尽管有https://github.com/fabric/fabric/issues/680,但是有一张票,看来它会被修复。

关于fabric - --user = root似乎没有覆盖结构env.user,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11445980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com