Python网络编程自动化(HCIA) |
您所在的位置:网站首页 › 网络编程技术基础 › Python网络编程自动化(HCIA) |
一、网络编程的产生背景 1、背景 2、网络自动化 二、自动化开源工具以及python中telnetlib库 1、开源工具 2、Telnetlib 三、python网络编程实战 1、网络拓扑 2、python代码 四、代码解析以及python基础知识 学习目标: 1、网络编程的产生背景 2、自动化开源工具以及python中telnetlib库 3、python网络编程实战 4、代码解析以及python基础知识 一、网络编程的产生背景 1、背景随着虚拟化和云化时代,部署业务很快,但是网络也跟上快速部署,网络自动化变得越来越重要了。 网络编程和自动化就是简化网工的配置、管理、监控和操作等相关工作,提高工程师部署和运维效率。 网络基础不扎实,python(shell也可以,设备支持python好一些)网络编程也不会太强,自动化只是一个锦上添花的效果。 传统网络设备多、操作繁琐、效率低,大多数的配置都一样,只有少部分像OSPF宣告路由反掩码有时候会改变,这个时候用编程的思想就是把这些会改变的定义为变量。 网络自动化就是通过工具实现网络自动化部署、运行和维护,减少对“人”的依赖,原本10个人的成本,现在通过自动化只需要5个人的成本,对企业来说能减少成本,对于工程师来说部署、维护会简单很多,同时也会增加薪酬(是因为会减少一部分人),这就对工程师的个人水平要求比较高了。 二、自动化开源工具以及python中telnetlib库 1、开源工具业界有很多实现自动化的开源工具,例如:Ansible(红帽RCHE有学)、saltstack、puppet、chef等,新时代的网工需要具备一定的代码编程能力(编程是日积月累形成的,先做到再做好)。 首先要去了解Python的基本语法。 是python库中的一个模块,实现telnet这类功能,进行配置获取和输入。 importtelnetlib#导入telnet模块(网工专用) importtime#导入时间模块 huawei_router='192.168.1.222'#定义一个设备变量,未来要登录到的路由器IP huawei_user='telnet'#通过变量定义账号 huawei_pass='huawei@123'#通过变量定义密码(存在密码泄露风险,可以通过telnetlib中一个方法使用手动输入) #方法就是在模块中具体实现具体功能的作用 huawei_telnet=telnetlib.Telnet(huawei_router)#定义一个对象通过Telnet方法,获取登录telnet的会话 #执行后就是命令telnet192.168.1.222 huawei_telnet.read_until(b'Username:')#read_until方法就是读到这个信息,接下来写一段信息 telnet后遇到设备的提示是什么,然后下一步输入用户名+回车 huawei_telnet.write(huawei_user.encode('ascii')+b"\n") huawei_telnet.read_until(b'Password:') huawei_telnet.write(huawei_pass.encode('ascii')+b"\n") huawei_telnet.write(b'screnn-length 0 temporary\n')#screnn-length0temporary(只能在vty下敲)不用分屏一次全部输出 huawei_telnet.write(b'discu\n')#再显示全部配置一次性显示,不会有More,用空格显示 time.sleep(1) print(huawei_telnet.read_very_eager().decode('ascii')) huawei_telnet.close() 华为项目有现成的python模板可以使用 手动添加虚拟网卡,添加后需要重启才能生效(尽量使用模拟器的虚拟网卡): 万国码(只定义了标准,没有定义编码),覆盖全世界所有文字符号: 字符串变字节前边加b,如果是变量的话,变量.encode定义: 回车也是前边加b,b"\n"。 加b是因为telnet协议交互只认字节,在python3.3后就和字符区分开了。 最后要把字节转换为字符串供阅读: 把字节转换为字符串,打印出来: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |