【问题标题】:Fabric: Set configuration variables per-host outside taskFabric:为每个主机外部任务设置配置变量
【发布时间】:2012-09-15 19:07:47
【问题描述】:

这个问题类似于 - Pass parameter to fabric task

我的问题是我想将我的sphinx html documentation 部署到remote server

我还想定义一个远程目录,我将文件分别复制到每个主机,在任务功能之外,最好也在fabfile之外。

【问题讨论】:

  • 感谢@DanielNova 的编辑。不知道你为什么用代码风格写一些东西,但无论如何。
  • 那么您的问题是如何从 fabfile 外部读取变量/设置以更改参数?
  • 抱歉,只是想让它在人们看到它时更加突出。
  • @BurhanKhalid 是的,可能。但是,我想按照应该在织物中完成的方式来做,否则我也可以坚持使用我的 bash 帮助脚本。
  • @DanielNova 我没有抱怨 :)

标签: python deployment fabric


【解决方案1】:

如果主机和路径提前知道或可以计算,请使用字典。例如:

env.sphinx_path = {
    'hosta': 'patha',
    'hostb': 'pathb',
}

@task
@hosts('hosta','hostb')
def foo(dummy_var):
    put('sphinx_stuff', env.sphinx_path%env.host)

否则你可以像这样传递路径:

fab foo:'sphinx/path'

这将在上面的示例中填充 dummy_var 供您在任务中使用。

【讨论】:

  • 似乎这是在织物中做到这一点的唯一方法。谢谢。
  • 你也可以输入一个文件,或者让它调用一些数据库,或者从一个 url 获取。几乎任何 python 可以为您获取列表或值的方法,您都可以使用。
  • 我知道,是的,但我认为 .fabricrc 中可能存在某种针对每个主机的配置存储。
猜你喜欢
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多