展开全部

主编推荐语

本书教授编程网络自动化技能,涵盖Python、Linux、数据模型等,强调技术细节与软技能。

内容简介

本书提供了可编程网络自动化的基本技能,使用了包括Linux、Python、JSON和XML在内的一系列技术。本书涵盖以下内容:Python编程基础、网络自动化所需的Linux基础、数据格式和数据模型,并介绍了Jinja模板及其在创建网络设备配置中的适用性、应用程序接口在网络自动化中的作用、使用Git进行源代码管理以在自动化过程中管理代码更改,等等。本书为技术细节和“软技能”(比如文化和思维方式)奠定了坚实的基础,涉及的内容广而深。

目录

  • 版权信息
  • O'Reilly Media, Inc.介绍
  • 献词
  • 本书赞誉
  • 前言
  • 第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高级联网
  • A.1 使用macvlan接口
  • A.1.1 macvlan接口用例
  • A.1.2 创建、配置和删除macvlan接口
  • A.2 虚拟机联网
  • A.2.1 使用Linux网桥
  • A.2.2 使用macvtap接口
  • A.3 使用网络名称空间
  • A.3.1 网络名称空间用例
  • A.3.2 创建和删除网络名称空间
  • A.3.3 在网络名称空间中加入接口
  • A.3.4 在网络名称空间中执行命令
  • A.3.5 使用veth pair连接网络名称空间
  • A.4 Linux容器联网
  • A.4.1 配置LXC联网
  • A.4.2 配置Docker联网
  • A.5 使用Open vSwitch
  • A.5.1 安装OVS
  • A.5.2 配置OVS
  • A.5.3 将工作负载连接到OVS
  • 附录B 使用NAPALM
  • B.1 理解NAPALM的配置管理
  • B.1.1 执行配置替换
  • B.1.2 执行配置合并
  • B.2 使用NAPALM检索数据
  • B.3 NAPALM集成
  • B.3.1 在Ansilbe中使用NAPALM
  • B.3.2 在Salt中使用NAPALM
  • B.3.3 在StackStorm中使用NAPALM
  • 关于作者
  • 关于封面
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。