Python课程
上课讲师:秦柯   上课模式:线上线下同步  开班时间:2022年6月25日   上课时间:周六末全天

Python课程介绍

循环开班 随到随学

课程介绍

知识模块

课时

作业



Python基础课

24

16


网络经典协议实现与自动化

18

15


Django网页开发

12

10


强化班DevNet

12

10


开源自动化软件

6

5


网络自动化运维系统开发

3

0


 

 

 

 


 

课程

 

课时

 

作业

 

 

第一部分

Python基础课 周末班【3.5(周末全天),3.12(周未全天),3.19(下午),3.20(下午)]

 

 

 

4*6=24个课时

 

16份作业:3.5;3.7-11;3.14-18; 3.21-25

 

 

 

第二部分

DevNetOps/DevSecOps 网络经典协议实现与自动化[3.28-29(晚班) ,4.4-5 (晚班) ,4.9(下午)]

 

 

6*3=18个课时

 

 

 

15份作业:3.28-4.1;4.4-4.8; 4.11-15

 

 

 

第三部分

DevNetops/DevSecOps Django 网页开发【4.18-19(晚班),4.23 (下午)]

 

 

 

3*4=12个课时

 

 

10份作业:4.18-22;4.25-29

 

 

 

第四部分

DevNetOps/DevSecOps 强化班DevNet(原HTTP协议)[5.2-3(晚班),5.7(下午)〕

 

 

 

3*4=12个课时

 

10份作业:5.2-6;5.9-5.13

 

 

 

第五部分

DevNetOps/DevSecOps 开源自动化软件(原Ansible Zabbix ELK)[5.14(下午),5.15(下午)]

 

 

 

1*6=6个课时

 

 

 

5份作业:5.16-20

 

 

 

第六部分

DevNetOps/Dev Secops 网络自动化运维系统开发 [5.21(下午]

 

 

1*3=3个课时

 


总共56份作业 75课时

 

讲师介绍 

现任明教教主-- -秦柯 CCIE#13778

•毕业于:北京理工大学

•曾就职于重庆电信

•思科安全,PYTHON授课讲师

• 二十多年授课及解题经验

•中国银行,重庆电信,中国移动,北京银行,思科社区等企业的专业培训

•深入开发研究了200多门网络课程,共享的视频多达100多门,至今无人超越

•亲手带过安全CCIE 1193人,DC CCIE137人

•率先创办了DC CCIE实验室,亚洲PASS DC

CCIE第一人

•逻辑思维能力强,所有课程自主研发,上课风格幽默诙谐,深受好评,与人民邮电出版社出版了行业内第本《CISCO IPSEC VPN实战指南》。

 

 

课程详情

第一部分:

1Python语言介绍

TIOBE Index for October 2021               Python应用领域

Python哲学                              语言类型

FTP代码实例                             Python其他优点

 

2Python环境安装

2.1Windows下安装Python3pip

安装Python3(Windows)                     测试Python3

测试pip和easy_ install                       pip安装模块

 

2.2CentOS下安装Python3、pip

安装Python3 ( CentOS7 &8)                   测试Python3

测试pip3下载模块

 

2.3pycharm基本操作

视频教程

 

2.4Python文档

本地文档                                    在线文档

Python模块自带帮助                          Python模块介绍文档

Pycharm查看文档

 

3、Python内置类型:数字

Python的全景视图                            为什么使用内置对象

内置对象                                    对象分类

基本数字常量                                内建数字工具

表达式操作符优先级                          数字的四则运算

类型转换                                    内置数学函数

随机模块                                    课堂练习

 

4、Python内置类型;字符串与正则表达式

对象分类                                    字符串常量与表达式

单引号,双引号,三引号及实例                字符串反斜杠字符及实例

Raw字符串抑制转义                          字符串基本操作

For循环介绍                                 索引与切片

字符串转换工具                              修改字符串

字符串方法及案例                            字符串格式化表达式与方法

字符串格式化类型代码                        字符串格式化表达式简单示例

字符串格式化表达完整语法                    字符串格式化表达高级示例

字符串格式化方法格式介绍                    字符串格式化方法示例 

字符串格式化方法高级示例                    格式化字符串f-string

课堂练习                                    正则表达式简介

正则表达式:1:转义符                         正则表达式:2:多种字符

正则表达式:3:自定义多种字符                 正则表达式:4:匹配次数

正则表达式:5:代表抽象意义                   正则表达式:6:表达式关系

RE测试:1                                    RE测试:2

RE测试:3                                    课堂练习

 

5、Python内置类型:列表与字典

对象分类                                    列表主要属性

常见列表常量和操作                          基本列表操作

迭代和解析                                  索引和分片  

矩阵和嵌套                                  列表方法调用

引用vs拷贝                                 列表引用问题

copy vs deepcopy                             使用集合清除重复条目

课堂练习                                    字典主要属性

字典常量和操作                              字典基本操作

原处修改字典                                字典GET

字典UPDATE                                 字典POP

遍历并且打印字典的方法                      字典用法注意事项

ZIP创建字典                                 字典解析

有序字典(3.6之后用的很少)                 课堂练习

 

 

 

6、Python内置类型:元组与文件

对象分类                                     元组主要属性

元组常量和运算                               创建元组

元组基本操作                                 元组的转换与排序

元组的解析                                   元组INDEX与COUNT

元组内部列表的修改                           常用文件运算

打开文件                                     使用文件

写入并逐行读取文件                           整个读取文件并且打印

文件迭代器(最佳选择)                       文件定位

重命名和删除文件                             创建目录,切换目录,删除目录

课堂练习

 

7、Python语句和语法;赋值

Python程序结构                                Python语句

赋值语句                                      赋值语句形式

序列赋值                                      迭代赋值

扩展序列解包                                  多重赋值与问题

增强赋值                                      变量名规则

表达式语句                                    表达式语句和在原处的修改

 

8、Python语句和语法;打印

Python3.0Print函数                           Print基本操作

Print的sep选项                                 Print的end选项

Print的file选项                                 Print的字符串工具

stdout

 

9Python语句和语法if语句

if语句简介                                     if语句通用格式

if语句简单示例                                 逻辑与或非,三元选择表达式

比较运算                                       Python语法规则

通过缩进来决定块                               If/else三元表达式

课堂练习

 

10Python语句和语法 while和for循环

While循环一般格式                             While循环例子

Break,cotinue,pass和循环else                   Pass就是什么也不干

Continue跳过这个执行下一个循环                 Break跳出整个循环

课堂练习                                      for循环一般格式

for循环例子                                   课堂练习

 

11Python函数

函数是什么?                                 不使用模块和函数造成大量代码冗余

模块和函数对代码的优化                       程序,模块和函数流程图解

函数相关的语句和表达式                       def语句格式

def第一个例子                                def第二个例子

全局变量与函数本地变量                       修改全局变量  

产生全局变量                                 函数参数匹配表

参数示例                                     函数控制输入输出类型 

安装kamene                                   课堂练习

安装paramiko                                  课堂练习

 

12Python模块

为什么使用模块                               Python程序架构

模块搜索路径                                 sys.path

创建模块                                     创建第一模块

模块的使用(import)                          测试

模块的使用(from)                            测试

模块的使用(from *)                          测试

导入变量案例                                 测试

目录+__init__.py                              多层导入

模块reload                                    If __name__==  ‘__main__’

测试If __name__==  ‘__main__’                 装饰器

装饰器实例                                   课堂练习

 

13.Python类

程序的两种设计思路                          面向过程(逻辑导图)

面向过程(设备轮询)                        类是怎么工作的?

类的特点                                    初始化类——添加属性

添加行为——添加数据的处理逻辑              添加继承

多态                                        封装——修改方法之前

封装——修改方法之后                        重构代码:增强方法

等价的操作                                  重构代码:格式化显示

重构代码:自定义构造函数                     最终代码

测试最终代码                                课堂练习

14.內建模os,sys,datetime,argparse

其他系统模块                                sys与os

14.1sys模块

1.平台与版本

测试平台的小作业 

2.模块搜索路径

添加路径搜索小作业

3.已加载的模块表

4.提取命令行参数

ping脚本的优化

5.其他sys模块工具

14.2os模块

os模块介绍                                   常用os模块工具

查看模块属性(os)                           

查看模块属性(os.path

1.管理工具

2.可移植的常量

3.os.path工具

4.在脚本里运行Shell命令

os.system

os.popen

subprocess

5.os模块导出的其他工具

14.3datetime

datetime模块介绍                             datetime.datetime——获取当前时间

strftime——指定格式输出                      datetime——格式化参数

datetime.datetime——获取三天前的时间         datetime.datetime——获取今天的日期

datetime.datetime——获取10天前的日期        datetime.datetime——获取10天后的日期

datetime——获取指定部分的时间               datetime对象与string互传

切换时区                                    课堂练习

14.4argparse

argparse模块简                 

argparse简单流程——第一步:创建ArgumentParser对象

argparse简单流程——第二步:添加Usage

argparse简单流程——第三步:optional arguments

argparse简单流程——第四步:positional arguments

argparse简单流程——第五步:调用parse_args()解析命令行

完整代码                                 代码分析

测试                                     课堂练习

Pyinstaller制作exe

15.数据持久化

15.1pickle

Pickle技术介绍                            pickle存储Python原生对象

更新pickle文件中的对象

15.2shelves

使用shelves                                 产生shelves数据库

读取并打印shelves数据库                    测试shelves数据库

更新shelves数据库

15.3数据库

SQLite简介                                 交互界面测试SQLite

DB Browser                                  DB Browser测试SQL语句

SQLite代码

15.4XML

XML可多站标记语言简介                      HTML vs XML

HTML来表示一个会议                         XML来表示一个会议

一个XML的实例                             分析XML代码

代码图解分析                                分析XML结果

Xmltodict(推荐)                            手动构建XML代码

代码图解分析                                自动构建XML代码

推荐构建方案jinjia2模板替换

15.5JSON

问什么现在网络设备都启用API                JSON简介

JSON中数据存在的形式:string                JSON中数据存在的形式:number

JSON中数据存在的形式:object                JSON中数据存在的形式:array

JSON文件内容示例                           Python对象写入为JSON文件

Python对象转换为JSON格式字符串

15.6base64

怎么利用Base64传输数据                    二进制对象与base64互转

代码                                      比较

16.Python多线程与多进程

进程与线程的比喻                          GIL

执行任务模块                              简单实例

测试多进程                                Python协程的问题                       

协程                                      协程SSH

协程SSH测试                              课堂练习

17.Python异常处理

try/except/else语句                         try语句分句形式

异常处理示例                              异常处理代码

PASS异常                                 课堂练习

 

 

第二部分:网络经典协议实现与自动化

 

基础知识:Scapy &工具模块       

Scapy介绍                             Scapy主要功能

安装kamene                            交互式界面测试kamene

Kamene默认值                          收发数据报介绍

Kamene构造ping包测试                 Ipaddress模块介绍

接口ID与名字对应关系                 win_ifname(接口ID与名字对应关系)

get_ifname(获取接口唯一ID)              get_mac_netifaces

get_ip_netfaces                          sort_ip

Link Local address                       Link Local address

EUI-64 address                         Solicited node multicast address

           

 

1ARP

ARP帧结构                           ARP字段介绍

ARP抓包(请求)                     ARP抓包(回应)

ARP请求代码                         ARP请求测试

ARP扫描代码                         ARP扫描测试

ARP欺骗代码                         ARP欺骗测试

Linux上运行程序                      欺骗效果

 

 

2ICMP(ICMPv6)

ICMP介绍                           ICMP头部

Ping介绍                            Ping包介绍

提取返回包详细信息                  Ping_one代码

Ping代码                            Ping_scan代码

IPv6地址映射到组播                  NS抓包(Linux发送)

Python构造NS                       NA抓包(IOS回应)

Python构造NA                       测试毒化效果

RS抓包(Linux发送)                 Python构建RS

RA抓包(IOS回应)                  Python构建RA

测试RA欺骗效果                     Echo Request抓包(IOS发送)

Python构建Echo Request               Echo Reply抓包(WIN回应)

3UDP

UDP介绍                             UDPvsTCP

UDP首部                             UDP_Socket_Server

UDP_Socket_Client                     测试

Socket类型                           Socket函数

公共Socket函数                      原始套接字Socket_Raw

Change_IP_To_Bytes                    Change_MAC_To_Bytes

Checksum                             Struct模块

4DNS

UDP介绍                             DNS的主要记录

Scapy构造DNS A请求                 Scapy构造DNS A回应

推荐使用dns模块进行解析

5TFTP

TFTP介绍                                 TFTP读操作

TFTP写操作                               TFTP服务器代码

TFTP客户端代码

6HCP

DHCP介绍                                DHCP包交换

DHCP包类型                              DHCP端口号

WIN抓包分析(DISCOVER)                 Discover重点参数请求清单

WIN抓包分析(OFFER)                    WIN抓包分析(Request)

WIN抓包分析(ACK)                      Python构建DISCOVER

Python产生DISCOVER DOS                  Python构建Reauest

Python实现DHCP完整过程                  Python实现DHCP监控

7SNMP

7.1 SNMP理论

SNMP三大组建                           SNMPv1/v2 Messages

Community的安全问题                     SNMP Security Models/Levels

SNMPv3的安全特性

7.2 SNMP基本操作与MIB

SNMPv2基本配置                          OidView创建会话

下载Cisco MIB                            加载MIB

读取思科路由器的CPU利用率               读取SNMP Trap

SNMPv3基本配置                          OidView创建会话

7.3 SNMP七种操作

SNMP统一包格式                          第一种:get-reauest

第二种:get-response                        第三种:set-request

第四种:get-next-request                    第五种:getBulkRequest

第六种:trap                               第七种:informRequest

7.4SNMPv2 Python实现

SNMPvGET                              SNMPvSET

SNMPvGETNEXT                          SNMPvGETBULK

SNMPvTRAP                             SNMPvgetall

7.5SNMPv3 Python实现

SNMPv3配置                              SNMPvGET

SNMPvSET                              SNMPvGETNEXT

SNMPvGETBULK                          SNMPvTRAP

7.6 SNMP实战一(matplotlib)

Python数据呈现路线图

解决matplotlib模块,linux环境中乱码问题

读取SNMP写入数据库

数据呈现(线形图)

7.7 SNMP实战二(influxdb_grafana

docker-compose文件                       docker-compose拉起容器

运行脚本采集数据,并发送到InfluxDB        登陆Grafana

修改默认密码                             添加数据库

加载Dashboard                             Dashboard详细配置

8NTP

NTP介绍                                  NTPLIB

NTP字段介绍                              NTP抓包(request)

NTP抓包(response)                       NTP RAW

9SYSLOG

9.1 Syslog理论与简单的服务器搭建

为什么要配置Syslog                      Log Output Destinations

Syslog Severity Levels                     Syslog Facility

路由器Syslog配置                       Syslog抓包

Python收集并分析SYSLOG                  Python发送SYSLOG

WIN系统教研和问题

9.2 Syslog实战一 分词与写入数据库

Syslog分词并写入数据库

读取数据库并呈现为饼状图

9.3 EFK实战二

使用Docker-compose拉起EFK                 Kibana首页

创建索引                                   Discover

可视化

10TCP

TCP简介                                   TCP首部

Socket(套接字)                           Socket类型

Socket函数                                 公开Socket函数

Socket_Server                                Socket_Client_From_Input

Socket_Client_From_List                       Socket_Server_JSON

Socket_Client_JSON                           Socket_Server_PICKLE

Socket_Server_PICKLE                          Socket_Client_PICKLE

11Telnet

Telnet简介                                   Telnet抓包

Wireshark TCP流                              关于Telnet的回显

Python Telnet代码                             Netmiko

Telnet协程测试

12SSH & SFTP

SSH简介                                      Python SSH代码(单个命令,获取回显)

Python SSH代码(多个命令,执行命令)           Python SFTP代码

12.1 ntc-templates

Textfsm                                        Ntc-templates

Pyats-genie-command-parse

12.2 实战一 读取Excel,SSH写入路由器

读取Excel数据到字典(Pandas版本)

字典写入Excel(Pandas版本)

最终汇总实战代码(Pandas版本)

12.3 实战二 后去设备配置,并且比较

比较文本

获取配置,计算MD5,写入数据库

查看配置,并且比较

13FTP

FTP简介                                     Active Mode

Passive Mode                                  FTP下载

FTP上传                                      FTP罗列特定目录文件

查找整个FTP站点(递归查找技术)

14SMTP

14.1 SMTP理论与基本代码

SMTP简介                                   SMTP协议工作原理

NC SMTP发现过程                            邮件内容分析

qq邮箱SMTP与POP3设置                      SNTP发送附件代码

SMTP发送图文邮件

14.2实战一 发送Word,PDF附件

Word处理

邮件效果

产生一个更加完整的Word的脚本

14.实战二 发送HTML图文邮件

SMTP发送HTML图文邮件

15POP3

POP3简介                                   NC POP3收件过程

POP3收件(完整)                           Decode代码

代码分析

16LDAP

LDAP简介                                   Python实现LDAP查询

处理拼音                                    LDAP连接

get_user_info                                 其他代码

17量分与处理

17.1.1 Netflow理论与python

Netflow原理                                 Netflow的用途

Netflow的版本                               Netflow的组件

Netflow的配置实例                           Key与nonkey field的区别

Netflow v9包格式介绍                        主程序

Netflow分析程序                             Netflow图形呈现代码

17.1.2 ElastiFlow

ElastiFlow代码                               Docker-Compose拉起容器

导入索引                                    导入Dashboard

索引与Dashboard都已经配置完毕           

Dashboard ElashtiFlow:Overview

Dashboard ElashtiFlow:Flows(client/server)

Dashboard ElashtiFlow:Flow Records(vlient/server)

Dashboard ElashtiFlow:top Talkers

17.2Scapy流量分析

Scapy PCAP DoS分析                          Scapy PCAP HTTP Host分析

Scapy PCAP查找特定字段数据包                Scapy Reset TCP 

Scapy 监控Telnet流                           Scapy Reset 特定Telnet 

17.3 PyShark流量分析

Pyshark简介                                  Pyshark.1.基本显示

Pyshark.2.捕获数据                           Pyshark.2.过滤与选项

Pyshark4.现象级数据包                        Pyshark.5.1.TCP流最大ID

Pyshark.5.2.特定TCP流的数据包               PyShark.6.URL分析

 

 

 

第三部分:Django网页开发

1. PyCharm快速搭建Django开发环境

添加新项目                               添加SSH解释器

添加项目                                 添加ALLOWED_HOSTS

北京配置                                 激活Run Browser

开始项目                                 小火箭起飞

2. Bootstrap与模板继承

Bootstrap简介                             Bootstrap官网

Starter Template                           创建base.html

Navbbar                                   Navbbar代码贴入Body

添加block title                            添加block body

创建index.html                            container

模板继承与替换图解                       views.index

url.py                                    测试主页

Django内部工作原理

3. 处理图片

上传Logo图片                           settings.py定义静态文件目录的路径

base.html                                测试logo图片

上传favicon.ico(图标)图片               Base.html中插入图标文件链接

测试图标

4. 数据库

Object Relational Mapping(ORM)            Python两大ORM

创建app qytdb                             从服务器下载qytdb的数据

下载qytdb数据后结果                      安装psycopg2-binary

配置settings                               添加qytdb到INSTALLED_APPS

Docker-compose-yaml                        Init-user-db.sh

Docker-compose启动psql                    检查配置错误

数据库外键设计                            qytdb.models中创建表

外键关联示意图                            Data Types与Model field参考文档

像数据库创建表                            向表中写入条目数据

Pycharm配置数据库                         Pycharm查看数据库

pgAdmin4连接数据库查看写入内容           获取条目get

搜索条目filter                              获取所有

更新条目                                  删除条目

外键搜索一                                外键搜索二

5. 模板实战

最简单模板:summary.html                  最简单模板:qyt_template.py

最简单模板:urls.py                        最简单模板:base.html

最简单模板:测试                          最简单模板图解

for循环:summary.html                      for循环:qyt_template.py

for循环:测试                              模板for循环图解

字典:summary.html                         字典:qyt_template.py

字典:测试                                if : qyt_template.py

if : summary.html                          if : 测试

locals传递参数                             

课程详细介绍 base.html

课程详细介绍 : qyt_department_view_detail.py  

课程详细介绍 : urls.py

课程详细介绍 : qyt_department_detail.html

课程详细介绍 测试

模板filter与注释

自定义filter

时间的filter

6. 表单

创建数据库                                   外键设计

class Banzhuren                                class StudentsDB

数据库中创建表                               写入班主任数据

创建forms.py                                 studentsForm表单

form Types与Form field参考文档                studentsForm表单HTML源码

bootstrap Forms                                添加qyt_department_addstudent.py

urls.py中添加addstudent                        添加qyt_department_addstudent.html

添加qyt_department_3_message.thml              base.html中添加block head

base.html中添加下拉菜单与超链接              添加学员测

qyt_department_showstudents.py                  qyt_department_showstudents.html

base.html添加block js                         DateTables

url.py                                        base.html添加超链接

查看学员                                     qyt_department_deletestudent.py

urls中添加deletestudent                         测试删除学员信息

删除学员信息图解

7. 图表(线性图,柱状图, 饼状图)

7.1分离的URL管理与打框

创建新的APP                                 INSTALLED_APPS添加应用

全局urls.py                                   crats_test下创建templates

carts_test_multi_echarts.html                     转换views到package

charts_test_view_multi_echarts.py                 carts_test下urls.py

base.html                                     打框效果图

Bootstrap网格系统介绍

Bootstrap网格系统测试

Bootstrap间隔系统介绍

7.2 Echarts

Echarts官网

加载教主封装后的JS文件

7.3 最简单柱状图,HTML讲台数据(chart1)

最简单的静态柱状图

教主封装JS echarts_bar

JavaScript图解

7.4 线性,柱状图 数据源自于Django(chart2)

HTML使用JS echarts_compound获取Django数据

构建echarts数据的函数

产生数据返回给前端的JS

测试线性和柱状图,数据源自于Django

7.5 线性,柱状图 数据源自于AJAX(chart2

什么是AJAX                             添加刷新按钮和AJAX获取数据JS

Charts_test_ajax_chart2.py                   Charts_testurls.py

测试AJAX属性chart2                      AJAX工作原理图示

7.6最简单饼状图,HTML静态数据(pie1

饼状图1HTML静态数据

测试饼状图

JavaScript图解

7.7 饼状图,数据源自于Djangopie2

饼状图2 Django数据HTML

饼状图2 Django数据view

饼状图2 Django数据测试

7.8 饼状图,数据源自于AJAX(pie3

饼状图3 ajax数据HTML

饼状图3 ajax数据view

饼状图3 ajax数据urls.py

饼状图3 ajax数据测试

AJAX工作原理图示

7.9 终极线形图CPU利用率,数据源自于AJAX

终极线形图CPU利用率HTML

终极线形图CPU利用率view仅返回页面

终极线形图CPU利用率base.html

终极线形图CPU利用率urls.py

测试能够看到空框

终极线形图CPU利用率view ajax

代码介绍

终极线形图CPU利用率urls.py ajax

终极线形图CPU利用率测试

JavaScript图解

AJAX工作原理图示

7.10 终极线形图接口速率,数据源自于AJAX

终极线形图接口速率HTML

终极线形图接口速率view仅返回页面

终极线形图接口速率base.html

终极线形图接口速率urls.py

测试能够看见空框

终极线形图接口速率view ajax

终极线形图接口速率urls.py ajax

终极线形图接口速率测试

8. 后台管理

创建超级用户                               把数据库归为后台管理范围

超级用户登陆管理平台                       后台可以对用户和数据库表进行管理

添加数据库条目添加学员                     添加组

添加用户                                   用户登陆测试权限

创建组employee                             用户employee登陆后台管理

9. 登录与权限控制

创建UserForm                               Qyt_login.py

添加登陆登出的URL                         Login页面参考Bootstrap实例

Login.html                                 Static下放入logo.jpg图片和signin.css

Base.html添加姓名,登陆,登出信息         登陆测试右上角的姓名和登录登出按钮

Login_required()                             访问部门摘要和详情就会跳转到登陆页面

查看用户拥有的权限                        权限控制

测试权限控制

10. Nginx + uWSGI部署

WSGI                                      安装uwsgi

测试uWSGIF Web服务                       编写uWSGIF配置问题件

安装NGINX                                 配置NGINX

测试NGINX                                 配置服务

启动服务                                   测试

配置主机映射文件(有DNS最佳)            关闭DEBUG,添加ALLOWED_HOSTS

通过域名访问                               django Debu-报错消失了

dango-crotab

 

 

第四部分:强化班Devnet

 

1. 环境介绍

2. Requests与Bottle模块

2.1 Bottle静态路由

Bottle/Flask最基本静态路由(文本)

Bottle最基本静态路由(文本)

Bottle最基本静态路由(HTML)

2.2 Bottle动态路由与模板

Bottle动态路由和模板                       Flask动态路由和模板

Bottle动态路由和模板(模板)               Bottle动态路由和模板(动态路由+模板)

Bottle动态路由和模板(复杂数据)           Flask动态路由和模板(复杂数据)

Bottle动态路由和模板(复杂数据)           Bottle动态路由和模板Form)

Flask动态路由和模板Form)                Bottle动态路由和模板(测试)

Bottle动态路由和模板from.html           Bottle动态路由和模板(from_result.html)

2.3 Bottle JSON RPC

Bottle JSON RPC 服务器                     Flack JSON RPC 服务器

Requests post 请求                          测试

图解

2.4 Requests请求与响应处理

requests get                                requests post(服务器新增内容)

requests post(客户端内容)                 requests post

requests 下载图片

2.5 Requests Headers处理

获取headers和Cookies信息                  自定义headers

如何后去Chrome浏览器请求的Headers

1.6 Requests HTTP认证

HTTP Basic认证

1.7 Requests状态码与异常处理

状态码与主动抛出异常

异常

1.8 Requests https与证书校验

https与证书校验

3. Cisco ASA REST API

3.1 Cisco ASA REST API简介

传统配置方案                               当前的挑战

Python使用人类入口                         协议与数据编码语言

协议比较                                    REST简介

API重点                                    认证

ASA REST API Requests and Responses          HTTP Method

Put vs patch                                 HTTP Status

下载REST API文件                          ASA基本配置

激活ASDM(传文件)                        加载REST API IMAGE

Cisco API DOC

 

2.2 Cisco ASA REST APl认证

Token Authentication API DOC

2.3 Cisco ASA REST API脚本

Object

数据结构分析

2.4 Cisco ASA REST API自动化

ASA自动化

4. IOSXE NETCONE & YANG

4.1 NETCONF简介

YANG Data Modeling                     YANG XML

NETCONF封装                           Model-Driven Programmability on Cisco Devices

4.2 YANG Suite

YANG Suite官网                         YANG Suite DOC

YANG Suite Github                        乾颐堂内部Gitlab地址

相对于官方文件的修改                    Git项目

产生秘钥                                Docker-compose build & up

用户协议                                登陆

首页

4.3 使用NETCONF配置路由器

路由器激活netconf                        添加设备

测试设备可达性                          创建默认的仓库和YANG集

查看仓库                                查看YANG集

配置拓扑                                NETCONF YANG查询

NETCONF 配置IP                          RUN RPC

路由器上查看配置结果                    产生Python脚本

获取关键的XML                      

Python3优化后代码(产生XML)[使用jinja2模板]

Python3优化后代码(发起netconf请求)

NETCONF脚本步骤介绍

YANG Suite配置(no shutdown接口)

Yang XML(no shutdown接口)

Python3优化后代码(产生XML[使用jinja2模板]

YANG Suite配置(配置OSPF进程与Router-id)

Yang XML(配置OSPF进程与Router-id)

YANG Suite配置(OSPF宣告网络)

Yang XML(OSPF宣告网络)

NETCONF配置静态路由(模板)

NETCONF配置静态路由(YAML的数据)

NETCONF配置静态路由(代码)

4.4 NETCONF,自动化配置与监控

NETCONF自动化                          关注一下数据结构(JSON)

关注一下数据结构(数据库)              NETCONF监控采集CPU利用率

终极线形图

5. IOSXE RESTCC NF

RESTCONF简介                          参考文档

NETCONF Vs RESTCONF                   HTTP Methods

RESTCONF vs REST                       RESTCON作为北向出口

RESTCONF作为南向出口                  新的Media Types

YANG defines four types of nodes for data modeling

Leaf                                    Leaf-list

Container                                List

YANG Date Modeling                     导入PostMan项目

5.2 Restlet(Postman) RESTCONF测试

路由器激活RESTCONF                   按照Postman

找到RESTCONF API的根                 Media types

RESTCONF Root Resource                 获取版本

创建环回口                            YANG Date Modeling

删除环回口                            URL案例

获取接口配置                          获取特定接口配置

配置接口IP地址                        no shutdown 接口

配置OSPF进程ID和Router-ID            配置OSPF网络宣告

获取CPU利用率                        获取配置

保存配置                              经验总结

5.3 Python实现RESTCONEC

RESTCONF代码                         RESTCONF自动化

关注一下数据结构(JSON)              RESTCONF采集CPU利用率

6. IOS-XE Shell and Scripting

6.1 IOS-XE Guest Shell

Guest Shell                               

Cisco IOx

Cisco IOx Application Environment 

Accelerate Time to Value for IoT-Driven Digital Business

IoT实例

Alleantia for Cisco IOx

Cisco IOx Components

激活Cisco IOx

配置Guestshell

Guestshell网络

进入GuestShell

测试GuestShell网络

GuestShell基本操作

6.2 CLI Python Modulen

模块介绍                                 configure VS configurep

execute vs executep                         cli vs clip

安装第三方模块                           使用rz传文件到guestshell

测试脚本

6.3 EEM Python Module

Python Scripting in EEM

Python Policy

6.4 EEM Python Module

下载相关代码Guestshell                     自动打开接口

测试自动打开接口                          追踪SLA状态

测试

6.5 I0x容器实战

一个最简单的Bottle WEB服务器             Index.html模板

Dockerfile                                 Package.yaml                 

Docker环境构建镜像                        ioxclient执行权限

初始化ioxclient                             Ioxclient再封装到iox支持的package

配置app-hosting                            上传镜像到乾颐堂内部FTP

下载镜像到路由器flash                      Install镜像

Activate镜像                               Start镜像

外部测试WEB服务

7. Beautiful Soup模块与爬虫基础

7.1 Beautiful Soup 4

Beautiful Soup简介                          Beautiful Soup4.2中文官网

提前安装三个模块                          获取网页的BeautifulSoup

读取认证用头部代码                        复制头部内容到文本文档http_header.txt

关于解析器                             找到特定类型的Tag(第一个符合要求)      提取Tag的属性或文本                       Findall根据tag名                          

Findall根据属性                             Findall搜索特定文本内容

Findall限制输出数量                         所有直接子节点contents

所有子孙节点descendants                    换一个思路,找到所有产品ID

换一个思路,找到所有大图                  换一个思路,找到所有缩图

换一个思路,找到所有价格                  找到父标签

7.2 爬虫基础

7.2.1 爬虫基础(爬取网页中的GPS信息)

爬取网页图片中的GPS信息1找到图片URL

爬取网页图片中的GPS信息2下载图片

爬取网页图片中的GPS信息3发现图片的GPS信息

爬取网页图片中的GPS信息4汇总代码

7.2.1 爬虫基础(爬取腾讯课堂课程信息)

爬取腾讯课堂课程信息1得到最后一页

爬取腾讯课堂课程信息2爬取每一页课程信息

爬取腾讯课堂课程信息3最终

破解字体格式(找到字体的css)

破解字体格式(获取css)

破解字体格式(对css进行格式化)

破解字体格式(找到字体格式)

破解字体格式(找到映射关系)

破解字体格式(转换的方法)

 

 

 

 

第五部分: 开源自动化软件

 

0. 环境介绍

拓扑

设备与配置(ASA)

设备与配置(CSR1

设备与配置(CSR2,)

1. 配置管理(自动化框架)

1.1 Ansible

1.1.1. Ansible简介

简介

Ansible工作原理

Ansible丰富的网络相关模块

1.1.2 Ansible安装

安装

查看Ansible版本

1.1.3 环境配置

Ansible重要文件                        实验环境讲解

路由器预配置                          ASA预配置

解决SSH Known host key问题           配置Hosts

SSH相关参数                          Ping模块测试

1.1.4 Playbook(剧本)

Playbook简介                         YAML简介

最简单剧本                          运行最简单剧本

1.1.5 Ansible实现批量配置

邮件登陆信息的YAML文件

设备配置信息的YAML文件

Playbook YAML(1:设备与基本信息导入)

Playbook YAML(2:配置IP地址)

Playbook YAML(3:打开接口)

Playbook YAML(4:配置router-id)

Playbook YAML(5:配置OSPF网络与存盘)

Playbook YAML(6:设备与基本信息导入)

Playbook YAML(7:配置ASA接口)

Playbook YAML(8:配置默认路由和NAT 

Playbook YAML(9:配置ACL与存盘)

运行playbook

Final_1_mass_config.yaml

Customer_config.yaml

关于备份配置

1.1.6 Ansible检查配置变更

修改备份的文件名                            Mail_creds YMAL

Playbook YAML(不支持检查ASA配置一致性)     测试 Playbook(未修改)

测试 Playbook(修改配置)                    查看邮件

1.1.7 Python对YAML的操作

Python对YAML的操作测试

修改后YAML

1.2 Nornir

1.2.1 Vault

Vault简介                                    Vault安装

初始化证书(下载安装cfssl)                  初始化证书(CA根证书配置文件)

初始化证书(初始化CA)                     初始化证书(证书模板)

初始化证书(Vault证书请求)                 初始化证书(签发证书)

启动服务器(创建目录,配置创建配置文件)    启动服务器(启动服务器)

初始化(设置环境变量)                      初始化(初始化数据库)

初始化(unseal数据库)                       基本操作[测试,上课不作操作]

权限控制(设置环境变量[root]                权限控制(创建secret engine)

权限控制(写入Nornir需要的kv)              权限控制(创建控制策略)

权限控制(创建令牌)                        权限控制(调整令牌[受控]

权限控制(测试读取)                        权限控制(拒绝写入)

权限控制(调整令牌[root](确保后续操作)) 

   

1.2.Vault Python 代码

安装相关Python模块                          初始化client

创建与读取Secret测试                        测试未来Nornir需要用到的代码

 

1.2.3 Nornir简介               

Nornir简介                                  配置文件

Defaults.yaml                                Groups.yaml

Hosts.yaml                                  打印Host.schema()

 

1.2.4 Nornir Inventory

Inventory查询

过滤技术

 

1.2.5 Nornir Task

最简单Task Hello_world                     进阶Task传参数

进阶Task多任务                           尝试主动抛出异常 

设置任务的日志几倍                        设置print_result的日志打印级别

提取每一步的任务执行结果

 

1.2.6 Nornir 最终任务

加载配置文件,过滤设备                    Vault读取敏感账户信息,更新host

执行show ip interface brief                   配置路由器

Interface模板                               配置路由器print_result结果(CSR1

配置防火墙                                配置ASA print_result结果

最终测试

2. 指标监控(CPU,MEM

2.1 指标监控( telegraf + InfluxDB + Grafana )

2.1.1 InfluxDB

InfluxDB简介                             InfluxDB三大特点

InfluxDB Python操作                       Telgraf InfluxDB

 

2.1.2 Telgraf配置

Docker-compose.yml(influxdb)                Docker-compose.yml(telgraf)

Telgraf OUTPUT配置                       Telgraf INPUT SNMP IOS-XE配置

Telgraf INPUT SNMP ASA配置               Telgraf INPUT grpc配置

 

2.1.3 docker-compose拉起容器

Telgraf OUTPUT配置

 

2.1.4 查看influxdb数据库

进入influxdb

进入数据库,并查看measurements

查看measurement数据

 

2.1.5 Grafana配置

Grafana                                   登陆Grafana

修改默认密码                             首页

添加数据库                               导入模板

模板Cisco-IOS-XE SNMP Monitor           模板 Cisco ASA SNMP Monitor

配置 Notification Channels                  配置 Notification Channels钉钉

配置 Notification Channels邮件              Grafana.ini中的邮件设置

Grafana.ini中的root_url设置                配置alert

告警效果

 

2.1.6 grpc

gRPC                                   gRPC vs SNMP

整体示意图                             找到YANG

测试YANG                              路由器配置

路由器配置分析                         查看telnmetry订阅者状态

模板CiscO-lOS-XE gRPC Monitor

3. 日志分析

3.1 Elasticsearch Kibana Filebeat简介        ELASTICSEARCH +KIBANA

Elasticsearch              Kibana          数据采集

3.2 容器快速部署

Docker-compose.yaml分析                  Cisco.yml分析

Filebeat.yml分析                           Docker-compose拉起容器

测试elasticsearch                           登陆Kibana首页

查看Index

 

3.3 Apache filebeat安装

Apache filebeat安装MD文件                下载并安装签名公钥

创建repo文件                            安装filebeat

激活apache模块                          修改配置文件

激活,启动并查看filebeat服务              查看apache的索引

 

3.4 创建索引

创建索引(ASA                         创建索引(Apache)

查询创建的索引

 

3.5 Discover

Discovery(选择Index Pattern)              控制显示时间

控制显示字段                             过滤

手工过滤条件

 

3.6 可视化

饼状图

数据表

创建Dashboard

4. Netflow流量分析

Docker-Compose文件 重点介绍              Netflow版本比较

Netflow配置                               访问Kibana

导入索引                                  导入Dashboard

ElashtiFlow:Overview

ElashtiFlow:Flows(client/server)

ElashtiFlow:Flow Records(client/server)

ElashtiFlow:Top Talkers

第六部分 Python搭建网络监控/自动化运维环境

6.1 环境与拓扑介绍

拓扑介绍                                  EVE登陆

打开实验                                  开机

SecureCRT对设备进行管理                   设备预配

6.2 架构设计

架构设计

数据库关联

6.3 添加,编辑与查看设备

6.3.1 添加设备                              Forms DeviceForm

Views qyt_add_devices.py                      注意细节

Templates add_devices.html

 

6.3.2 编辑设备

Forms EditDeviceForm

Views qyt_edit_device.py

Templates edit_device.html

 

6.3.3 查看设备

探测设备可达性后台程序                    怎么确认可达性

SSH确认可达性                            SNMP确认可达性

views qyt_show_devices.py                   templates show_devices.html

注意细节

6.4 利用率监控

获取利用率后台调度程序                   qyt_devnet_2_devices_status.py

qyt_devnet_3_interfaces_utilization.py

 

6.4.1 CPU利用率

CPU利用率监控views                        获取CPU利用率和时间

传递数据到JS绘图                          关于设备选择卡

 

6.4.2 接口速率

接口速率监控views                         获取接口速率和时间

获取接口速率和时间计算方案                设备选择卡,杰阔和方向

传递数据到JS绘图

6.5 设备配置备份

备份配置后台调度程序                     qyt_devnet_5_get_config_md5.py

ASA备份配置细节分析                     展示设备备份表单

配置查看               配置比较          配置下载

6.6 Netflow协议分析

手机到信息写入数据库                  Netflow收集器当做服务运行

协议解析用字典                        协议分布Top5

未来Netflow这块的改进意见

6.7 日志系统ELK集成

Logstash日志收集器当做服务运行

获取嵌入iframe

嵌入代码到HTML页面

5.8 自动化剧本

人工vsPython自动化

qyt_playbook.py

6.9 系统设置物

数据库老化时间                          按照数据库老化时间清楚数据(周期一小时)

监控周期                                后去监控周期内的数据

监控空阈值与邮件通知                    如何使用监控阈值与抑制周期

Netflow相关设置                         设置Netflo相关参数

设备类型查询                            遵循所有数据都应该源于数据库的原则

暂时只能在后台编辑                      收集数据的时候使用数据库内的OID

添加设备的时候使用数据库内的设备类型名称

6.10 拓扑自动构建

Top.py       

Draw_map.js

Top_map.html

 

 

第六部分:自动化运维系统目录

 

1环境与拓扑介绍

2架构设计

3添加,编辑与查看设备

4利用率监控

5设备配置备份

6Netflow协议分析

7日志系统 ELK集成

8自动化剧本

9系统设置

10拓扑自动构建

姓名:
Q Q:
电话:
全国统一客服电话:
400-618-8070
扫一扫立即关注
乾颐堂微信公众号
© 2013-2021 乾颐堂网络实验室 版权所有:上海乾韵信息科技有限公司 京ICP备14044984号-2 备案查询地址:http://www.beian.miit.gov.cn/