公司需要新上项目,上架20台机器,要对这些主机进行改名
#!/usr/bin/env python
from multiprocessing import Process, Pool
import paramiko
import sys,os
s = paramiko.SSHClient()
s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
def ssh_run(host_info):
ip=host_info[0]
username=host_info[1]
password=host_info[2]
hostname=host_info[3]
s.connect(ip,22,username,password,timeout=5)
stdin,stdout,stderr=s.exec_command("sed -i '/HOSTNAME/s/localhost\.localdomain/%s/' /etc/sysconfig/network"%hostname)
cmd_result = stdout.read(),stderr.read()
print '\033[32;1m-------------%s-----------\033[0m' % ip,'Success'
for line in cmd_result:
print line,
p = Pool(processes=2)
result_list = []
f = open('ip.txt','r')
for line in f.readlines():
new_line=line.strip('\n').split()
result_list.append(p.apply_async(ssh_run, [new_line,]))
f.close()
for res in result_list:
res.get()
s.close()
cat ip.txt
192.168.10.40 root 123456 web1
192.168.10.35 root 123456 web2