网络工程师的python之路pdf下载_网络工程师的Python之路:网络运维自动化实战

众所周知,Python这门编程语言的应用场景十分广泛,人工智能、数据分析、爬虫、Web开发、游戏制作等领域都能看到Python的身影,随着近几年Python的大热,和上述Python应用场景相关的书籍、视频、网站等教学资源随处可见,而市面上Python的基础入门教程更是多如牛毛。遗憾的是,在如此丰富的Python教学资源中,为网络工程师量身打造的计算机网络运维方面的教学书籍却相当匮乏。

本书内容基于思科设备和技术,从网络工程师的角度出发,以截稿前的Python 3.8为主,从Python的安装到基础和进阶知识,再到Python在网络运维中的实战应用和网络工程师必须掌握的Python第三方模块,所有内容均为网络工程师量体裁衣,让完全零基础的网络工程师能够快速上手并掌握Python这门编程语言,将网络运维自动化技术运用在日常工作中,在提高工作效率的同时,提升职场竞争力。

本书所有内容均由作者精选,只讲解对网络工程师有用的Python知识,让读者在网络运维自动化技术学习的道路上少走一些弯路。

Python零基础网工自学入门图书/基于Python 3.8/资深网络老兵、知乎专栏“网路行者”作者全力打造/从基础知识到实战应用手把手教学/实战案例源于日常工作

前言

身为一名网络工程师,你有没有在工作中遇到过类似这样的3个需求?

需求1:某大型企业的生产网络里有5 000台思科交换机,最近公司更换了TACACS服务器,将思科的ACS替换成了ISE,因为ISE的IP地址和ACS不同,你需要在这5 000台交换机上为ISE做相关的AAA配置,并移除原有的ACS的AAA配置。

需求2:公司的网络安全部门提醒你这5?000台思科交换机现有的IOS(Internetwork Operating System,互联网操作系统)版本有很多安全漏洞,需要尽快升级它们的IOS版本。

需求3:公司聘请的技术审计人员在随机抽样检查了一些现有的交换机配置后,发现还有很多交换机的配置需要做安全加固和优化,比如部分交换机在Line VTY的配置下依然允许通过Telnet协议远程访问交换机,部分交换机没有按要求配置DHCP Snooping和Spanning Tree Portfast等,你的上司让你在最短时间内从这5 000台交换机里找出哪些需要做安全加固和优化,给出它们的Hostname和IP地址,以及详细说明它们各自需要在哪方面配置做加固和优化。

时间回到2013年,刚刚考取CCIE的我第一次听说软件定义网络(Software?Defined?Network,SDN)。当时我在国外某技术论坛读到一篇关于SDN的帖子,作者把SDN写得神乎其神,中心思想就是:完全依靠传统网络工程师手动配置和手动排错,效率低下的传统网络运维迟早会迎来“寿终正寝”的一天,取而代之的就是能带来“革命性改变”的SDN。读完该文后,作为传统网络工程师的我感觉到一股强烈的危机感,当时自己花了很长时间去学习和研究Mininet这个以Openflow为主、轻量级的SDN模拟器。在研究了一段时间的Mininet后,除了对Openflow有一些了解,我并没有感觉到?SDN (Openflow)为自己从事的网络运维工作带来什么实质性的帮助和改变。公司里思科路由器和交换机的配置依然需要一台一台登录去改,IOS操作系统的升级依然需要一台一台地手动去做;当对设备的配置、硬件类型和序列号做审计检查时,依然需要一台一台登录设备去执行各种show命令,对输出结果用肉眼去筛选和检查。这些完全依靠网络工程师人工的传统运维工作方式不仅效率低下,而且容易出现人为失误,造成不必要的麻烦。自己一度对SDN嗤之以鼻,认为该技术的应用场景太过局限,传统企业网接入层的运维依然离不开网络工程师的手动管理。

2016年,在新加坡工作将近7年后,我有幸受聘于沙特阿卜杜拉国王科技大学(KAUST),从东到西跨越整个亚洲来到这个对很多人来说既熟悉又陌生的国度,在这里担任高级网络工程师一职。面对KAUST近万台思科设备的庞大网络,看着网络运维组的同事依然日复一日地用手动的方式一台一台通过SSH登录设备去完成开篇提到的三个需求及其他重复、单调、费时的日常工作,我认为需要做些改变来打破传统,提升工作效率,因为你无法想象每隔半年就需要通过人工手动给超过5 000台思科交换机升级IOS是一项多么庞大并且费时的工程。以此为契机,在工作之余,我花了近半年的时间从零开始自学了Python,并在KAUST的生产网络里进行了实践,写了大大小小几十个网络运维自动化的脚本,最终成功通过Python语言实现了全面的网络运维自动化,极大地提高了KAUST网络运维组的工作效率和准确率,让同事有更多的时间和精力学习其他与计算机网络相关的专业技能,帮助他们从传统网络工程师向NetDevOps工程师转型。

众所周知,Python这门编程语言的应用场景十分广泛,人工智能、数据分析、爬虫、Web开发、游戏制作等领域都能看到Python的身影,随着近几年Python的大热,与上述Python应用场景相关的书籍、视频、网站等教学资源随处可见,而Python的基础入门教程更是多如牛毛。遗憾的是,在如此丰富的Python教学资源中,为网络工程师量身打造的计算机网络运维方面的教学书籍却相当匮乏。市面上有部分以NetDevOps为主题、讲解网络运维自动化技术的书籍,这类书籍会走马观花地把Linux、Bash、XML/JSON/YANG、NETCONFIG、Jinja、StackStorm等技术都讲一遍,虽然其中有关于Python的篇幅,但是内容有限,讲解不够深入,没有系统地以网络运维工作中的实战代码深入浅出地讲解Python在大型网络运维中的实际应用。很多想学Python的网络工程师在读完这类书籍后依然一头雾水,不知道怎样将Python运用到工作中。还有一类系统讲解Python的基础入门教材,则把Python讲得过于详细,其中有很多知识点在网络运维中很少用到,甚至根本用不到,导致读者学习周期过长,学习效果也不够理想。另外,这类教材的作者都是专业程序员出身,术业有专攻,他们对网络技术、网络运维的了解不如专业网络工程师透彻,自然也就不可能量体裁衣地写一本适合网络工程师学习的Python教程。

有鉴于此,作为网络工程师出身、已经从事网络运维10年的我决定结合自己在学习Python和在工作中使用Python时积累的心得和经验,写一本为网络工程师量身打造的Python教程,以帮助所有希望转型或正准备转型的传统网络工程师,让大家在学习网络运维自动化技术的道路上少走一些弯路。

另外,Python核心团队已经宣布从2020年1月1日起不再对Python 2提供维护和社区支持,由于Python 3不兼容Python 2,因此本书所有内容将基于截稿前最新的Python 3.8.2做演示。鉴于部分读者具有一定Python 2的基础,本书也会对Python 2和Python 3有明显差异的技术点做讲解和演示。

本书内容简介

本书共6章,分别介绍如下内容。

第1章 Python的安装和使用

工欲善其事,必先利其器。本章将详细介绍Python在Windows和Linux操作系统上的安装和使用方法。

第2章 Python基本语法

为网络工程师量身打造的Python编程基础知识的详细讲解是本书的重点内容,分为基本语法(本章)和进阶语法(第3章)两部分。本章主要介绍Python的变量、方法与函数、数据类型等基础内容。

第3章 Python进阶语法

承接第2章的内容,本章将讲解Python中的条件(判断)语句、循环语句、文本文件的读写、自定义函数、模块、正则表达式及异常处理等网络工程师必须掌握的Python进阶知识点。

第4章 Python网络运维实验(GNS3模拟器)

第4章和第5章将分别以实验和实战的形式讲解Python在网络运维中的具体应用。本章共分为4个实验,实验难度循序渐进,所有实验都将在GNS3模拟器上演示,实验代码难度由浅入深,配合详细的讲解,帮助读者学习和理解。

第5章 Python网络运维实战(真机)

本章提供3个在生产网络里的设备上实战运行的Python代码进行讲解和演示。每个Python脚本代码都将提供详细的分段讲解,并且提供脚本运行前、脚本运行中、脚本运行后的截图,帮助读者清晰、直观地了解Python是如何把繁杂、单调、耗时的传统网络运维工作实现自动化的。

第6章 Python第三方模块详解

在第4、5章的基础上,本章举例介绍更多实用的基于Netmiko的Python第三方模块在网络运维中的应用,如TextFSM、ntc-template、Napalm、pyntc、netdev等,讲解它们如何帮助没有API的老旧网络设备实现更多网络运维自动化的功能,如何通过单线程异步及多线程的方式提高Python脚本的运行效率。

读者对象

本书适用于熟练掌握了计算机网络技术基础知识,并且希望学习以Python为代表的网络运维自动化技术的网络工程师、网络安全工程师、网络顾问、网络架构师,以及计算机网络专业的在校学生。本书也适合已经具备一定Python编程基础,并且对网络运维自动化技术感兴趣的Linux/Windows系统工程师和系统架构师。

本书特色

本书是为网络工程师量身打造的Python学习教程,本身就是网络工程师的作者提炼和精选了一些适合网络工程师学习的Python知识点来讲解,帮助对包括Python在内任何编程语言都是零基础的传统网络工程师快速学习和上手Python。本书并不是一本全方位的Python教程,毕竟术业有专攻,网络工程师不等于全职软件开发人员。

另外,本书会给出Python各种专业术语对应的英文词汇,比如字符串(String)、代码缩进(Indentation)、异常处理(Exception Handling)等,方便读者在延伸学习和查询与Python相关的英文资料时能快速适应。

最后,本书所有代码都将在Linux(CentOS)操作系统上执行,并在思科设备上进行演示。

致谢

首先感谢我的亲人,感谢你们对我学业、事业的支持,一步一步陪伴我走到今天。感谢你们长期以来默默地在生活及其他方面对我的照顾和关怀,让我能够专心完成此书。感谢刚满三岁的儿子弈仁,你的笑容化解了我生活中的一切烦恼。

感谢在新加坡12年的学习、生活、工作中给予过我无私帮助的同学、朋友、同事们。感谢王渊浩和Lawrence Lee,感谢你们在大学四年同窗及毕业后的生活中给予我方方面面的鼓励和帮助,让独自远离家乡出国留学的我并不感到孤独。感谢Newmedia Express的老板马来西亚人Alan Woo和Shirley Lee,毕业后的半年时间里求职四处碰壁的那段日子是我人生中最灰暗的一段回忆,感恩你们在我人生最低谷时给了我一份证明我自己的工作机会,它改变了我的人生轨迹。感谢Wired-Media公司的新加坡前辈杨绍鹏(Kenneth Yeo),感谢你当年每晚不辞辛劳地绕路驾车送上晚班的我回家,给了我这个刚刚踏入社会、远离家乡在狮城打拼的小职员很多温暖。感谢来自马来西亚的挚友卢忠声,相识十年来,与你在工作和生活中一起努力、相互勉励、相持而笑的日子是我一生中最珍贵的回忆。感谢新加坡同事Darry Tan,感谢你在我任职于苹果公司的那段时间里对我在工作和技术上无私的指导和帮助,感谢你毫无保留地同我分享了你备考JNCIE、CCDE的所有笔记和资料,以前辈的身份同我分享了许多宝贵的人生经验,感恩自己有幸能遇到像你这样真正以德服人、充满正能量的导师和贵人。

感谢我在KAUST的领导Gary Corbett、 Khalid Mustafa及Kevin Sale,没有你们在工作中及工作外给予我充分的支持、关心和信任,我将无法从一名传统网络工程师转型成为NetDevOps工程师,自然也就没有本书的诞生。

I would like to express my sincere gratitude by dedicating this book to Khalid Mustafa,Kevin Sale, Gary Corbett and whoever works with me at King Abdullah University of Science and Technology, without your selfless and continuous support, guidance and encouragement, this book won't be born.

最后感谢所有致力于在计算机网络这一行默默传授知识和分享经验的每一个人,你们改变了整个世界!

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《网络工程师Python之路》是一本介绍网络工程师如何应用Python技术的书籍。Python作为一种流行的编程语言,在网络工程领域中有着广泛的应用。该书以网络工程师的实际应用为出发点,通过讲解Python的基础知识,以及与网络相关的模块和库的使用,帮助读者掌握Python在网络工程中的应用。 书中内容主要包括以下几个方面: 首先,介绍了Python的基础语法和常用数据结构,帮助读者打下扎实的编程基础。无论是网络编程还是自动化部署,良好的编程基础都是必不可少的。 其次,介绍了与网络相关的Python模块和库,如socket、requests、paramiko等。这些模块和库可以帮助网络工程师实现网络通信、远程控制以及网络设备的配置等功能。通过实际案例的讲解,读者可以学习如何利用Python编写高效的网络程序。 此外,书中还介绍了一些自动化部署工具和框架,如Ansible、Fabric等。这些工具可以帮助网络工程师简化部署过程,提高工作效率。通过学习这些工具的使用,读者可以了解到如何利用Python编写自动化脚本,实现自动化部署和配置管理。 最后,书中还包含了一些网络安全方面的内容,如利用Python进行网络漏洞扫描、攻防模拟等。这些内容帮助读者了解网络安全的基本原理,并学习如何应用Python进行网络安全工作。 《网络工程师Python之路》适合网络工程师和对网络编程感兴趣的读者阅读。通过学习该书,读者可以全面了解Python在网络工程领域的应用,并掌握相应的编程技巧和工具使用。无论是提高工作效率,还是拓宽职业发展方向,该书对于网络工程师都是一本值得推荐的参考书籍。 ### 回答2: 《网络工程师Python之路》是一本探讨网络工程师如何运用Python进行网络编程和自动化PDF电子书。这本书主要介绍了Python语言的基础知识,并结合实际网络工程的案例,帮助读者理解和掌握Python在网络领域的应用。 首先,书籍从Python的基本语法和数据结构开始介绍,帮助读者建立对Python语言的基本认识。然后,逐步引入网络编程的相关知识,包括TCP/IP网络协议、套接字编程和网络通信等内容。通过实际案例和具体代码示例,读者可以学习如何使用Python进行网络数据传输、服务搭建等操作。 此外,书中还介绍了Python在网络自动化方面的应用。网络自动化网络工程师的重要技能之一,可以通过编写Python脚本来实现网络设备的自动配置、监控和管理等任务。通过学习本书,读者可以了解如何使用Python编写自动化脚本,提高网络管理效率和工作质量。 《网络工程师Python之路》还提供了练习题和项目实践,供读者巩固所学知识和提高解决实际问题的能力。此外,书中还介绍了一些常用的Python网络编程库和工具,如Requests、Scapy等,方便读者扩展和应用。 总的来说,这本书以简单易懂的语言介绍了Python在网络工程中的应用,适合网络工程师和对网络编程感兴趣的人阅读。通过学习这本书,读者可以掌握Python的基本语法和网络编程技巧,提高网络工程的效率和质量。 ### 回答3: 《网络工程师Python之路》是一本非常有价值的书籍,可以帮助初学者和有一定编程基础的网络工程师学习和提升Python编程技能。 这本书的主要内容包括Python语言基础、网络编程、Web爬虫、网络安全、数据分析等方面的知识。首先,它会帮助读者掌握Python的基本语法、数据类型、条件语句、循环语句等基础知识,并通过大量实例帮助读者理解并掌握这些知识。 其次,书中还详细介绍了Python在网络编程方面的应用。网络工程师可以通过学习此书,掌握使用Python进行网络编程的各种技巧和方法,包括Socket编程、HTTP协议、FTP协议等。这对于搭建网络服务器、实现网络通信功能非常有帮助。 此外,书中还涵盖了Web爬虫的内容,教会读者如何利用Python编写爬虫程序,并解析网页内容,提取所需的信息。对于网络工程师来说,这是一个非常实用的技能,可以帮助他们从网页中获取所需的数据。 此外,书中还涉及了网络安全和数据分析方面的知识。网络安全是网络工程师必须掌握的知识之一,而Python作为一种快速、灵活的编程语言,在网络安全领域也有着广泛的应用。数据分析方面的内容则可以帮助读者应对大数据时代的挑战,利用Python进行数据清洗、处理和分析。 总的来说,《网络工程师Python之路》是一本内容全面、实用性强的书籍。通过阅读和实践,读者可以系统地学习和掌握Python编程语言,并将其运用到网络工程的各个领域。对于想要进一步提升自己在网络工程领域中的竞争力的读者来说,这本书是不可或缺的学习资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值