2017-01-18 56 views
0

希望你能帮上忙。全新的面料,知道一点蟒蛇。我试图遍历IP的外部文件来更新40个奇怪的远程服务器。蟒蛇结构,通过IP列表迭代更新服务器

这不工作,在第一个IP后停止。

终端命令: FAB -p密码主机更新

from fabric.api import env, run, sudo 


def hosts(): 
    env.hosts = open('sat_ip_list', 'r').readlines() 


def update(): 
    sudo('apt-get update -y') 

回答

0

我试图IPS +面料脚本的下面的列表,并没有任何问题运行fab -p <password> hosts uname

# ip_list.txt 
192.168.xxx.x 
127.0.0.1:xxxx 
174.xxx.xxx.xxx:xxxx 

# fabfile.py 
from fabric.api import env, run, sudo 

def hosts(): 
    # Read ip list from ip_list.txt 
    env.hosts = open('ip_list.txt', 'r').readlines() 

def uname(): 
    sudo('uname -a') 

什么是你sat_ip_list文件看起来像 - 每行有一个IP地址吗?

您是否尝试过只使用非常少量主机的脚本,例如2-3个IP地址?绝对没有理由你不应该做你想做的事,你的剧本基本上就是为我工作的。

作为一个全面的检查,你可能想打印出的env.hosts值,就像这样:

def hosts(): 
    env.hosts = open('sat_ip_list', 'r').readlines() 
    print('Hosts:', env.hosts) 

在我的情况下,会导致以下的输出:

[email protected]:~$ fab hosts 
('Hosts:', ['192.168.xxx.x\n', '127.0.0.1:xxxx\n', '174.xxx.xxx.xxx:xxxx\n'])