对python连接华为交换机批量配置优化

前天写了用paramiko多线程SSH登陆华为交换机处理简单的命令,后面看了有很多问题。比如用户名密码及配置命令是写死在主文件中。要改起来比较麻烦,可扩展性不好。今天做了优化,让它适用在配置过SSH登陆的同用户名密码同类交换机做批量配置。(在华为交换机测试过运行正常)
目录结构如下:只需要改动前两个配置文件

[root@10-57-22-238 sshsw]# ll
total 12
-rw-r--r-- 1 root root  79 Mar 14 23:53 cmd.txt
-rw-r--r-- 1 root root 274 Mar 14 23:32 conf.py
-rw-r--r-- 1 root root 933 Mar 14 23:51 ssh_sw_cmd.py

cmd.txt用来存放要配置到交换机的命令,内容如下(以下内容为配置NTP)。

sys
ntp unicast-peer 192.168.6.100 version 4 source-interface LoopBack0
commit

conf.py 保存交换机的管理IP,及登陆交换机的用户名密码

#-*- coding: utf-8 -*-
#!/usr/bin/python
#要执行操作的交换机管理
swip={
'testare4' : '172.16.200.6',
'testare1' : '10.57.1.22',
};

#交换机SSH用户名密码    
username = "wsf535"  #用户名
passwd = "****"    #密码
threads = [10]   #多线程

ss_sw_cmd.py为主运行文件

#-*- coding: utf-8 -*-
#!/usr/bin/python 
import paramiko
import threading
import time
import os
from conf import *

#拿到cmd.txt文件中的命令
with open('./cmd.txt', 'r') as f:
    cmd_line= f.readlines()
cmd=[]
for c in cmd_line:
     cmd.append(c)
#定义连接与操作
def ssh2(ip,username,passwd,cmd):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip,22,username,passwd,timeout=5)
        ssh_shell = ssh.invoke_shell()
        for m in cmd:
            res = ssh_shell.sendall(m)
            time.sleep(float(1))
        print ssh_shell.recv(1024)
        ssh.close()
    except :
        print '%s\tError\n'%(ip)

if __name__=='__main__':
    print "Begin......"
    for key in swip:
        ip = swip[key]
        a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
        a.start() 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,896评论 18 139
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,218评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,552评论 9 467
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,202评论 1 19
  • 从此,这个叫“玉青”的小人儿就成了我们家的一员。这时他也六个多月大了,我们都管他喊“小青”。他还是白白胖胖的,无比...
    我心向月阅读 381评论 2 3