-
>
决战行测5000题(言语理解与表达)
-
>
软件性能测试.分析与调优实践之路
-
>
第一行代码Android
-
>
深度学习
-
>
Unreal Engine 4蓝图完全学习教程
-
>
深入理解计算机系统-原书第3版
-
>
Word/Excel PPT 2013办公应用从入门到精通-(附赠1DVD.含语音视频教学+办公模板+PDF电子书)
网络工程师的Python之路(网络运维自动化实战) 版权信息
- ISBN:9787121398063
- 条形码:9787121398063 ; 978-7-121-39806-3
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>
网络工程师的Python之路(网络运维自动化实战) 本书特色
适读人群 :本书适用于网络工程师、网络安全工程师、网络顾问、网络架构师和计算机网络专业的学生,以及对网络运维自动化技术感兴趣的Linux/Windows系统工程师和系统架构师。★ 资深网络老兵、知乎专栏“网路行者”作者全力打造 ★ 全部内容均为网络工程师量体裁衣 ★ 零基础网工自学Python的Go-To Book ★ 基于截稿前的Python 3.8 ★ 由浅入深讲解网络运维和Python的完美结合 ★ 4大基础知识点,7大进阶知识点,助力传统网工轻松转型 ★ 4个GNS3模拟器实验,3个真机实验,实用性强,讲解细致 ★ 6大Python第三方网络运维相关模块,举例介绍更多实用工具 ★ 手把手教学,让网络运维自动化学习道路更顺畅
网络工程师的Python之路(网络运维自动化实战) 内容简介
众所周知,Python这门编程语言的应用场景十分广泛,人工智能、数据分析、爬虫、Web开发、游戏制作等领域都能看到Python的身影,随着近几年Python的大热,和上述Python应用场景相关的书籍、视频、网站等教学资源随处可见,而市面上Python的基础入门教程更是多如牛毛。遗憾的是,在如此丰富的Python教学资源中,为网络工程师量身打造的计算机网络运维方面的教学书籍却相当匮乏。 本书内容基于思科设备和技术,从网络工程师的角度出发,以截稿前的Python 3.8为主,从Python的安装到基础和进阶知识,再到Python在网络运维中的实战应用和网络工程师必须掌握的Python第三方模块,所有内容均为网络工程师量体裁衣,让接近零基础的网络工程师能够快速上手并掌握Python这门编程语言,将网络运维自动化技术运用在日常工作中,在提高工作效率的同时,提升职场竞争力。 本书所有内容均由作者精选,只讲解对网络工程师有用的Python知识,让读者在网络运维自动化技术学习的道路上少走一些弯路。
网络工程师的Python之路(网络运维自动化实战) 目录
第1章 Python的安装和使用 1
1.1 安装Python 1
1.1.1 在Windows下安装Python 3.8.2 2
1.1.2 在Linux下安装Python 3.8.2 5
1.2 在Windows下使用Python 3.8.2 8
1.2.1 交互模式 8
1.2.2 脚本模式 10
1.2.3 运行Python脚本 14
1.3 在Linux下使用Python 3.8.2 18
1.3.1 交互模式 19
1.3.2 脚本模式 19
1.3.3 运行Python脚本 22
1.3.4 Shebang符号 22
第2章 Python基本语法 24
2.1 变量 24
2.2 注释 27
2.3 方法和函数 28
2.4 数据类型 30
2.4.1 字符串 30
2.4.2 整数和浮点数 41
2.4.3 列表 45
2.4.4 字典 50
2.4.5 布尔类型 55
2.4.6 集合、元组、空值 57
第3章 Python进阶语法 62
3.1 条件(判断)语句 62
3.1.1 通过比较运算符做判断 63
3.1.2 通过字符串方法+逻辑运算符做判断 64
3.1.3 通过成员运算符做判断 67
3.2 循环语句 69
3.2.1 while语句 69
3.2.2 for语句 72
3.3 文本文件的读/写 75
3.3.1 open()函数及其模式 75
3.3.2 文件读取 76
3.3.3 文件写入 84
3.3.4 with语句 88
3.4 自定义函数 89
3.4.1 函数的创建和调用 90
3.4.2 函数值的返回 91
3.4.3 嵌套函数 93
3.5 模块 93
3.5.1 不带自定义函数的模块 94
3.5.2 带自定义函数的模块 95
3.5.3 Python内建模块和第三方模块 95
3.5.4 from ... import ... 99
3.5.5 if __name__ == '__main__': 99
3.6 正则表达式 100
3.6.1 什么是正则表达式 101
3.6.2 正则表达式的验证 102
3.6.3 正则表达式的规则 103
3.6.4 正则表达式在Python中的应用 110
3.7 异常处理 116
第4章 Python网络运维实验(GNS3模拟器) 122
4.1 实验运行环境 122
4.2 Python中的Telnet和SSH模块 124
4.2.1 Telnetlib 124
4.2.2 Paramiko和Netmiko 131
4.3 实验1 input()函数和getpass模块 143
4.3.1 实验目的 143
4.3.2 实验准备 143
4.3.3 实验代码 145
4.3.4 代码分段讲解 146
4.3.5 验证 148
4.4 实验2 批量登录不同网段的交换机 152
4.4.1 实验目的 152
4.4.2 实验准备 153
4.4.3 实验代码 154
4.4.4 代码分段讲解 155
4.4.5 验证 156
4.5 实验3 异常处理的应用 157
4.5.1 实验目的 159
4.5.2 实验准备 159
4.5.3 实验代码 160
4.5.4 代码分段讲解 162
4.5.5 验证 164
4.6 实验4 Python实现网络设备的配置备份 166
4.6.1 实验目的 166
4.6.2 实验准备 166
4.6.3 实验代码 170
4.6.4 代码分段讲解 171
4.6.5 验证 173
第5章 Python网络运维实战(真机) 176
5.1 实验1 大规模批量修改交换机QoS的配置 176
5.1.1 实验背景 178
5.1.2 实验目的 178
5.1.3 实验准备 178
5.1.4 实验代码 180
5.1.5 代码分段讲解 181
5.1.6 验证 182
5.2 实验2 pythonping的使用方法 185
5.2.1 实验背景 187
5.2.2 实验目的 187
5.2.3 实验思路 187
5.2.4 实验准备 - 脚本1 188
5.2.5 实验代码 - 脚本1 189
5.2.6 脚本1代码分段讲解 190
5.2.7 脚本1验证 192
5.2.8 实验准备 - 脚本2 193
5.2.9 实验代码 - 脚本2 194
5.2.10 脚本2代码分段讲解 196
5.2.11 脚本2验证 200
5.3 实验3 利用Python脚本检查交换机的配置 201
5.3.1 实验背景 201
5.3.2 实验目的 202
5.3.3 实验思路 202
5.3.4 实验准备 - 脚本1 203
5.3.5 实验代码 - 脚本1 204
5.3.6 脚本1代码分段讲解 206
5.3.7 脚本1验证 211
5.3.8 实验准备 - 脚本2 212
5.3.9 实验代码 - 脚本2 213
5.3.10 脚本2代码分段讲解 215
5.3.11 脚本2验证 217
第6章 Python第三方模块详解 218
6.1 JSON 219
6.1.1 JSON基础知识 220
6.1.2 JSON在Python中的使用 221
6.2 正则表达式的痛点 222
6.3 TextFSM和ntc-templates 224
6.3.1 TextFSM的安装 226
6.3.2 TextFSM模板的创建和应用 227
6.3.3 ntc-templates 231
6.4 NAPALM 237
6.4.1 什么是NAPALM 237
6.4.2 NAPALM的优点 238
6.4.3 NAPALM的缺点 240
6.4.4 NAPALM的安装 241
6.4.5 NAPALM的应用 242
6.5 pyntc 248
6.5.1 pyntc和NAPALM的比较 248
6.5.2 pyntc的安装 249
6.5.3 pyntc的应用 250
6.6 netdev(异步并行) 257
6.6.1 同步与异步 258
6.6.2 异步在Python中的应用 258
6.6.3 netdev的安装和应用 262
6.7 Netmiko(多线程) 267
6.7.1 单线程与多线程 268
6.7.2 多线程在Python中的应用 268
6.7.3 多线程在Netmiko中的应用 273
网络工程师的Python之路(网络运维自动化实战) 节选
5.1 实验1 大规模批量修改交换机Qos的配置 在第4章的实验2中提到了,要使用Python来批量连接管理IP地址不连续的网络设备,可以把设备的管理IP地址预先写入一个文本文件,然后在代码中使用for循环配合open()函数和readlines()函数逐行读取该文本文件里的管理IP地址,达到循环批量登录多台网络设备的目的。 在成功登录交换机后,我们可以配合command.send()来对网络设备“发号施令”,但在前面的例子中我们都是将要输入的命令预先写在脚本里,比如command.send("conf t\n")、command.send("router eigrp 1\n")和command.send("end\n")等。这种将配置命令预先写在脚本里的方法便于初学者理解和学习,在只有几台设备的实验环境中常用。但是在有成千上万台网络设备需要管理的生产环境中,这种方法显得很笨拙,缺乏灵活性。举例来说,假设生产环境中有不同型号、不同操作系统、不同命令格式的设备各1 000台,比如思科的3750和3850交换机,前者运行的是IOS,后者运行的是IOS-XE。 *近你接到任务,需要分别给这两种交换机批量修改QoS的配置,因为两者的命令格式差异巨大(一个是MLS QoS,一个是MQC QoS),必须反复修改command.send()部分的代码,如果只是简单数条命令还好办,一旦遇到大规模的配置,那么这种方法的效率会很低。 解决这个问题的思路是分别创建两个文本文件,一个用来存放配置3750交换机要用的命令集,另一个用来存放配置3850交换机要用到的命令集,然后在Python脚本里同样通过for循环加open()函数来读取两个文件里的内容,达到分别给所有3750和3850交换机做QoS配置的目的,这样做的好处是无须修改command.send()部分的代码,因为所有的命令行已经在文本文件里预先设置好了。 但是新的问题又来了,每次配备不同型号的设备,都必须手动修改open()函数所打开的配置文本文件及IP地址文件,比如在给3750交换机做配置时,需要open('command_ 3750.txt')和open('ip_3750.txt'), 给3850交换机做配置时,又需要open('command_3850.txt')和open('ip_3850.txt'),这样一来二去修改配置脚本的做法大大缺乏灵活性。如果只有两种不同型号、不同命令格式的设备还能应付,那么当生产环境中同时使用3750(IOS)、3850(IOS-XE)、Nexus 3k/5k/7k/9k(NX-OS)、CRS3/ASR9K(IOS-XR),甚至其他厂商的设备,而又要对所有这些设备同时修改某个共有的配置。比如网络新添加了某台TACACS服务器,要统一给所有设备修改它们的AAA配置;又或者网络新添加了某台NMS系统,要统一给所有设备修改SNMP配置。因为不同OS的设备的配置命令完全不同,这时就能体会到痛苦了。此时我们可以用下面实验中的sys.argv来解决这个问题。 5.1.1 实验背景 本实验将在真机下完成。 假设现在手边有3台管理IP地址在192.168.100.x /24网段的3750交换机和3台管理IP地址在172.16.100.x/24网段的3850交换机,它们的hostname和管理IP地址分别如下。 3750_1: 192.168.100.113750_2: 192.168.100.223750_3: 192.168.100.333850_1: 172.16.100.113850_2: 172.16.100.223850_3: 172.16.100.33
网络工程师的Python之路(网络运维自动化实战) 作者简介
王印,知乎专栏“网路行者”作家,知乎Id:弈心,沙特阿卜杜拉国王科技大学高级网络工程师,11年海外从业经验,CCIE#40245。2009年起在新加坡先后任职于美国电信运营商AT&T、美国数据中心公司Equinix、新加坡陆路交通管理局(LTA)、新加坡石林IT咨询公司(SFIT)、美国苹果公司、苏格兰皇家银行(RBS),对大型园区、金融行业网络的设计与运维具有丰富的实战经验。
- >
新文学天穹两巨星--鲁迅与胡适/红烛学术丛书(红烛学术丛书)
新文学天穹两巨星--鲁迅与胡适/红烛学术丛书(红烛学术丛书)
¥9.9¥23.0 - >
史学评论
史学评论
¥23.2¥42.0 - >
我从未如此眷恋人间
我从未如此眷恋人间
¥24.9¥49.8 - >
烟与镜
烟与镜
¥15.4¥48.0 - >
大红狗在马戏团-大红狗克里弗-助人
大红狗在马戏团-大红狗克里弗-助人
¥5.1¥10.0 - >
姑妈的宝刀
姑妈的宝刀
¥13.5¥30.0 - >
有舍有得是人生
有舍有得是人生
¥14.4¥45.0 - >
中国历史的瞬间
中国历史的瞬间
¥16.7¥38.0
-
C专家编程
¥41¥69 -
UG NX 11.0工程图教程-(含1DVD)
¥30.4¥59.9 -
网络爬虫进化论——从Excel爬虫到Python爬虫
¥55.5¥79 -
Python 数据分析基础
¥41¥69 -
Python 3.5从零开始学
¥26.4¥59 -
湖北交通文化
¥21.8¥46