-
内容大纲
本书提供了可编程网络自动化的基本技能,使用了包括Linux、Python、JSON和XML在内的一系列技术。本书涵盖以下内容:Python编程基础、网络自动化所需的Linux基础、数据格式和数据模型,并介绍了Jinja模板及其在创建网络设备配置中的适用性、应用程序接口在网络自动化中的作用、使用Git进行源代码管理以在自动化过程中管理代码更改,等等。
本书适合网络工程师(特别是SDN经验较少的网络工程师)、系统管理员和软件工程师阅读。 -
作者介绍
-
目录
本书赞誉
前言
第1章 网络行业发展趋势
1.1 SDN的兴起
1.1.1 OpenFlow
1.1.2 什么是软件定义网络
1.2 小结
第2章 网络自动化
2.1 为什么要实现网络自动化
2.1.1 简化架构
2.1.2 确定性结果
2.1.3 业务敏捷性
2.2 网络自动化的类型
2.2.1 设备配给
2.2.2 数据采集
2.2.3 迁移
2.2.4 配置管理
2.2.5 合规性
2.2.6 报告
2.2.7 故障排除
2.3 管理平面从SNMP向设备API的演变
2.3.1 应用程序接口(API)
2.3.2 开放网络运动的影响
2.4 SDN时代的网络自动化
2.5 小结
第3章 Linux
3.1 网络自动化场景中的Linux
3.2 Linux简史
3.3 Linux发行版
3.3.1 Red Hat Enterprise Linux、Fedora和CentOS
3.3.2 Debian、Ubuntu和其他衍生版
3.3.3 其他Linux发行版
3.4 Linux交互
3.4.1 文件系统导航
3.4.2 操作文件和目录
3.4.3 运行程序
3.4.4 守护进程
3.5 Linux联网
3.5.1 使用接口
3.5.2 作为端主机的路由
3.5.3 作为路由器的路由
3.5.4 桥接(交换)
3.6 小结
第4章 在网络场景中学习Python
4.1 网络工程师是否应该学习代码
4.2 使用Python交互式解释器
4.3 理解Python数据类型
4.3.1 学习使用字符串
4.3.2 学习使用数字
4.3.3 学习使用布尔值
4.3.4 学习使用Python列表
4.3.5 学习使用Python字典
4.3.6 学习Python集合与元组
4.4 向代码中添加条件逻辑
4.5 理解容纳
4.6 在Python中使用循环
4.6.1 理解while循环
4.6.2 理解for循环
4.7 使用Python函数
4.8 处理文件
4.8.1 读取文件
4.8.2 写入文件
4.9 创建Python程序
4.9.1 创建一个基本的Python脚本
4.9.2 理解shebang
4.9.3 将代码从Python解释器迁移到Python脚本
4.10 使用Python模块
4.11 传入Python脚本参数
4.12 使用pip与安装Python包
4.13 使用Python时的其他一些提示、技巧和一般信息
4.14 小结
第5章 数据格式与数据模型
5.1 数据格式简介
5.2 YAML
5.2.1 YAML基础
5.2.2 在Python中使用YAML
5.2.3 YAML的数据模型
5.3 XML
5.3.1 XML基础
5.3.2 将XML模式定义用于数据模型
5.3.3 使用XSLT转换XML
5.3.4 使用XQuery搜索XML
5.4 JSON
5.4.1 JSON基础
5.4.2 在Python中使用JSON
5.4.3 使用JSON模式描述数据模型
5.5 使用YANG描述数据模型
5.5.1 YANG概述
5.5.2 深入YANG
5.6 小结
第6章 网络配置模板
6.1 现代模板语言的兴起
6.1.1 使用模板进行Web开发
6.1.2 拓展模板应用
6.2 模板在网络自动化中所体现的价值
6.3 使用Jinja生成网络配置模板
6.3.1 为什么是Jinja
6.3.2 在基本Jinja模板中动态插入数据
6.3.3 在Python中渲染Jinja模板
6.3.4 条件与循环
6.3.5 Jinja过滤器
6.3.6 Jinja模板继承
6.3.7 在Jinja中创建变量
6.4 小结
第7章 使用网络API
7.1 理解网络API
7.1.1 熟悉基于HTTP的API
7.1.2 深入NETCONF
7.2 探究网络API
7.2.1 探究基于HTTP的API
7.2.2 探究NETCONF
7.3 使用网络API实现自动化
7.3.1 使用requests库
7.3.2 使用Python ncclient库
7.3.3 使用netmiko
7.4 小结
第8章 使用Git控制源代码
8.1 源代码控制用例
8.2 源代码控制的好处
8.2.1 跟踪变更
8.2.2 可审计性
8.2.3 流程和工作流
8.3 源代码控制对网络的好处
8.4 Git
8.4.1 Git简史
8.4.2 Git术语
8.4.3 Git架构概述
8.5 使用Git
8.5.1 安装Git
8.5.2 创建仓库
8.5.3 向仓库中添加文件
8.5.4 向仓库提交变更
8.5.5 变更并提交已跟踪的文件
8.5.6 撤销暂存
8.5.7 从仓库中排除文件
8.5.8 查看仓库的更多信息
8.5.9 找出文件不同版本之间的差异
8.6 Git分支
8.6.1 创建分支
8.6.2 检出分支
8.6.3 合并分支和删除分支
8.7 使用Git进行协作
8.7.1 在运行Git的多个系统之间协作
8.7.2 使用基于Git的在线服务进行协作
8.8 小结
第9章 自动化工具
9.1 回顾自动化工具
9.2 使用Ansible
9.2.1 理解Ansible的工作原理
9.2.2 构建清单文件
9.2.3 执行Ansible剧本
9.2.4 使用变量文件
9.2.5 编写用于实现网络自动化的Ansible剧本
9.2.6 使用第三方Ansible模块
9.2.7 Ansible小结
9.3 使用Salt实现自动化
9.3.1 理解Salt架构
9.3.2 熟悉Salt
9.3.3 使用Salt管理网络配置
9.3.4 远程执行Salt函数
9.3.5 深入Salt的事件驱动基础设施
9.3.6 进一步深入Salt
9.3.7 Salt小结
9.4 使用StackStorm实现事件驱动网络自动化
9.4.1 StackStorm概念
9.4.2 StackStorm架构
9.4.3 动作和工作流
9.4.4 传感器和触发器
9.4.5 规则
9.4.6 StackStorm小结
9.5 小结
第10章 持续集成
10.1 重要的先决条件
10.1.1 越简单越好
10.1.2 人、流程和技术
10.1.3 学习编写代码
10.2 CI简介
10.2.1 CI基础
10.2.2 持续交付
10.2.3 测试驱动开发
10.2.4 为什么要对网络进行CI
10.3 用于网络的CI管道
10.3.1 同行评审
10.3.2 构建自动化
10.3.3 测试/开发/类生产环境
10.3.4 部署工具
10.3.5 测试工具和测试驱动的网络自动化
10.4 小结
第11章 打造网络自动化文化
11.1 组织策略和灵活性
11.1.1 改造旧日组织
11.1.2 获得管理层认同的重要性
11.1.3 构建与购买
11.2 拥抱失败
11.3 技能和教育
11.3.1 探索未知
11.3.2 注重基础
11.3.3 认证
11.3.4 自动化不会抢走我的饭碗吗
11.4 小结
附录A Linux高级联网
附录B 使用NAPALM
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...