Fabric: 在 v2 中配置主机

创建于 2018-05-14  ·  4评论  ·  资料来源: fabric/fabric

你好! 是否可以在配置文件或 fabfile 本身中指定hosts

我知道我可以通过 CLI ( -H ) 提供它们,但如果 fabfile 旨在与特定服务器通信,那么它只会无缘无故地强迫用户做额外的事情。

我能想到的“最佳”解决方案是手动创建连接,例如

<strong i="10">@task</strong>
def my_ls(c):
    conn = Connection('myhost')
    conn.run('ls')

但这似乎很脏,因为我需要(1)在任何地方复制它,(2)它使上下文参数毫无意义。

最有用的评论

同意以上所有。 我真的很怀念旧的 env.hosts 设置。 它非常简单。

-1 需要另一个配置文件,如 invoke.yaml 或诸如此类。 我更喜欢猴子补丁或某种让我声明主机的导入钩子。

我也花了一段时间才弄清楚如果没有指定主机ctx.local不存在:(

所有4条评论

我也有同样的问题。 我想出了一个将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!

此页面是否有帮助?
0 / 5 - 0 等级