资源详情

网络工程师的Python之路:网络运维自动化实战(第2版)(博文视点出品)

网络工程师的Python之路:网络运维自动化实战(第2版)(博文视点出品)-电子书下载


作者: 王印/朱嘉盛
出版社: 电子工业出版社
页数: 592
定价: 138.00元
ISBN: 9787121450273

下载次数:16


本站推荐

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录

王印,知乎专栏“网路行者”作家,知乎ID:弈心,沙特阿卜杜拉国王科技大学(King Abdullah University of Science and Technology,KAUST)高级网络工程师,14年海外从业经验,CCIE#40245。2009年起在新加坡先后任职于美国电信运营商AT&T、美国数据中心公司Equinix、新加坡陆路交通管理局(LTA)、新加坡石林IT咨询公司(SFIT)、美国苹果公司、苏格兰皇家银行(RBS),对大型园区、金融行业的网络设计与运维具有丰富的实战经验。
朱嘉盛,知乎专栏“网工手艺”作者,2010年毕业于华南理工大学,网络工程师13载,长期扎根网络运维第一线。通信网从2G到5G,互联网从几乎空白建设运维到百万级用户规模,在这些领域均具备丰富的大网络实战经验。工作之余,热爱阅读与写作,善于梳理知识,乐于分享和帮助新手。近年来深耕Python网络自动化领域。在本书第1版发行后,将其中的思科设备实验适配成华为设备实验,并加入大量自己的理解与思考,同时在相关读者群中坚持答疑和提供支撑服务,引领众多读者成功将技术应用到其他国产设备。

王印,知乎专栏“网路行者”作家,知乎ID:弈心,沙特阿卜杜拉国王科技大学(King Abdullah University of Science and Technology,KAUST)高级网络工程师,14年海外从业经验,CCIE#40245。2009年起在新加坡先后任职于美国电信运营商AT&T、美国数据中心公司Equinix、新加坡陆路交通管理局(LTA)、新加坡石林IT咨询公司(SFIT)、美国苹果公司、苏格兰皇家银行(RBS),对大型园区、金融行业的网络设计与运维具有丰富的实战经验。
朱嘉盛,知乎专栏“网工手艺”作者,2010年毕业于华南理工大学,网络工程师13载,长期扎根网络运维第一线。通信网从2G到5G,互联网从几乎空白建设运维到百万级用户规模,在这些领域均具备丰富的大网络实战经验。工作之余,热爱阅读与写作,善于梳理知识,乐于分享和帮助新手。近年来深耕Python网络自动化领域。在本书第1版发行后,将其中的思科设备实验适配成华为设备实验,并加入大量自己的理解与思考,同时在相关读者群中坚持答疑和提供支撑服务,引领众多读者成功将技术应用到其他国产设备。

第1章Python的安装和使用 1
1.1安装Python 1
1.1.1在Windows下安装Python3.10.6 1
1.1.2在Linux下安装Python3.10.6 5
1.2在Windows下使用Python3.10.6 8
1.2.1交互模式 8
1.2.2脚本模式 10
1.2.3运行Python脚本 13
1.3在Linux下使用Python3.10.6 16
1.3.1交互模式 16
1.3.2脚本模式 17
1.3.3运行Python脚本 19
1.3.4Shebang符号 19
第2章Python基本语法 21
2.1变量 21
2.2注释 24
2.3方法和函数 25
2.4数据类型 26
2.4.1字符串 27
2.4.2整数和浮点数 36
2.4.3列表 39
2.4.4字典 44
2.4.5布尔类型 48
2.4.6集合、元组、空值 51
第3章Pyt

on进阶语法 54
3.1条件(判断)语句 54
3.1.1通过比较运算符作判断 54
3.1.2通过字符串方法+逻辑运算符作判断 56
3.1.3通过成员运算符作判断 58
3.2循环语句 60
3.2.1while语句 60
3.2.2for语句 63
3.3文本文件的读/写 65
3.3.1open()函数及其模式 65
3.3.2文件读取 66
3.3.3文件写入 74
3.3.4with语句 77
3.4自定义函数 78
3.4.1函数的创建和调用 78
3.4.2函数值的返回 80
3.4.3嵌套函数 81
3.5模块 82
3.5.1不带自定义函数的模块 82
3.5.2带自定义函数的模块 83
3.5.3Python内建模块和第三方模块 84
3.5.4from…import… 87
3.5.5if__name__=='__main__': 87
3.6正则表达式 88
3.6.1什么是正则表达式 89
3.6.2正则表达式的验证 89
3.6.3正则表达式的规则 90
3.6.4正则表达式在Python中的应用 97
3.7异常处理 102
3.8类 106
3.8.1怎么创建类 107
3.8.2方法 109
3.8.3继承 110
第4章Python网络运维实验(网络模拟器) 112
4.1实验运行环境 112
4.1.1实验操作系统 112
4.1.2思科实验网络拓扑 113
4.1.3华为实验网络拓扑 114
4.2Python中的Telnet和SSH模块 114
4.2.1Telnetlib 115
4.2.2Paramiko和Netmiko 121
4.3实验1input()函数和getpass模块(思科设备) 135
4.3.1实验目的 136
4.3.2实验准备 136
4.3.3实验代码 137
4.3.4代码分段讲解 138
4.3.5验证 139
4.4实验1input()函数和getpass模块(华为设备) 145
4.5实验2批量登录地址不连续的交换机(思科设备) 147
4.5.1实验目的 147
4.5.2实验准备 147
4.5.3实验代码 148
4.5.4代码分段讲解 149
4.5.5验证 150
4.6实验2批量登录地址不连续的交换机(华为设备) 152
4.7实验3异常处理的应用(思科设备) 155
4.7.1实验目的 156
4.7.2实验准备 156
4.7.3实验代码 157
4.7.4代码分段讲解 159
4.7.5验证 160
4.8实验3异常处理的应用(华为设备) 162
4.9实验4用Python实现网络设备的配置备份(思科设备) 164
4.9.1实验目的 164
4.9.2实验准备 164
4.9.3实验代码 167
4.9.4代码分段讲解 168
4.9.5验证 170
4.10实验4用Python实现网络设备的配置备份(华为设备) 172
第5章Python网络运维实战(真机) 175
5.1实验1大规模批量修改交换机QoS的配置(思科设备) 175
5.1.1实验背景 176
5.1.2实验目的 177
5.1.3实验准备 177
5.1.4实验代码 178
5.1.5代码分段讲解 179
5.1.6验证 181
5.2实验2pythonping的使用方法(思科设备) 184
5.2.1实验背景 185
5.2.2实验目的 185
5.2.3实验思路 185
5.2.4实验准备——脚本1 186
5.2.5实验代码——脚本1 187
5.2.6脚本1代码分段讲解 187
5.2.7脚本1验证 190
5.2.8实验准备——脚本2 190
5.2.9实验代码——脚本2 191
5.2.10脚本2代码分段讲解 193
5.2.11脚本2验证 196
5.3实验3利用Python脚本检查交换机的配置(思科设备) 197
5.3.1实验背景 197
5.3.2实验目的 198
5.3.3实验思路 198
5.3.4实验准备——脚本1 199
5.3.5实验代码——脚本1 199
5.3.6脚本1代码分段讲解 201
5.3.7脚本1验证 206
5.3.8实验准备——脚本2 206
5.3.9实验代码——脚本2 207
5.3.10脚本2代码分段讲解 208
5.3.11脚本2验证 210
5.4实验4现网超长命令回显处理(华为设备) 211
5.4.1实验背景 211
5.4.2实验目的 212
5.4.3实验思路 212
5.4.4实验准备——脚本1 213
5.4.5脚本1验证 214
5.4.6实验准备——脚本2 214
5.4.7脚本2验证 216
5.5实验5自定义ping工具及exe打包(华为设备) 216
5.5.1实验背景 216
5.5.2实验目的 217
5.5.3实验思路 217
5.5.4实验准备——脚本 218
5.5.5脚本验证 219
5.5.6脚本打包 220
5.5.7打包验证 220
第6章Python内置模块与第三方模块详解 222
6.1JSON 223
6.1.1JSON基础知识 223
6.1.2JSON在Python中的使用 224
6.2正则表达式的痛点问题 226
6.3TextFSM和ntc-templates 227
6.3.1TextFSM的安装 228
6.3.2TextFSM模板的创建和应用 230
6.3.3ntc-templates 234
6.4NAPALM 238
6.4.1什么是NAPALM 239
6.4.2NAPALM的优点 239
6.4.3NAPALM的缺点 241
6.4.4NAPALM的安装 242
6.4.5NAPALM的应用 242
6.5asyncio 248
6.5.1同步与异步 248
6.5.2异步在Python中的应用 249
6.6多线程 252
6.6.1单线程与多线程 252
6.6.2多线程在Python中的应用 253
6.6.3多线程在Netmiko中的应用 257
6.7CSV和Jinja2 260
6.7.1CSV配置文件及csv模块在Python中的使用 260
6.7.2Jinja2配置模板 262
6.7.3Jinja2在Python中的使用 264
6.7.4将生成的配置命令上传到交换机并执行 267
第7章TextFSM详解 273
7.1TextFSM的安装及引例 274
7.1.1TextFSM的安装 274
7.1.2TextFSM引例类比 275
7.1.3TextFSM引例详解 276
7.2实验1单行回显单行rule 280
7.2.1安装tabulate模块 280
7.2.2创建实验文件夹 281
7.2.3准备output.txt 282
7.2.4准备template.txt 282
7.2.5准备Python脚本 283
7.2.6执行Python脚本 286
7.2.7模板匹配过程 286
7.2.8实验小结 286
7.3实验2多行回显单行rule 286
7.3.1准备output.txt 287
7.3.2准备template.txt 288
7.3.3准备Python脚本 289
7.3.4执行Python脚本 289
7.3.5模板匹配过程 290
7.3.6实验小结 291
7.4实验3多行回显多行rule,初识关键字 291
7.4.1准备output.txt 291
7.4.2准备template.txt 292
7.4.3准备Python脚本 293
7.4.4实验调试 294
7.4.5模板匹配过程 298
7.4.6实验小结 299
7.5实验4关键字List和动作Continue.Record 299
7.5.1准备output.txt 299
7.5.2准备template.txt 300
7.5.3准备Python脚本 300
7.5.4实验调测 301
7.5.5模板匹配过程 308
7.5.6实验小结 308
7.6TextFSM场景梳理及拓展 309
第8章Netmiko详解 310
8.1实验1通过Netmiko登录一台交换机(思科设备) 311
8.2实验1通过Netmiko登录一台交换机(华为设备) 314
8.3实验2通过Netmiko向设备做配置(思科设备) 315
8.4实验2通过Netmiko向设备做配置(华为设备) 319
8.5实验3用Netmiko配合TextFSM或Genie将回显格式化(思科设备) 321
8.6实验3用Netmiko配合TextFSM或Genie将回显格式化(华为设备) 327
8.7实验4通过Netmiko连接多台交换机(思科设备) 330
8.8实验4通过Netmiko连接多台交换机(华为设备) 335
8.9实验5Netmiko配合Jinja2配置模板为设备做配置(思科设备) 336
8.10实验5Netmiko配合Jinja2配置模板为设备做配置(华为设备) 340
8.11实验6在Netmiko中使用enable密码进入设备特权模式(思科设备) 342
8.12实验6在Netmiko中使用enable密码进入设备特权模式(华为设备) 346
8.13实验7使用Netmiko向设备传送文件(思科设备) 348
8.14实验7使用Netmiko向设备传送文件(华为设备) 351
8.15实验8使用Netmiko处理设备提示命令(思科设备) 354
8.16实验8使用Netmiko处理设备提示命令(华为设备) 357
8.17实验9使用Netmiko获取设备主机名(思科设备) 358
8.18实验9使用Netmiko获取设备主机名(华为设备) 360
8.19Netmiko4的新功能介绍 361
第9章Nornir详解 368
9.1Nornir实验准备(思科设备,CentOS系统) 370
9.2Nornir实验准备(华为设备,Windows系统) 374
9.3实验1调用nornir_napalm获取设备的facts和interfaces信息(思科设备) 378
9.4实验1调用nornir_napalm获取设备的facts和interfaces信息(华为设备) 381
9.5实验2调用nornir_netmiko来获取设备信息(思科设备) 383
9.6实验2调用nornir_netmiko获取设备信息(华为设备) 385
9.7实验3使用filter()配合F()做高级过滤(思科设备) 386
9.8实验3使用filter()配合F()做高级过滤(华为设备) 391
9.9实验4使用filter()做简单过滤(思科设备) 393
9.10实验4使用filter()做简单过滤(华为设备) 399
9.11实验5在filter()中使用lambda过滤单个或多个设备(思科设备) 400
9.12实验5在filter()中使用lambda过滤单个或多个设备(华为设备) 403
9.13实验6用Nornir为设备做配置(思科设备) 405
9.14实验6用Nornir为设备做配置(华为设备) 407
9.15实验7用Nornir保存、备份设备配置(思科设备) 408
9.16实验7用Nornir保存设备配置(华为设备) 411
9.17实验8用Nornir配合Jinja2为设备做配置(思科设备) 412
9.18实验8用Nornir配合Jinja2给设备做配置(华为设备) 420
9.19实验9Nornir3+Scrapli(思科设备) 423
9.20实验9Nornir3+Scrapli(华为设备) 432
9.21实验10Nornir3+TextFSM(思科设备) 434
9.22实验10Nornir3+TextFSM(华为设备) 437
9.23实验11Nornir3+ipdb(思科设备) 438
9.24实验11Nornir3+ipdb(华为设备) 444
9.25实验12Nornir的Inventory(思科设备) 447
9.26实验12Nornir的Inventory(华为设备) 451
9.27实验13Nornir的Task(思科设备) 455
9.28实验13Nornir的Task(华为设备) 461
9.29实验14使用Nornir按需批量修改交换机配置(思科设备) 463
9.30实验14使用Nornir按需批量修改交换机配置(华为设备) 467
第10章NETCONF详解 474
10.1NETCONF的理论部分 475
10.2YANG的理论部分 476
10.2.1什么是数据模型 476
10.2.2YANG模型 477
10.2.3YANG模块 478
10.2.4从GitHub下载YANG模块 478
10.2.5pyang模块 481
10.3NETCONF的实验部分 482
10.3.1实验拓扑和实验环境 482
10.3.2实验步骤 483
10.4ncclient 490
10.4.1ncclient简介 491
10.4.2ncclient实战应用(get_config) 492
10.4.3ncclient实战应用(edit_config) 503
10.5NETCONF实验(华为设备) 510
10.5.1实验拓扑 510
10.5.2实验目的 511
10.5.3启动NETCONF 511
10.5.4联动ncclient 515
第11章RESTCONF详解 519
11.1RESTCONF简介 519
11.1.1HTTP方法和CRUD的对应关系 520
11.1.2Postman 520
11.2RESTCONF实验(Postman) 520
11.2.1实验环境 520
11.2.2交换机初始配置 521
11.2.3Postman初始配置 522
11.2.4通过GET方法获取交换机配置 525
11.2.5通过PATCH方法更改交换机配置 529
11.2.6通过PUT方法替换交换机配置 532
11.2.7通过DELETE方法来删除设备配置 536
11.3RESTCONF实验(Requests) 538
11.3.1Requests模块简介 538
11.3.2HTTP基础知识回顾 538
11.3.3Requests实验环境 542
11.3.4通过GET方法获取交换机配置 543
11.3.5使用?depth=修改深度 547
11.3.6通过PATCH方法更改交换机配置 549
11.3.7通过PUT方法替换交换机配置 552
11.3.8通过POST方法添加交换机配置 556
11.3.9通过DELETE方法删除交换机配置 559
11.4RESTCONF实验(华为设备) 561
11.4.1实验拓扑 561
11.4.2实验目的 561
11.4.3启动RESTCONF 562
11.4.4联动Postman 564