计算机
类型
可以朗读
语音朗读
443千字
字数
2023-01-01
发行日期
展开全部
主编推荐语
本书教授编程网络自动化技能,涵盖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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。