python fabric,遍历 IP 列表以更新服务器
python fabric, Iterate through IP list to update servers
希望对您有所帮助。对面料完全陌生,略知一二python。我正在尝试遍历 IP 的外部文件以更新 40 台奇数远程服务器。
这不起作用,在第一个 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')
我尝试了以下 IP 列表 + Fabric 脚本,没有遇到任何问题 运行 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)
在我的例子中,结果如下:
me@machine:~$ fab hosts
('Hosts:', ['192.168.xxx.x\n', '127.0.0.1:xxxx\n', '174.xxx.xxx.xxx:xxxx\n'])
希望对您有所帮助。对面料完全陌生,略知一二python。我正在尝试遍历 IP 的外部文件以更新 40 台奇数远程服务器。
这不起作用,在第一个 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')
我尝试了以下 IP 列表 + Fabric 脚本,没有遇到任何问题 运行 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)
在我的例子中,结果如下:
me@machine:~$ fab hosts
('Hosts:', ['192.168.xxx.x\n', '127.0.0.1:xxxx\n', '174.xxx.xxx.xxx:xxxx\n'])