网络工程师的Python之路:网络运维自动化实战9787121450273
正版图书,可开发票,请放心购买。
¥
103.5
7.5折
¥
138
全新
库存40件
作者 王印
出版社 电子工业出版社
ISBN 9787121450273
出版时间 2022-09
装帧 平装
开本 其他
定价 138元
货号 12231324
上书时间 2024-12-24
商品详情
品相描述:全新
商品描述
作者简介 "王印,知乎专栏“网路行者”作家,知乎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下安装Python 3.10.6 1 1.1.2 在Linux下安装Python 3.10.6 5 1.2 在Windows下使用Python 3.10.6 8 1.2.1 交互模式 8 1.2.2 脚本模式 10 1.2.3 运行Python脚本 13 1.3 在Linux下使用Python 3.10.6 16 1.3.1 交互模式 16 1.3.2 脚本模式 17 1.3.3 运行Python脚本 19 1.3.4 Shebang符号 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章 Python进阶语法 54 3.1 条件(判断)语句 54 3.1.1 通过比较运算符作判断 54 3.1.2 通过字符串方法+逻辑运算符作判断 56 3.1.3 通过成员运算符作判断 58 3.2 循环语句 60 3.2.1 while语句 60 3.2.2 for语句 63 3.3 文本文件的读/写 65 3.3.1 open()函数及其模式 65 3.3.2 文件读取 66 3.3.3 文件写入 74 3.3.4 with语句 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.3 Python内建模块和第三方模块 84 3.5.4 from…import… 87 3.5.5 if __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.2 Python中的Telnet和SSH模块 114 4.2.1 Telnetlib 115 4.2.2 Paramiko和Netmiko 121 4.3 实验1 input()函数和getpass模块(思科设备) 135 4.3.1 实验目的 136 4.3.2 实验准备 136 4.3.3 实验代码 137 4.3.4 代码分段讲解 138 4.3.5 验证 139 4.4 实验1 input()函数和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 实验2 pythonping的使用方法(思科设备) 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.1 JSON 223 6.1.1 JSON基础知识 223 6.1.2 JSON在Python中的使用 224 6.2 正则表达式的痛点问题 226 6.3 TextFSM和ntc-templates 227 6.3.1 TextFSM的安装 228 6.3.2 TextFSM模板的创建和应用 230 6.3.3 ntc-templates 234 6.4 NAPALM 238 6.4.1 什么是NAPALM 239 6.4.2 NAPALM的优点 239 6.4.3 NAPALM的缺点 241 6.4.4 NAPALM的安装 242 6.4.5 NAPALM的应用 242 6.5 asyncio 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.7 CSV和Jinja2 260 6.7.1 CSV配置文件及csv模块在Python中的使用 260 6.7.2 Jinja2配置模板 262 6.7.3 Jinja2在Python中的使用 264 6.7.4 将生成的配置命令上传到交换机并执行 267 第7章 TextFSM详解 273 7.1 TextFSM的安装及引例 274 7.1.1 TextFSM的安装 274 7.1.2 TextFSM引例类比 275 7.1.3 TextFSM引例详解 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.6 TextFSM场景梳理及拓展 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 实验5 Netmiko配合Jinja2配置模板为设备做配置(思科设备) 336 8.10 实验5 Netmiko配合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.19 Netmiko 4的新功能介绍 361 第9章 Nornir详解 368 9.1 Nornir实验准备(思科设备,CentOS系统) 370 9.2 Nornir实验准备(华为设备,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 实验9 Nornir 3 + Scrapli(思科设备) 423 9.20 实验9 Nornir 3 + Scrapli(华为设备) 432 9.21 实验10 Nornir 3 + TextFSM(思科设备) 434 9.22 实验10 Nornir 3 + TextFSM(华为设备) 437 9.23 实验11 Nornir 3 + ipdb(思科设备) 438 9.24 实验11 Nornir 3 + ipdb(华为设备) 444 9.25 实验12 Nornir的Inventory(思科设备) 447 9.26 实验12 Nornir的Inventory(华为设备) 451 9.27 实验13 Nornir的Task(思科设备) 455 9.28 实验13 Nornir的Task(华为设备) 461 9.29 实验14 使用Nornir按需批量修改交换机配置(思科设备) 463 9.30 实验14 使用Nornir按需批量修改交换机配置(华为设备) 467 第10章 NETCONF详解 474 10.1 NETCONF的理论部分 475 10.2 YANG的理论部分 476 10.2.1 什么是数据模型 476 10.2.2 YANG模型 477 10.2.3 YANG模块 478 10.2.4 从GitHub下载YANG模块 478 10.2.5 pyang模块 481 10.3 NETCONF的实验部分 482 10.3.1 实验拓扑和实验环境 482 10.3.2 实验步骤 483 10.4 ncclient 490 10.4.1 ncclient简介 491 10.4.2 ncclient实战应用(get_config) 492 10.4.3 ncclient实战应用(edit_config) 503 10.5 NETCONF实验(华为) 510 10.5.1 实验拓扑 510 10.5.2 实验目的 511 10.5.3 启动NETCONF 511 10.5.4 联动ncclient 515 第11章 RESTCONF详解 519 11.1 RESTCONF简介 519 11.1.1 HTTP方法和CRUD的对应关系 520 11.1.2 Postman 520 11.2 RESTCONF实验(Postman) 520 11.2.1 实验环境 520 11.2.2 交换机初始配置 521 11.2.3 Postman初始配置 522 11.2.4 通过GET方法获取交换机配置 525 11.2.5 通过PATCH方法更改交换机配置 529 11.2.6 通过PUT方法替换交换机配置 532 11.2.7 通过DELETE方法来删除设备配置 536 11.3 RESTCONF实验(Requests) 538 11.3.1 Requests模块简介 538 11.3.2 HTTP基础知识回顾 538 11.3.3 Requests实验环境 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.4 RESTCONF实验(华为) 561 11.4.1 实验拓扑 561 11.4.2 实验目的 561 11.4.3 启动RESTCONF 562 11.4.4 联动Postman 564 内容摘要 本书第1版于2020年11月出版发行后大获成功,Python及NetDevOps技术在国内计算机网络圈子里迅速走红,国内与NetDevOps相关的技术文章在网络上如雨后春笋般大量涌现,行业里也出现了很多要求掌握NetDevOps技术的网络工程师职位,并且需求越来越多,NetDevOps是“下一代网络工程师”必须掌握的技能已经成为既定且不可逆的事实。以Python为主的NetDevOps技术知识更迭很快,第2版将在第1版的基础上添加TextFSM详解、Netmiko详解、Nornir详解、NETCONF详解及RESTCONF详解等5章内容,并去掉pyping、pyntc、netdev等一些不再流行或者作者已经公开宣布不再维护的模块内容。 另外,第2版将在思科设备的基础上添加华为设备的内容,由朱嘉盛老师执笔,相信能对主要使用国产设备的国内网络工程师更加有益。 主编推荐 "★ 资深网络老兵、知乎专栏“网路行者”作者联合“网工手艺”作者全新打造 ★ 零基础网工自学Python的Go-To Book再版升级,基于Python 3.10 ★ 新增TextFSM、Netmiko、Nornir、NETCONF、RESTCONF等内容,知识点更全 ★ 从基础知识到实战应用,作者手把手教学,逐步引导,同时可作为教学用书 ★ 4大基础知识点,8大进阶知识点,助力传统网工轻松转型 ★ 40个实验,涵盖思科和华为设备,可适配其他国产厂商设备,实用性强 ★ 9大Python网络运维相关模块,举例介绍更多实用工具 ★ 加入微信读者群,与万千网工共同学习Python知识 ★ 更有作者亲自指导,为网络工程师营造“自学自驱”学习氛围" 精彩内容 本书第1版于2020年11月出版发行后大获成功,Python及NetDevOps技术在国内计算机网络圈子里迅速走红,国内与NetDevOps相关的技术文章在网络上如雨后春笋般大量涌现,行业里也出现了很多要求掌握NetDevOps技术的网络工程师职位,并且需求越来越多,NetDevOps是“下一代网络工程师”必须掌握的技能已经成为既定且不可逆的事实。以Python为主的NetDevOps技术知识更迭很快,第2版将在第1版的基础上添加TextFSM详解、Netmiko详解、Nornir详解、NETCONF详解及RESTCONF详解等5章内容,并去掉pyping、pyntc、netdev等一些不再流行或者作者已经公开宣布不再维护的模块内容。 另外,第2版将在思科设备的基础上添加华为设备的内容,由朱嘉盛老师执笔,相信能对主要使用国产设备的国内网络工程师更加有益。 媒体评论 "身为一名在网络安全行业从业的工程师,经常面临客户和现有安全产品整合或大批量群编辑之类的需求,手动配置耗时费力还容易出错,该书由浅入深地让我这样一个Python新手对脚本自动化编排有了快速上手和实战中调用的经验,非常实用,极力推荐! —刁文杰,新加坡派拓网络(Palo Alto)亚太区客户体验架构师 计算机网络的自动化和可编程化是未来的发展趋势。王印先生在网络和编程的融合上有着非常丰富的经验。相信本书可以很好地帮助网络工程师们开启网络自动化和可编程化的大门。 —董海宇,新加坡新传媒(Mediacorp)首席网络工程师 第一次认识王印兄弟是在基于智慧校园的合作项目中,我们就中国的数字化技术走向国际市场进行了探讨。王印不仅在网络领域的专业性毋庸置疑,还能孜孜不倦地分享知识,值得点赞。本书系统地讲述了Python编程知识,是普惠大众的好书,不论是在校大学生还是职场人士,都能够通过此书获取编程技能,强力推荐! —樊宪政,阿里巴巴旗下浩鲸科技华南区原总经理、 腾讯云(南中国区)原战略合作总监 如今的IT从业者正处在一个优选的时代,一个技术相互连接的时代。传统的网络工程师可以通过学习编程来扩展传统网络技术,自动执行重复而烦琐的工作任务,简化人力的投入和规避误操作的风险。程序员也可以通过学习网络技术来更加深入地了解数据包的传递方式和协议之间的优劣,从而写出更加优质且适用于真实环境的代码。本书作者从网络工程师的角度出发,将程序员编程的思维带入了网络领域。不仅如此,大量真实案例的引用将引起你思维的共鸣与对额外设想可能性的思考。更让我惊讶的是,本书使用类似笔记的形式通过通俗易懂的文字详述了每一个实用案例的完整配置步骤,这将是非常适合网络工程师的Python入门教程。 —李小沛,思科认证讲师、亚马逊AWS认证讲师 新形势下,虚拟网络发展、SDN兴起、云计算复杂环境及海量操作,对传统网络工程师来说可谓不可承受之痛。且在网络工程领域,受限于网络工程师的技术栈,如何科学有效地提高DevOps能力,仍存在不少挑战。本书是市面上为数不多的作者有深厚功底及丰富项目实操经验,且以网络工程师的视角和思路指出了一条网络自动化从0到1切实可行的转型道路的书。尤其对于没有任何编程能力的网络工程师满足企业网络可视化、自动化、智能化的运维的需求,本书将是不二之选。 —李耀,百度原网络工程师 这是一本以Python语言作为工具,从网络工程师的视角讲解如何利用Python来实现网络运维自动化的工程实践图书。全书以操作实践为基础,系统地梳理了Python语言的基础知识,并在此基础上将其运用于网络运维实战,是一本为网络工程师量身打造的网络运维自动化实践之书,值得一读。 —茹炳晟,腾讯 Tech Lead、中国计算机学会CCF TF 研发效能SIG主席 印兄于我,亦师亦友,他为人诚恳谦和,技术扎实过硬,每次探讨难题,即便十分忙碌,他也依然第一时间抽身为我排忧解难。寒门出贵子,十年磨一剑,通过网络平台,印兄倾囊分享其细腻的技术细节、励志的人生经历、前沿的技术精华和不对一般人外传的职场秘诀,他是华人网络工程师领域的众人
— 没有更多了 —
以下为对购买帮助不大的评价