python腳本批量更改ESXI主機名,DNS

#!/bin/env python
import paramiko,time,sys
###IP list###
f=open("ip.list",'r')
#######user  and  passport#####
username="root"
passw="xxxxx"
#############################
#############input  CMD######
cmd=['esxcli system hostname set --domain lfesxi.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)
cmd.pop()
if __name__ == "__main__":
main()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章