Python课程介绍
循环开班 随到随学
l 课程介绍
知识模块 | 课时 | 作业 | |
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课时
l 讲师介绍
现任明教教主-- -秦柯 CCIE#13778
•毕业于:北京理工大学
•曾就职于重庆电信
•思科安全,PYTHON授课讲师
• 二十多年授课及解题经验
•中国银行,重庆电信,中国移动,北京银行,思科社区等企业的专业培训
•深入开发研究了200多门网络课程,共享的视频多达100多门,至今无人超越
•亲手带过安全CCIE 1193人,DC CCIE137人
•率先创办了DC CCIE实验室,亚洲PASS DC
CCIE第一人
•逻辑思维能力强,所有课程自主研发,上课风格幽默诙谐,深受好评,与人民邮电出版社出版了行业内第一本《CISCO IPSEC VPN实战指南》。
l 课程详情
第一部分:
1、Python语言介绍
TIOBE Index for October 2021 Python应用领域
Python哲学 语言类型
FTP代码实例 Python其他优点
2、Python环境安装
2.1Windows下安装Python3、pip
安装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.0的Print函数 Print基本操作
Print的sep选项 Print的end选项
Print的file选项 Print的字符串工具
stdout
9、Python语句和语法if语句
if语句简介 if语句通用格式
if语句简单示例 逻辑与或非,三元选择表达式
比较运算 Python语法规则
通过缩进来决定块 If/else三元表达式
课堂练习
10、Python语句和语法 while和for循环
While循环一般格式 While循环例子
Break,cotinue,pass和循环else Pass就是什么也不干
Continue跳过这个执行下一个循环 Break跳出整个循环
课堂练习 for循环一般格式
for循环例子 课堂练习
11、Python函数
函数是什么? 不使用模块和函数造成大量代码冗余
模块和函数对代码的优化 程序,模块和函数流程图解
函数相关的语句和表达式 def语句格式
def第一个例子 def第二个例子
全局变量与函数本地变量 修改全局变量
产生全局变量 函数参数匹配表
参数示例 函数控制输入输出类型
安装kamene 课堂练习
安装paramiko 课堂练习
12、Python模块
为什么使用模块 Python程序架构
模块搜索路径 sys.path
创建模块 创建第一模块
模块的使用(import) 测试
模块的使用(from) 测试
模块的使用(from *) 测试
导入变量案例 测试
目录+__init__.py 多层导入
模块reload If __name__== ‘__main__’
测试If __name__== ‘__main__’ 装饰器
装饰器实例 课堂练习
程序的两种设计思路 面向过程(逻辑导图)
面向过程(设备轮询) 类是怎么工作的?
类的特点 初始化类——添加属性
添加行为——添加数据的处理逻辑 添加继承
多态 封装——修改方法之前
封装——修改方法之后 重构代码:增强方法
等价的操作 重构代码:格式化显示
重构代码:自定义构造函数 最终代码
测试最终代码 课堂练习
其他系统模块 sys与os
1.平台与版本
测试平台的小作业
2.模块搜索路径
添加路径搜索小作业
3.已加载的模块表
4.提取命令行参数
对ping脚本的优化
5.其他sys模块工具
os模块介绍 常用os模块工具
查看模块属性(os)
查看模块属性(os.path)
1.管理工具
2.可移植的常量
3.os.path工具
4.在脚本里运行Shell命令
os.system
os.popen
subprocess
5.os模块导出的其他工具
datetime模块介绍 datetime.datetime——获取当前时间
strftime——指定格式输出 datetime——格式化参数
datetime.datetime——获取三天前的时间 datetime.datetime——获取今天的日期
datetime.datetime——获取10天前的日期 datetime.datetime——获取10天后的日期
datetime——获取指定部分的时间 datetime对象与string互传
切换时区 课堂练习
argparse模块简
argparse简单流程——第一步:创建ArgumentParser对象
argparse简单流程——第二步:添加Usage
argparse简单流程——第三步:optional arguments
argparse简单流程——第四步:positional arguments
argparse简单流程——第五步:调用parse_args()解析命令行
完整代码 代码分析
测试 课堂练习
Pyinstaller制作exe
Pickle技术介绍 用pickle存储Python原生对象
更新pickle文件中的对象
使用shelves 产生shelves数据库
读取并打印shelves数据库 测试shelves数据库
更新shelves数据库
SQLite简介 交互界面测试SQLite
DB Browser DB Browser测试SQL语句
SQLite代码
XML可多站标记语言简介 HTML vs XML
HTML来表示一个会议 XML来表示一个会议
一个XML的实例 分析XML代码
代码图解分析 分析XML结果
Xmltodict(推荐) 手动构建XML代码
代码图解分析 自动构建XML代码
推荐构建方案jinjia2模板替换
问什么现在网络设备都启用API JSON简介
JSON中数据存在的形式:string JSON中数据存在的形式:number
JSON中数据存在的形式:object JSON中数据存在的形式:array
JSON文件内容示例 Python对象写入为JSON文件
Python对象转换为JSON格式字符串
怎么利用Base64传输数据 二进制对象与base64互转
代码 比较
进程与线程的比喻 GIL
执行任务模块 简单实例
测试多进程 Python协程的问题
协程 协程SSH
协程SSH测试 课堂练习
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
1、ARP
ARP帧结构 ARP字段介绍
ARP抓包(请求) ARP抓包(回应)
ARP请求代码 ARP请求测试
ARP扫描代码 ARP扫描测试
ARP欺骗代码 ARP欺骗测试
Linux上运行程序 欺骗效果
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回应)
UDP介绍 UDPvsTCP
UDP首部 UDP_Socket_Server
UDP_Socket_Client 测试
Socket类型 Socket函数
公共Socket函数 原始套接字Socket_Raw
Change_IP_To_Bytes Change_MAC_To_Bytes
Checksum Struct模块
UDP介绍 DNS的主要记录
Scapy构造DNS A请求 Scapy构造DNS A回应
推荐使用dns模块进行解析
TFTP介绍 TFTP读操作
TFTP写操作 TFTP服务器代码
TFTP客户端代码
DHCP介绍 DHCP包交换
DHCP包类型 DHCP端口号
WIN抓包分析(DISCOVER) Discover重点参数请求清单
WIN抓包分析(OFFER) WIN抓包分析(Request)
WIN抓包分析(ACK) Python构建DISCOVER
Python产生DISCOVER DOS Python构建Reauest
Python实现DHCP完整过程 Python实现DHCP监控
SNMP三大组建 SNMPv1/v2 Messages
Community的安全问题 SNMP Security Models/Levels
SNMPv3的安全特性
SNMPv2基本配置 OidView创建会话
下载Cisco MIB 加载MIB
读取思科路由器的CPU利用率 读取SNMP Trap
SNMPv3基本配置 OidView创建会话
SNMP统一包格式 第一种:get-reauest
第二种:get-response 第三种:set-request
第四种:get-next-request 第五种:getBulkRequest
第六种:trap 第七种:informRequest
SNMPv2 GET SNMPv2 SET
SNMPv2 GETNEXT SNMPv2 GETBULK
SNMPv2 TRAP SNMPv2 getall
SNMPv3配置 SNMPv3 GET
SNMPv3 SET SNMPv3 GETNEXT
SNMPv3 GETBULK SNMPv3 TRAP
Python数据呈现路线图
解决matplotlib模块,linux环境中乱码问题
读取SNMP写入数据库
数据呈现(线形图)
docker-compose文件 docker-compose拉起容器
运行脚本采集数据,并发送到InfluxDB 登陆Grafana
修改默认密码 添加数据库
加载Dashboard Dashboard详细配置
NTP介绍 NTPLIB
NTP字段介绍 NTP抓包(request)
NTP抓包(response) NTP RAW
为什么要配置Syslog Log Output Destinations
Syslog Severity Levels Syslog Facility
路由器Syslog配置 Syslog抓包
Python收集并分析SYSLOG Python发送SYSLOG
WIN系统教研和问题
把Syslog分词并写入数据库
读取数据库并呈现为饼状图
使用Docker-compose拉起EFK Kibana首页
创建索引 Discover
可视化
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
Telnet简介 Telnet抓包
Wireshark TCP流 关于Telnet的回显
Python Telnet代码 Netmiko
Telnet协程测试
SSH简介 Python SSH代码(单个命令,获取回显)
Python SSH代码(多个命令,执行命令) Python SFTP代码
Textfsm Ntc-templates
Pyats-genie-command-parse
读取Excel数据到字典(Pandas版本)
字典写入Excel(Pandas版本)
最终汇总实战代码(Pandas版本)
比较文本
获取配置,计算MD5,写入数据库
查看配置,并且比较
FTP简介 Active Mode
Passive Mode FTP下载
FTP上传 FTP罗列特定目录文件
查找整个FTP站点(递归查找技术)
SMTP简介 SMTP协议工作原理
NC SMTP发现过程 邮件内容分析
qq邮箱SMTP与POP3设置 SNTP发送附件代码
SMTP发送图文邮件
Word处理
邮件效果
产生一个更加完整的Word的脚本
SMTP发送HTML图文邮件
POP3简介 NC POP3收件过程
POP3收件(完整) Decode代码
代码分析
LDAP简介 Python实现LDAP查询
处理拼音 LDAP连接
get_user_info 其他代码
Netflow原理 Netflow的用途
Netflow的版本 Netflow的组件
Netflow的配置实例 Key与nonkey field的区别
Netflow v9包格式介绍 主程序
Netflow分析程序 Netflow图形呈现代码
ElastiFlow代码 Docker-Compose拉起容器
导入索引 导入Dashboard
索引与Dashboard都已经配置完毕
Dashboard ElashtiFlow:Overview
Dashboard ElashtiFlow:Flows(client/server)
Dashboard ElashtiFlow:Flow Records(vlient/server)
Dashboard ElashtiFlow:top Talkers
Scapy PCAP DoS分析 Scapy PCAP HTTP Host分析
Scapy PCAP查找特定字段数据包 Scapy Reset TCP 流
Scapy 监控Telnet流 Scapy Reset 特定Telnet 流
Pyshark简介 Pyshark.1.基本显示
Pyshark.2.捕获数据 Pyshark.2.过滤与选项
Pyshark4.现象级数据包 Pyshark.5.1.TCP流最大ID
Pyshark.5.2.特定TCP流的数据包 PyShark.6.URL分析
第三部分:Django网页开发
添加新项目 添加SSH解释器
添加项目 添加ALLOWED_HOSTS
北京配置 激活Run Browser
开始项目 小火箭起飞
Bootstrap简介 Bootstrap官网
Starter Template 创建base.html
Navbbar Navbbar代码贴入Body
添加block title 添加block body
创建index.html container
模板继承与替换图解 views.index
url.py 测试主页
Django内部工作原理
上传Logo图片 settings.py定义静态文件目录的路径
base.html 测试logo图片
上传favicon.ico(图标)图片 Base.html中插入图标文件链接
测试图标
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 获取所有
更新条目 删除条目
外键搜索一 外键搜索二
最简单模板: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
创建数据库 外键设计
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 测试删除学员信息
删除学员信息图解
创建新的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间隔系统介绍
Echarts官网
加载教主封装后的JS文件
最简单的静态柱状图
教主封装JS echarts_bar
JavaScript图解
HTML使用JS echarts_compound获取Django数据
构建echarts数据的函数
产生数据返回给前端的JS
测试线性和柱状图,数据源自于Django
什么是AJAX 添加刷新按钮和AJAX获取数据JS
Charts_test_ajax_chart2.py Charts_test下urls.py
测试AJAX属性chart2 AJAX工作原理图示
饼状图1HTML静态数据
测试饼状图
JavaScript图解
饼状图2 Django数据HTML
饼状图2 Django数据view
饼状图2 Django数据测试
饼状图3 ajax数据HTML
饼状图3 ajax数据view
饼状图3 ajax数据urls.py
饼状图3 ajax数据测试
AJAX工作原理图示
终极线形图CPU利用率HTML
终极线形图CPU利用率view仅返回页面
终极线形图CPU利用率base.html
终极线形图CPU利用率urls.py
测试能够看到空框
终极线形图CPU利用率view ajax
代码介绍
终极线形图CPU利用率urls.py ajax
终极线形图CPU利用率测试
JavaScript图解
AJAX工作原理图示
终极线形图接口速率HTML
终极线形图接口速率view仅返回页面
终极线形图接口速率base.html
终极线形图接口速率urls.py
测试能够看见空框
终极线形图接口速率view ajax
终极线形图接口速率urls.py ajax
终极线形图接口速率测试
创建超级用户 把数据库归为后台管理范围
超级用户登陆管理平台 后台可以对用户和数据库表进行管理
添加数据库条目添加学员 添加组
添加用户 用户登陆测试权限
创建组employee 用户employee登陆后台管理
创建UserForm Qyt_login.py
添加登陆登出的URL Login页面参考Bootstrap实例
Login.html Static下放入logo.jpg图片和signin.css
Base.html添加姓名,登陆,登出信息 登陆测试右上角的姓名和登录登出按钮
Login_required() 访问部门摘要和详情就会跳转到登陆页面
查看用户拥有的权限 权限控制
测试权限控制
WSGI 安装uwsgi
测试uWSGIF Web服务 编写uWSGIF配置问题件
安装NGINX 配置NGINX
测试NGINX 配置服务
启动服务 测试
配置主机映射文件(有DNS最佳) 关闭DEBUG,添加ALLOWED_HOSTS
通过域名访问 django Debu-报错消失了
dango-crotab
第四部分:强化班Devnet
Bottle/Flask最基本静态路由(文本)
Bottle最基本静态路由(文本)
Bottle最基本静态路由(HTML)
Bottle动态路由和模板 Flask动态路由和模板
Bottle动态路由和模板(模板) Bottle动态路由和模板(动态路由+模板)
Bottle动态路由和模板(复杂数据) Flask动态路由和模板(复杂数据)
Bottle动态路由和模板(复杂数据) Bottle动态路由和模板(Form)
Flask动态路由和模板(Form) Bottle动态路由和模板(测试)
Bottle动态路由和模板(from.html) Bottle动态路由和模板(from_result.html)
Bottle JSON RPC 服务器 Flack JSON RPC 服务器
Requests post 请求 测试
图解
requests get requests post(服务器新增内容)
requests post(客户端内容) requests post
requests 下载图片
获取headers和Cookies信息 自定义headers
如何后去Chrome浏览器请求的Headers
HTTP Basic认证
状态码与主动抛出异常
异常
https与证书校验
传统配置方案 当前的挑战
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
Token Authentication API DOC
Object
数据结构分析
ASA自动化
YANG Data Modeling YANG XML
NETCONF封装 Model-Driven Programmability on Cisco Devices
YANG Suite官网 YANG Suite DOC
YANG Suite Github 乾颐堂内部Gitlab地址
相对于官方文件的修改 Git项目
产生秘钥 Docker-compose build & up
用户协议 登陆
首页
路由器激活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配置静态路由(代码)
NETCONF自动化 关注一下数据结构(JSON)
关注一下数据结构(数据库) NETCONF监控采集CPU利用率
终极线形图
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项目
路由器激活RESTCONF 按照Postman
找到RESTCONF API的根 Media types
RESTCONF Root Resource 获取版本
创建环回口 YANG Date Modeling
删除环回口 URL案例
获取接口配置 获取特定接口配置
配置接口IP地址 no shutdown 接口
配置OSPF进程ID和Router-ID 配置OSPF网络宣告
获取CPU利用率 获取配置
保存配置 经验总结
RESTCONF代码 RESTCONF自动化
关注一下数据结构(JSON) RESTCONF采集CPU利用率
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基本操作
模块介绍 configure VS configurep
execute vs executep cli vs clip
安装第三方模块 使用rz传文件到guestshell
测试脚本
Python Scripting in EEM
Python Policy
下载相关代码Guestshell 自动打开接口
测试自动打开接口 追踪SLA状态
测试
一个最简单的Bottle WEB服务器 Index.html模板
Dockerfile Package.yaml
Docker环境构建镜像 给ioxclient执行权限
初始化ioxclient Ioxclient再封装到iox支持的package
配置app-hosting 上传镜像到乾颐堂内部FTP
下载镜像到路由器flash Install镜像
Activate镜像 Start镜像
外部测试WEB服务
Beautiful Soup简介 Beautiful Soup4.2中文官网
提前安装三个模块 获取网页的BeautifulSoup
读取认证用头部代码 复制头部内容到文本文档http_header.txt
关于解析器 找到特定类型的Tag(第一个符合要求) 提取Tag的属性或文本 Findall根据tag名
Findall根据属性 Findall搜索特定文本内容
Findall限制输出数量 所有直接子节点contents
所有子孙节点descendants 换一个思路,找到所有产品ID
换一个思路,找到所有大图 换一个思路,找到所有缩图
换一个思路,找到所有价格 找到父标签
爬取网页图片中的GPS信息1找到图片URL
爬取网页图片中的GPS信息2下载图片
爬取网页图片中的GPS信息3发现图片的GPS信息
爬取网页图片中的GPS信息4汇总代码
爬取腾讯课堂课程信息1得到最后一页
爬取腾讯课堂课程信息2爬取每一页课程信息
爬取腾讯课堂课程信息3最终
破解字体格式(找到字体的css)
破解字体格式(获取css)
破解字体格式(对css进行格式化)
破解字体格式(找到字体格式)
破解字体格式(找到映射关系)
破解字体格式(转换的方法)
第五部分: 开源自动化软件
拓扑
设备与配置(ASA)
设备与配置(CSR1)
设备与配置(CSR2,)
简介
Ansible工作原理
Ansible丰富的网络相关模块
安装
查看Ansible版本
Ansible重要文件 实验环境讲解
路由器预配置 ASA预配置
解决SSH Known host key问题 配置Hosts
SSH相关参数 Ping模块测试
Playbook简介 YAML简介
最简单剧本 运行最简单剧本
邮件登陆信息的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
关于备份配置
修改备份的文件名 Mail_creds YMAL
Playbook YAML(不支持检查ASA配置一致性) 测试 Playbook(未修改)
测试 Playbook(修改配置) 查看邮件
Python对YAML的操作测试
修改后YAML
1.2.1 Vault
Vault简介 Vault安装
初始化证书(下载安装cfssl) 初始化证书(CA根证书配置文件)
初始化证书(初始化CA) 初始化证书(证书模板)
初始化证书(Vault证书请求) 初始化证书(签发证书)
启动服务器(创建目录,配置创建配置文件) 启动服务器(启动服务器)
初始化(设置环境变量) 初始化(初始化数据库)
初始化(unseal数据库) 基本操作[测试,上课不作操作]
权限控制(设置环境变量[root]) 权限控制(创建secret engine)
权限控制(写入Nornir需要的kv) 权限控制(创建控制策略)
权限控制(创建令牌) 权限控制(调整令牌[受控])
权限控制(测试读取) 权限控制(拒绝写入)
权限控制(调整令牌[root](确保后续操作))
1.2.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.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.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
Docker-Compose文件 重点介绍 Netflow版本比较
Netflow配置 访问Kibana
导入索引 导入Dashboard
ElashtiFlow:Overview
ElashtiFlow:Flows(client/server)
ElashtiFlow:Flow Records(client/server)
ElashtiFlow:Top Talkers
第六部分 Python搭建网络监控/自动化运维环境
拓扑介绍 EVE登陆
打开实验 开机
SecureCRT对设备进行管理 设备预配
架构设计
数据库关联
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
注意细节
获取利用率后台调度程序 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绘图
备份配置后台调度程序 qyt_devnet_5_get_config_md5.py
ASA备份配置细节分析 展示设备备份表单
配置查看 配置比较 配置下载
手机到信息写入数据库 把Netflow收集器当做服务运行
协议解析用字典 协议分布Top5
未来Netflow这块的改进意见
吧Logstash日志收集器当做服务运行
获取嵌入iframe
嵌入代码到HTML页面
人工vsPython自动化
qyt_playbook.py
数据库老化时间 按照数据库老化时间清楚数据(周期一小时)
监控周期 后去监控周期内的数据
监控空阈值与邮件通知 如何使用监控阈值与抑制周期
Netflow相关设置 设置Netflo相关参数
设备类型查询 遵循所有数据都应该源于数据库的原则
暂时只能在后台编辑 收集数据的时候使用数据库内的OID
添加设备的时候使用数据库内的设备类型名称
Top.py
Draw_map.js
Top_map.html
第六部分:自动化运维系统目录
1、环境与拓扑介绍
2、架构设计
3、添加,编辑与查看设备
4、利用率监控
5、设备配置备份
6、Netflow协议分析
7、日志系统 ELK集成
8、自动化剧本
9、系统设置
10、拓扑自动构建
姓名:
Q Q:
电话:
|