Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 结构:为任务外部的每个主机设置配置变量_Python_Deployment_Fabric - Fatal编程技术网

Python 结构:为任务外部的每个主机设置配置变量

Python 结构:为任务外部的每个主机设置配置变量,python,deployment,fabric,Python,Deployment,Fabric,这个问题类似于— 我的问题是,我想将我的sphinxhtml文档部署到远程服务器 我还想定义一个远程目录,将文件分别复制到每个主机,在任务功能之外,最好也在fabfile之外。如果主机和路径提前已知或可以计算,请使用字典。例如: env.sphinx_path = { 'hosta': 'patha', 'hostb': 'pathb', } @task @hosts('hosta','hostb') def foo(dummy_var): put('sphinx_st

这个问题类似于—

我的问题是,我想将我的
sphinxhtml文档
部署到
远程服务器


我还想定义一个远程目录,将文件分别复制到每个主机,在任务功能之外,最好也在
fabfile
之外。如果主机和路径提前已知或可以计算,请使用字典。例如:

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,供您在任务中使用。

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

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'

这将填充上面示例中的虚拟变量,供您在任务中使用。

感谢@DanielNova的编辑。我不知道你为什么要用代码风格写一些东西,但不管怎样。所以你的问题是如何从文件外部读取变量/设置以更改参数?对不起,只是想让人们看一眼它就看得更清楚一点。@BurhanKhalid是的,可能吧。但是,我想用fabric中应该使用的方式来完成,否则我也可以使用我的bash助手脚本。@DanielNova我没有抱怨:)谢谢@DanielNova的编辑。我不知道你为什么要用代码风格写一些东西,但不管怎样。所以你的问题是如何从文件外部读取变量/设置以更改参数?对不起,只是想让人们看一眼它就看得更清楚一点。@BurhanKhalid是的,可能吧。但是,我希望以在fabric中应采用的方式进行操作,否则我也可以坚持使用bash助手脚本。@DanielNova我没有抱怨:)似乎这是在fabric中进行操作的唯一方法。谢谢。你也可以输入一个文件,或者让它调用某个数据库,或者从url获取。python几乎可以做任何事情来获取列表或值,您都可以使用。我知道,是的,但我认为在.fabrirc或其他东西中可能存在某种类型的每主机配置存储。似乎这是在fabric中实现这一点的唯一方法。谢谢。你也可以输入一个文件,或者让它调用某个数据库,或者从url获取。python几乎可以做任何事情来获取列表或值,您都可以使用。我知道,对,但我认为在.fabrirc或其他文件中可能有某种类型的每主机配置存储。