新闻中心> 文章详情

惊现运维大神秒采集设备信息!

2022年04月28日

都2022年了,不会还有人通过display save来采集设备配置吧?! 


瑞思拜.jpg


小伙伴们,如果你碰到了以下情况,怎么处理?


割接准备工作中,所有被替换的旧设备都需要导出配置信息。


而队友只给了你一个A4纸的旧设备管理IP及用户账号。


So,接下来请自由发挥。


20220428104038.gif

(动图来自SOOGIF)


普通网络工程师

---》输入一台设备ip地址

---》输入ssh用户名、ssh密码

---》开启超级终端日志记录功能

---》display cu 复制所有配置


重复上述操作,直至所有设备搞定。


那为何精神小伙臧老师能变为神级大师,因为他有个神级老友:Paramiko


01
Paramiko常用功能类


image.png


本次案例使用SSHClient类:


SSHClient类是与SSH服务器会话的高级表示。


这个类已经包装了Transport类、Channel类和SFTPClient类来进行会话通道的建立和鉴权认证。


02
SSHClient类及其方法介绍

image.png


本案例中使用的方法介绍:


①connect():实现远程服务器的连接与认证。


如下为方法示例:


image.png


②set_missing_host_key_policy():设置连接到没有已知主机密钥的服务器时使用的策略。


如下为方法示例:


image.png

③invoke_shell():基于SSH会话连接,启动一个交互式shell会话。


如下为方法示例:


image.png


03
Paramiko使用流程

image.png

补充
本案例中使用到的其他功能函数


①网络编程中的公共用途的套接字函数


.send()向对端发送字符串;

.recv()获取对端的相应数据,指定接收的数据量


如下为方法示例:


image.png

image.png


②对于字符串的处理


split() 通过指定分隔符对字符串进行切片;


如下为方法示例:


image.png

image.png


③对文件处理


.open() 方法用于打开一个文件,并且设置需要的打开选项。

.write() 方法用于写入字符串到文件。

.close() 方法用于关闭指定的文件。


如下为方法示例:


image.png

image.png


操作演示环境

附上本次操练的环境,心痒痒的小伙伴,可以自己操练起来啦!

image.png


需求需要获取拓扑中四台路由器的配置信息,分别保存在4个txt文件中

配置:以R1为例

[R1]user-interface vty 0 4

[R1-ui-vty0-4] authentication-mode aaa

[R1-ui-vty0-4] protocol inbound all

[R1]aaa

[R1-aaa] local-user huawei password cipher huawei123

[R1-aaa] local-user huawei privilege level 15

[R1-aaa] local-user huawei service-type telnet ssh

[R1]stelnet server enable

[R1]rsa  local-key-pair  create

[R1]ssh user huawei authentication-type password


用于SSH远程登录设备并获取设备配置命令的Python脚本,后续使用只需要修改ip_listuserpwd参数即可。


image.png


运维大神

运行脚本---》剩下的交给脚本自动运行


01

运行脚本文件


image.png


02
自动登录设备、获取所有配置命令、创建文件、保存配置命令

image.png

image.png


此时,是否会有小伙伴觉得:咦~~just so so~


那么,想要跟小臧老师学习更多的自动化运维技术,欢迎来万和。成为运维大神,指日可待!



5e806324bb808423d8e582c4a3e45d4.jpg

扫码添加好友

成为职场高薪宠儿



上一篇下一篇
按时发顺丰

技术交流群

Java大数据交流群560819979    加入
Python技术交流群595083299    加入
Oracle技术交流群595119011    加入
Web前端技术交流群604697610    加入
Huawei技术交流群482919361    加入
Redhat技术交流群587875348    加入
UI设计技术交流群511649801    加入
Cisco技术交流群596886705    加入
IT运维技术交流群605888381    加入