如何将python结构命令推送到多个主机?

时间:2015-10-04 14:46:05

标签: python fabric

我不了解如何在python结构中定义多个主机。我有一个hosts.txt文件包含这种形式的连接数据:

user@hostname:22 password
user@otherhost:22 password
user@thirdhost:22 password

和示例代码:

#!/usr/bin/python

import pprint
from fabric.api import *

for line in open('hosts.txt','r').readlines():
    host, passw = line.split()
    env.hosts.append(host)
    env.passwords[host] = passw

pprint.pprint( env.hosts )

def test():
 sudo("mkdir /a")

test();

不幸的是我收到了消息

  

找不到主机。请指定(单个)主机字符串进行连接

pprint向我展示了一个合适的主机列表。如何在hosts.txt文件中的所有主机上执行我的任务?

1 个答案:

答案 0 :(得分:0)

我这样做错了。我不应该从python文件调用函数,而应该从命令行运行它:

fab -f my_file_with_functions function_name

所以这解决了问题