標籤:CM hosts 命令 AC size threading out 安裝python paramiko
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,通過上面的例子基本上及實現了一個多主機簡單的批量管理,當然你可以擴充的更具體複雜
使用Python 實現多主機簡單的批量管理