#!/bin/env python
import paramiko,time,sys
###IP list###
f=open("iplist.txt",'r')
#######user and passport#####
username="root"
passw="passport"
#############################
#############input CMD######
cmd=['esxcli system hostname set --domain esxi.com','esxcli network ip dns server add -s 1
92.168.7.40']
#############################
list=[]
for i in f:
list.append(i)
f.close()
def ssh2(ip,username,passwd,cmd):
s=paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
s.connect(ip,22,username,passwd,timeout=5)
stdin,stdout,stderr=s.exec_command(cmd)
for i in stdout.readlines():
print i,
s.close()
except:
print "username:%s\npasspw:%s\nIP:%s"%(username,passwd,ip),
print "passwd or username error"
return
def main():
if len(sys.argv) < 2 or sys.argv[1]!="start":
print "%s need start"% sys.argv[0]
sys.exit(-1)
else:
for i in list:
print i
l=i.split('.')
hostname="esxcli system hostname set --host esx"+l[2]+"-"+l[3]
cmd.append(hostname)
for c in cmd:
print c
ssh2(i,username,passw,c)
time.sleep(1)
if __name__ == "__main__":
main()
由于ESXI 不能使用ssh 密钥登陆,所以通过python 脚本paramiko实现