前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网工Python之路之paramiko 模块实验(四)分组操作

网工Python之路之paramiko 模块实验(四)分组操作

作者头像
释然IT杂谈
发布2022-10-27 18:56:48
8080
发布2022-10-27 18:56:48
举报
文章被收录于专栏:释然IT杂谈

感谢知乎两位大佬:@弈心和@朱嘉盛

@弈心大佬的实验主要是基于 linux 系统、思科设备或 GNS3 模拟器完成。

@朱嘉盛大佬考虑到当前在国内华为较为主流,也用 Windows 系统,尝试用华为的真机或者 eNSP 模拟器,把书中提及的实验做一做,方便大家学习记录,方便交流。

小编这里采用eve-ng+ensp+liunx来模拟实践本次实验效果,参考于@朱嘉盛大佬的文章。

实验如下:

平台工具:

  • 实验平台:Linux Centos7+python3.6.8
  • 使用工具:EVE-ng、Ensp

实验拓扑:

前面的几个实验是基于同一厂商的情况下进行的。然而,实际现网运维中,数通设备产品线广阔,不同厂商直接命令略有差异。本实验通过设备分组模拟现网不同厂商设备间的差异,配合 sys.argv ,让不同组调用不同的预设脚本。实验采用eve-ng和ensp桥接linux的方式来实现的。

实验目的:

1.

192.168.11.11、192.168.11.12归类为组1,模拟思科交换机:进入 vlan 1 ,执行 description Python_G1。

2.

192.168.11.14、192.168.11.15归类为组2,模拟华为交换机:进入 vlanif 1 ,执行 description Python_G2。

准备条件:

在paramiko4.py文件同目录下,建立各组的 IP 清单列表及执行命令,如下图所示。

实验前检查

按之前实验套路,逐一检查 PC 到 LSW X的网络连通性,如不通需要排网络,本文此处描述从简。2. 检查各组每台交换机的 vlanif 是否有描述信息,实验前应如下图,如有冗余配置可手工删除掉。(做了前面几个实验的童鞋,这里的“查”“删”操作已经可以写几行代码就能实现自动化了,不妨一试。)

更多精彩内容关注“释然IT杂谈”

Python 代码

代码讲解,大神在书里和专栏中已逐条做了解释

代码语言:javascript
复制
import paramiko
import time
import getpass
import sys

username = input("Username: ")
password = getpass.getpass("Password: ")
ip_file = sys.argv[1]
cmd_file = sys.argv[2]

iplist = open(ip_file,'r')
for line in iplist.readlines():
    ip = line.strip()
    ssh_client = paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_client.connect(hostname=ip,username=username,
                       password=password,look_for_keys=False)
    print('=-=-=-=-=-=-=-=-=-=-=-=-=-=')
    print('已经成功登陆交换机 ' + ip)
    command = ssh_client.invoke_shell()
    cmdlist = open(cmd_file,'r')
    cmdlist.seek(0)
    for line in cmdlist.readlines():
        each_command = line.strip()
        command.send(each_command + '\n')
        time.sleep(0.5)
    cmdlist.close()

    output = command.recv(65535).decode('ASCII')
    print(output)

ssh_client.close()

执行脚本文件:

实验结果检测

查看各设备vlan1下描述信息。

实验小结

好了,实验完成。大家不烦动手试试看,光看很难学会,必须自己操作一番才变成自己的东西。加油! 接下来又有新问题了,这种实验 4 台被操作的交换机都是正常的(链路没断,设备正常运行),然而,现网几十、几百、上千台设备在运行,就不会有哪台设备因为传输断链,设备宕机等原因造成不通吗?如果遇到这种,咱们程序的表现如何?我们应该怎样应对呢?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验目的:
  • 准备条件:
  • 实验前检查
  • Python 代码
  • 实验小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档