你好! 是否可以在配置文件或 fabfile 本身中指定hosts
?
我知道我可以通过 CLI ( -H
) 提供它们,但如果 fabfile 旨在与特定服务器通信,那么它只会无缘无故地强迫用户做额外的事情。
我能想到的“最佳”解决方案是手动创建连接,例如
<strong i="10">@task</strong>
def my_ls(c):
conn = Connection('myhost')
conn.run('ls')
但这似乎很脏,因为我需要(1)在任何地方复制它,(2)它使上下文参数毫无意义。
我也有同样的问题。 我想出了一个将conn = Connection('myhost')
放在 fabfile 开头的解决方案,它看起来像这样:
conn = Connection('myhost')
<strong i="7">@task</strong>
def my_ls(c):
conn.run('ls')
<strong i="8">@task</strong>
def my_cd(c):
conn.run('cd')
....
但是我不喜欢这个解决方案,并且觉得应该有一种方法可以将默认连接注入到上下文中。
我也想知道。 能够将主机放在配置文件中会很方便。
也不提供主机列表(使用 -H)默认为 localhost。 我希望看到一个选项来防止此/引发错误。
同意以上所有。 我真的很怀念旧的 env.hosts 设置。 它非常简单。
-1 需要另一个配置文件,如 invoke.yaml 或诸如此类。 我更喜欢猴子补丁或某种让我声明主机的导入钩子。
我也花了一段时间才弄清楚如果没有指定主机ctx.local
不存在:(
见#4!
最有用的评论
同意以上所有。 我真的很怀念旧的 env.hosts 设置。 它非常简单。
-1 需要另一个配置文件,如 invoke.yaml 或诸如此类。 我更喜欢猴子补丁或某种让我声明主机的导入钩子。
我也花了一段时间才弄清楚如果没有指定主机
ctx.local
不存在:(