实验拓扑:


cloud连接本机,ip地址为192.168.56.1,五台交换机的配置的地址为192.168.1.11~55。现在通过paramiko,ssh进入五台设备,并且在五台设备上分别创建vlan10-vlan20这11个VLAN。

版本:python3.9

实验步骤:

一、ssh配置:

## 创建秘钥
[sw2]dsa local-key-pair create## 配置SSH认证类型(密码/其他)
[sw2]ssh user prin authentication-type password
[sw2]ssh user prin service-type stelnet
[sw2]stelnet server enable## 配置认证模式
[sw2]user-interface vty 0 4
[sw2-ui-vty0-4]authentication-mode aaa  //配置认证模式
[sw2-ui-vty0-4]protocol inbound ssh     //允许 ssh 连接虚拟终端## 配置本地用户信息
[sw2]aaa
[sw2-aaa] local-user prin password cipher Huawei@123
[sw2-aaa]local-user prin privilege level 15
[sw2-aaa] local-user prin service-type ssh

二、python脚本:

import paramiko
import time
import getpass#使用input函数,输入SSH的用户名
username = input('Username: ')
#通过getpass()函数接收密码,密码是不可见的,但是在windows上有bug,密码可见
password = getpass.getpass('Password: ')#创建一个列表,表示五台设备最后8位的地址
ip_tail_list = [11, 22, 33, 44, 55]#使用for循环,接受SSH的秘钥,并分别依次连接到五台设备,注意需要将i转化为字符串
for i in ip_tail_list:ip = "192.168.56." + str(i) ssh_client = paramiko.SSHClient()ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh_client.connect(hostname=ip, username=username, password=password)print("Successfully connect to ", ip)#使用invoke_shell()唤醒shell界面command = ssh_client.invoke_shell()#使用command.send()函数创建VLAN,并且设置每个VLAN的描述;未来保证设备能够正常接受配置,每次创建1个VLAN后休息1scommand.send("system \n")for n in range(10, 21):print("Creating Vlan " + str(n))command.send("vlan " + str(n) + "\n")command.send("description Python Vlan" + str(n) + "\n")time.sleep(1)#保存配置,并且通过command.recv()函数得到回信的信息,最多接受65535个字符command.send("return \n")command.send("save \n"+"y \n"+"\n")time.sleep(2)output = command.recv(65535)print(output.decode('ascii'))#关闭连接
ssh_client.close()

如果管理的设备数目过多,可以直接通过读取txt文件的方式获取IP地址,仅需要将如下代码:

#创建一个列表,表示五台设备最后8位的地址
ip_tail_list = [11, 22, 33, 44, 55]#使用for循环,接受SSH的秘钥,并分别依次连接到五台设备,注意需要将i转化为字符串
for i in ip_tail_list:ip = "192.168.56." + str(i) ssh_client = paramiko.SSHClient()ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh_client.connect(hostname=ip, username=username, password=password)
#......省略中间部分
ssh_client.close()

更换为下述即可:

#使用open()函数打开ip_list文件,并将读取的结果赋予f
f = open("ip_list.txt","r")#调用readlines()函数,返回IP地址的列表,并使用for循环遍历;注意使用readlines()的每一个ip地址后带有\n,需要通过strip()函数去除
for i in f.readlines():ip = i.strip()ssh_client = paramiko.SSHClient()ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh_client.connect(hostname=ip, username=username, password=password)
#.......省略中间部分,在完成文件操作后,关闭文件
f.close()
ssh_client.close()

执行效果:


在设备上检查是否配置成功,以SW1为例:

可以看到创建VLAN和添加VLAN描述成功。

参考资料:《网络工程师的python之路》

使用paramiko在eNSP的交换机中批量创建VLAN相关推荐

  1. 锐捷交换机批量加入vlan_大型网络中如何创建vlan? 不同vlan间如何互通?

    交换机的配置一直是弱电人的难点,尤其是在大型网络中,前面我们曾提到关于华为.h3c.锐捷等品牌交换机基本配置,本期我们将通过一个大型网络的实际案例,来详细了解清楚交换机的vlan创建以及不同vlan间 ...

  2. 在VMware Workstation中批量创建上千台虚拟机(上)

    VMware Workstation 是我们经常使用的虚拟机软件,其功能强大,性能较好.大多数用户都会在"图形界面"中创建虚拟机.修改虚拟机配置.添加虚拟机参数,或者使用" ...

  3. 在ArcMap中批量创建文本框批量输出PDF

    先发下牢骚,由于某个家长不负责任的行为导致我家这片区域的小孩上了一个星期的网课... 神兽在家,除了上网课,小奔运动打卡,写字和计算练习当然也要安排上 出计算练习题当然也不可能手写,刚好以前做土地确权 ...

  4. 华为交换机接口批量加入vlan的方法

    华为交换机接口单独加入vlan太麻烦,思科有批量加入vlan的方法,华为的如下: 方法一: [~XY-H-E6810-S21-NET1397]int range 10GE1/0/1 to 10GE1/ ...

  5. Linux中批量创建空白文件,在Linux中批量创建和修改文件或目录

    1. 用一条命令直接创建 [fred@Royalmile Auto_Ops]$ touch `seq 10` [fred@Royalmile Auto_Ops]$ ls 1  10  2  3  4  ...

  6. linux 快速建文件目录,在Linux中批量创建和修改文件或目录

    1. 用一条命令直接创建[fred@Royalmile Auto_Ops]$ touch `seq 10` [fred@Royalmile Auto_Ops]$ ls 1  10  2  3  4   ...

  7. 如何在AD中批量创建域用户

    原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 .作者信息和本声明.否则将追究法律责任. http://myloverxhy.blog.51cto.com/1666449/39616 ...

  8. Windons Server2008R2_向域中批量创建用户

    ------使用CSVDE---------- DN,ObjectClass,SAMAccountName,userPrincipalName,displayName,userAccountcontr ...

  9. h3c交换机端口加入vlan命令_华为交换机批量加入 Vlan 方法

    华为交换机单独加入vlan太麻烦,思科交换机有批量加入vlan的方法,当然华为也有.要求 1~6口划分到vlan2,6~12口划分到vlan3,13~18口划分到vlan4,19~24口划分到vlan ...

  10. 计算机中选中多个文件的快捷键,Win10电脑中怎么批量创建文件夹?几个快捷键就能搞定!...

    作为目前最新的电脑操作系统Win10系统来说,很多小伙伴在使用这个操作系统的时候,可能因为接触的时间不常,再加上平时自己也没有时间去深入研究,所以很多时候我们都只是会使用Win10系统电脑中的最基本的 ...

最新文章

  1. h5活动是什么意思_分析什么是h5页面
  2. 二叉树的前序遍历Python解法
  3. #UnityTips# 2017.11.14
  4. android图片压缩上传系列-基础篇
  5. 在ASP.NET Core使用Middleware模拟Custom Error Page功能
  6. 电脑硬盘数据线_这40种电脑故障的排除技巧你都掌握了吗?
  7. 删除顺序表中指定值的所有元素(C++,vector)
  8. javascript基础修炼(1)——一道十面埋伏的原型链面试题
  9. iOS中 语音识别功能/语音转文字教程具体解释 韩俊强的博客
  10. idea开发springboot的一些小干货
  11. win10 我的世界java_Windows10系统怎样运行我的世界
  12. 《c语言 从入门到放弃》,从入门到放弃的?单片机这样做很容易!
  13. html简易登陆注册模板
  14. Open Distro 初探
  15. 笔记本电脑计算机里面怎么管理,笔记本电脑如何分区,详细教您笔记本电脑怎么分区...
  16. 手机格局再变,诺基亚和传音入前十,魅族和中兴出局
  17. python自学爬虫要多久_自学python爬虫需要多久
  18. Python 罗德里格矩阵的空间坐标转换——两组公共点求所属坐标系的旋转矩阵与平移矩阵
  19. 比尔盖茨夫妇现身贫民窟
  20. win10系统网络图标变成小地球的解决方法

热门文章

  1. 资源 | 没有数学和编程基础,这几个数据科学项目了解一下
  2. 20191130_C6H6(GT)预测
  3. 数据结构与算法python—2.顺序表(数组)以及python实现
  4. GridSearchCV( )参数详情
  5. 集合阿里云、达摩院、平头哥相关技术的HaaS,官宣出书啦
  6. Node后端数据渲染
  7. 大数据:技术与应用实践指南(中国工程院院士倪光南倾情作序,雷万云、毛新生、段永朝、安晖联合力荐)
  8. 3.9 Spark 键值对RDD编程
  9. 什么是次梯度(次导数)
  10. 回归的正则化模型:岭回归和Lasso回归(套索回归)