
让大家从 CMDB 自顶向下的拆解,来更生动的体会到Python基础数据结构的运用
结合简易的 CMDB,学习 Python 的控制语句,函数以及面向对象相关的知识。
这一节最主要的是需要去学习功能设计“五步法”,来培养正确的编程思维,学会在阅读源码前如何思考,如何带着思考去拆解源码。
充分利用编程的思想,将要解决的问题逐步拆解;再利用代码实现功能。
着重又复习了一次“五步法”,并且对于更新功能的逻辑做了详细的解读
这节内容带领大家一次将删除和查询功能分析完成
以面向对象的思维方式去解决CMDB的这些需求
结合 CMDB v1.5 学习如何使用 Python 中的类
深入剖析 CMDB v1.5 中类的运用
针对自动化运维来说,我比较推荐构建Web应用,即B/S(Browser/Server)架构,服务端维护 Server 应用,用户只需要通过浏览器即可访问,B/S应用分布性强、维护方便、开发简单并且共享性强。
想要从脚本小子更近一步的时候,学习Web应用几乎就是必经之路。
Flask作为一个轻量级Web框架,那就先发挥一下他”轻“的优势,初始化一个 Flask 应用, 并快速与之前的CMDB专题进行结合。
这一章节着重介绍 Flask 中的请求处理,路由函数,异常处理和接口返回的内容。
这一章节主要讲解了关于用户身份认证的原理和具体实现。
用户在通过认证之后,已经可以正常访问我们的后端应用,但当后端应用越来越完善,功能越来越丰富,并且牵扯的资源以及用户的范围都足够广的时候,用户的权限校验就显得尤为重要。
今天的章节对 CMDB 应用进行改造,不管是用户信息还是CMDB信息,一律不再通过文件进行存储,而是使用关系型数据库来实现数据的读写。
Flask作为微框架,其集成的几乎所有的能力都来自于插件,ORM框架就是提供数据库操作能力的一种插件。
这一章节在后端应用中集成了Flask-SQLAlchemy插件的基础上,完成资产数据增删改查的改造,重构过程中也涉及到了一些Python进阶的知识点。
几乎所有的后端应用都不可能只存在单独的一张数据表,大多数情况下都是存在多张数据表,并且这些数据表之间都存在关联,可能是一对一,或者一对多,等等。那么今天这一章节我们就着重讲解一下如何使用Flask-SQLAlchemy进行多表关联查询,并逐步完善后端应用的参数及异常处理。
单纯的Flask 自带的Web服务器做下测试,在压力大的时候出现socket的问题,因为他是单进程单线程的。而使用gunicorn来启动,响应速度和能力提升显著;因此如果 Web-CMDB 需要对外提供运维能力,还需要将Flask后端做正式部署。
相信看这个教程的朋友肯定都听过这两个工具包,但可能并不是所有的人都了解这两个包之间的关系。除此之外,网上五花八门的对于用哪个更好的争论也难以分辨。
那么这个章节就先给大家介绍一下这两个包的来龙去脉,以及我个人在工作中对两个包都深度使用过之后的体验。
Netmiko已经确定是SSH连接网络设备工具包的不二之选。那么这一章节我们就正式进入Netmiko的讲解,由浅入深的学会使用Netmiko。
这一章节主要给大家讲解了如何设计一个巡检模块,并对其中的基本组成做了初步的介绍,尤其是针对初始化SSH执行器做了较为深入的讲解。
经过这一章节的讲解,我们已经基本准备好了执行命令必须的几个模块:执行器初始化连接,命令筛选,设备筛选,关于保存和解析部分会在后面章节提到,在阅读完这一章节之后,大家便可以自己尝试一下编写SSHExecutor的代码了。我会在下一章节中手把手带领大家来写SSHExecutor。
这一章节主要是对Netmiko中的核心函数的讲解,这些函数的参数也都给大家分类展示了出来,更容易理解和使用,但还是需要从实践中加深理解;而且Netmiko的封装过程都是基于网络设备的交互逻辑,所以大家也不需要死记硬背,只要结合网络运维的经验即可理解掌握。
这一章节给大家演示如何逐步完善SSH执行器的代码,其中涉及到面向对象的特性、Python中的函数注解、异常处理和日志记录等诸多知识点,希望大家可以反复观看视频进行深入理解。
之前的章节中DeviceHandler和ActionHandler都各自实现了一个具备增删改查功能的子类,今天我们就用ORM将其改造一下,使其能结合到Flask应用中。
这一章节结束后Flask大型应用的构建就已经结束了,从文件拆分,到路由蓝图,再加上环境配置、异常处理,最后完成和SSH执行器的结合。现在已经具备了将远程CLI进行服务化的基本能力。
这一章节主要是给大家做一下正则表达式的科普,本身正则表达式的编写并不会特别复杂,但需要掌握的知识点较为零碎,所以我希望尽可能的精简,并且通过匹配IP的例子将其串联起来,让大家尽快熟悉正则表达式,也能为后续学习TextFSM打好基础。
根据上一章节中实践正则表达式的过程中,大家会发现如此灵活的正则匹配的短板恰恰就是催生 TextFSM 的重要因素。
这一章节通过三个 TextFSM 模版的举例来解决了我们一开始遇到的三大解析痛点。
这一章节讲解如何在 Python 中使用 TextFSM,以及如何将其集成到巡检框架中。
经过前面几个章节的学习,总算是初步上手了文本的解析功能,那么这一章节中来完善巡检框架,让它具备解析能力,这样才是一个完整巡检模块。
虽然和设备交互的过程中 SSH 是使用最为广泛的,但也存在一定的弊端,而 SNMP 正好可以填补这部分能力。这个章节开始我会讲解 SNMP 相关的细节,以及如何用 SNMP 来采集数据。
对于巡检框架来说,还缺少一部分重要的功能,那就是将解析结果进行存储、校验和导出,并且还需要通过多线程保证巡检的性能。
你是否决定走上运维工程师的职业道路,或者您是深耕运维多年的资深人士?
但看着其他人在自动化运维方面表现出色,你巡检两台设备的时候别人已经巡检了一百台设备,甚至还生成来报告;
面对学习自动化运维,你发现很难走出自己的舒适区并找到合适的切入点;再加上已经不堪重负的日常工作,没有时间从头开始学习新技术?那么这门课程将带给你不一样的收获!
我是一名研发工程师并且在自动化运维方面拥有丰富的经验;
并且本人精通软件架构设计,对如何将编程技术与网络运维的结合有深入的理解;
如果你有兴趣将 Python 与网络运维相结合或者想构建一个自动化运维系统,我将手把手带你从入门到精通。