1,当前操作系统环境
使用Python 实现多主机简单的批量管理_第1张图片

2,安装python所使用到的模块,使用pip命令安装
yum -y install gcc
#安装pycrypto

wget http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz

tar -xf pycrypto-2.6.tar.gz

cd pycrypto-2.6/

python setup.py build && python setup.py install

#测试,注意大小写

python>> import Crypto

#安装 paramiko

wget https://pypi.python.org/packages/2b/27/b64860e7b208ff1dd36fe208d07bca1f9637a11fe733e2f2ceea587c3f75/paramiko-1.7.5.zip

unzip paramiko-1.7.5.zip

cd paramiko-1.7.5

python setup.py build && python setup.py install

#测试:

python>> import paramiko

3,下面我们就可以使用paramiko模块实现多个主机简单批量管理 ,我这里用到了python的多线程threading模块,下面就是一个简单的demo供大家参考

import paramiko
import threading
import time

#首先我们先定义一个主机列表(保证在一台 控制其他主机的服务器上可以免密钥登录多台配控制的主机上,有两种方式,一种是基于用户名和密码的,一种是基于公钥的认证方式)
hosts =[(ip1,username1,password),(ip2,username2,password2),(ip3,username3,password3)]

#创建ssh对象
ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

def run(host_info,cmd):
ip,username,password = hostinfo
ssh.connect(ip,username,pasword)
stdin,stdout,stderro = ssh.exec_command(cmd)
cmd_result = stdout.read(),stderr.read()
print cmd_result
return cmd_result

for i in hosts:
t = threading.Thread(target=run,args=[i,'you input cmd'])
t.start()

4,通过上面的例子基本上及实现了一个多主机简单的批量管理,当然你可以扩展的更具体复杂