2017-01-18 55 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'])