有没有办法在使用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的解决方案应该更加清晰......
答案 0 :(得分:0)
一如既往,我在这里发布问题后,我已经找到答案了一段时间:)
def copy()
platform_string = get_platform_for_host(env.host)
put('some_rpm' + platform_string)
env.host 变量将保存函数正在执行的当前主机(已测试...正常工作)。