Python Fabric:尝试将不同的文件分发给主机

时间:2015-05-26 08:17:21

标签: python fabric

有没有办法在使用Fabric时指定将主机放入哪个文件?

我有一个指定了平台的主机列表,例如:

host_list = [['1.1.1.1', 'centos5_x64'], ['2.2.2.2','centos6_x86']]

我想写一些类似的东西:

from fabric.api import env, execute

env.hosts = [x[0] for x in hosts_list]

def copy()
    put('some_rpm' + <platform>)

execute(copy)

那么如何在env.hosts中为每个主机指定平台字符串?

基于Fabric的安装中的所有其他步骤&amp;每个主机的测试脚本相同, 所以明显的答案是写一个&#39; threaded_copy()&#39;这将完成这项工作。但是,基于Fabric的解决方案应该更加清晰......

1 个答案:

答案 0 :(得分:0)

一如既往,我在这里发布问题后,我已经找到答案了一段时间:)

def copy()
    platform_string = get_platform_for_host(env.host)
    put('some_rpm' + platform_string)

env.host 变量将保存函数正在执行的当前主机(已测试...正常工作)。