可编程网络自动化
Jason Edelman, Scott S. Lowe, Matt Oswalt
门佳, 李巧君 译
出版时间:2023年01月
页数:456
“Jason、Scott和Matt在对网络工程师进行网络自动化和Linux网络教育方面做出了重要贡献。他们广泛讨论了自动化的重要性、自动化对于网络工程师的影响以及网络设备的自动化机制。”
——Kirk Byers
Python库netmiko的作者

与系统管理员一样,网络工程师如今也发现无法再手动完成所有工作。随着网络行业迎来新协议、新技术、新交付模型,企业对敏捷性和灵活性的需求愈加迫切,网络自动化也随之变得至关重要。本书向网络工程师展示了如何使用包括Linux、Python、JSON和XML在内的一系列工具,通过代码实现网络自动化。
网络自动化的核心是简化与网络设备、网络拓扑、网络服务和网络连通性的配置、管理、操作相关的任务。通过学习本书,你将掌握完成这一关键转变所需的基本技能和工具。

本书包含以下内容:
● Python基础知识:数据类型、条件逻辑、循环、函数、类、模块
● 网络自动化涉及的Linux基础知识
● 数据格式与数据模型:YAML、XML、JSON、YANG
● 网络配置模板,如Jinja模板
● 使用网络API实现网络自动化
● 在自动化过程中使用Git控制源代码
● 使用Ansible、Salt、StackStorm等自动化工具
● 关键的持续集成工具和技术
  1. 本书赞誉
  2. 前言
  3. 第1章 网络行业发展趋势
  4. 1.1 SDN的兴起
  5. 1.1.1 OpenFlow
  6. 1.1.2 什么是软件定义网络
  7. 1.2 小结
  8. 第2章 网络自动化
  9. 2.1 为什么要实现网络自动化
  10. 2.1.1 简化架构
  11. 2.1.2 确定性结果
  12. 2.1.3 业务敏捷性
  13. 2.2 网络自动化的类型
  14. 2.2.1 设备配给
  15. 2.2.2 数据采集
  16. 2.2.3 迁移
  17. 2.2.4 配置管理
  18. 2.2.5 合规性
  19. 2.2.6 报告
  20. 2.2.7 故障排除
  21. 2.3 管理平面从SNMP向设备API的演变
  22. 2.3.1 应用程序接口(API)
  23. 2.3.2 开放网络运动的影响
  24. 2.4 SDN时代的网络自动化
  25. 2.5 小结
  26. 第3章 Linux
  27. 3.1 网络自动化场景中的Linux
  28. 3.2 Linux简史
  29. 3.3 Linux发行版
  30. 3.3.1 Red Hat Enterprise Linux、Fedora和CentOS
  31. 3.3.2 Debian、Ubuntu和其他衍生版
  32. 3.3.3 其他Linux发行版
  33. 3.4 Linux交互
  34. 3.4.1 文件系统导航
  35. 3.4.2 操作文件和目录
  36. 3.4.3 运行程序
  37. 3.4.4 守护进程
  38. 3.5 Linux联网
  39. 3.5.1 使用接口
  40. 3.5.2 作为端主机的路由
  41. 3.5.3 作为路由器的路由
  42. 3.5.4 桥接(交换)
  43. 3.6 小结
  44. 第4章 在网络场景中学习Python
  45. 4.1 网络工程师是否应该学习代码
  46. 4.2 使用Python交互式解释器
  47. 4.3 理解Python数据类型
  48. 4.3.1 学习使用字符串
  49. 4.3.2 学习使用数字
  50. 4.3.3 学习使用布尔值
  51. 4.3.4 学习使用Python列表
  52. 4.3.5 学习使用Python字典
  53. 4.3.6 学习Python集合与元组
  54. 4.4 向代码中添加条件逻辑
  55. 4.5 理解容纳
  56. 4.6 在Python中使用循环
  57. 4.6.1 理解while循环
  58. 4.6.2 理解for循环
  59. 4.7 使用Python函数
  60. 4.8 处理文件
  61. 4.8.1 读取文件
  62. 4.8.2 写入文件
  63. 4.9 创建Python程序
  64. 4.9.1 创建一个基本的Python脚本
  65. 4.9.2 理解shebang
  66. 4.9.3 将代码从Python解释器迁移到Python脚本
  67. 4.10 使用Python模块
  68. 4.11 传入Python脚本参数
  69. 4.12 使用pip与安装Python包
  70. 4.13 使用Python时的其他一些提示、技巧和一般信息
  71. 4.14 小结
  72. 第5章 数据格式与数据模型
  73. 5.1 数据格式简介
  74. 5.2 YAML
  75. 5.2.1 YAML基础
  76. 5.2.2 在Python中使用YAML
  77. 5.2.3 YAML的数据模型
  78. 5.3 XML
  79. 5.3.1 XML基础
  80. 5.3.2 将XML模式定义用于数据模型
  81. 5.3.3 使用XSLT转换XML
  82. 5.3.4 使用XQuery搜索XML
  83. 5.4 JSON
  84. 5.4.1 JSON基础
  85. 5.4.2 在Python中使用JSON
  86. 5.4.3 使用JSON模式描述数据模型
  87. 5.5 使用YANG描述数据模型
  88. 5.5.1 YANG概述
  89. 5.5.2 深入YANG
  90. 5.6 小结
  91. 第6章 网络配置模板
  92. 6.1 现代模板语言的兴起
  93. 6.1.1 使用模板进行Web开发
  94. 6.1.2 拓展模板应用
  95. 6.2 模板在网络自动化中所体现的价值
  96. 6.3 使用Jinja生成网络配置模板
  97. 6.3.1 为什么是Jinja
  98. 6.3.2 在基本Jinja模板中动态插入数据
  99. 6.3.3 在Python中渲染Jinja模板
  100. 6.3.4 条件与循环
  101. 6.3.5 Jinja过滤器
  102. 6.3.6 Jinja模板继承
  103. 6.3.7 在Jinja中创建变量
  104. 6.4 小结
  105. 第7章 使用网络API
  106. 7.1 理解网络API
  107. 7.1.1 熟悉基于HTTP的API
  108. 7.1.2 深入NETCONF
  109. 7.2 探究网络API
  110. 7.2.1 探究基于HTTP的API
  111. 7.2.2 探究NETCONF
  112. 7.3 使用网络API实现自动化
  113. 7.3.1 使用requests库
  114. 7.3.2 使用Python ncclient库
  115. 7.3.3 使用netmiko
  116. 7.4 小结
  117. 第8章 使用Git控制源代码
  118. 8.1 源代码控制用例
  119. 8.2 源代码控制的好处
  120. 8.2.1 跟踪变更
  121. 8.2.2 可审计性
  122. 8.2.3 流程和工作流
  123. 8.3 源代码控制对网络的好处
  124. 8.4 Git
  125. 8.4.1 Git简史
  126. 8.4.2 Git术语
  127. 8.4.3 Git架构概述
  128. 8.5 使用Git
  129. 8.5.1 安装Git
  130. 8.5.2 创建仓库
  131. 8.5.3 向仓库中添加文件
  132. 8.5.4 向仓库提交变更
  133. 8.5.5 变更并提交已跟踪的文件
  134. 8.5.6 撤销暂存
  135. 8.5.7 从仓库中排除文件
  136. 8.5.8 查看仓库的更多信息
  137. 8.5.9 找出文件不同版本之间的差异
  138. 8.6 Git分支
  139. 8.6.1 创建分支
  140. 8.6.2 检出分支
  141. 8.6.3 合并分支和删除分支
  142. 8.7 使用Git进行协作
  143. 8.7.1 在运行Git的多个系统之间协作
  144. 8.7.2 使用基于Git的在线服务进行协作
  145. 8.8 小结
  146. 第9章 自动化工具
  147. 9.1 回顾自动化工具
  148. 9.2 使用Ansible
  149. 9.2.1 理解Ansible的工作原理
  150. 9.2.2 构建清单文件
  151. 9.2.3 执行Ansible剧本
  152. 9.2.4 使用变量文件
  153. 9.2.5 编写用于实现网络自动化的Ansible剧本
  154. 9.2.6 使用第三方Ansible模块
  155. 9.2.7 Ansible小结
  156. 9.3 使用Salt实现自动化
  157. 9.3.1 理解Salt架构
  158. 9.3.2 熟悉Salt
  159. 9.3.3 使用Salt管理网络配置
  160. 9.3.4 远程执行Salt函数
  161. 9.3.5 深入Salt的事件驱动基础设施
  162. 9.3.6 进一步深入Salt
  163. 9.3.7 Salt小结
  164. 9.4 使用StackStorm实现事件驱动网络自动化
  165. 9.4.1 StackStorm概念
  166. 9.4.2 StackStorm架构
  167. 9.4.3 动作和工作流
  168. 9.4.4 传感器和触发器
  169. 9.4.5 规则
  170. 9.4.6 StackStorm小结
  171. 9.5 小结
  172. 第10章 持续集成
  173. 10.1 重要的先决条件
  174. 10.1.1 越简单越好
  175. 10.1.2 人、流程和技术
  176. 10.1.3 学习编写代码
  177. 10.2 CI简介
  178. 10.2.1 CI基础
  179. 10.2.2 持续交付
  180. 10.2.3 测试驱动开发
  181. 10.2.4 为什么要对网络进行CI
  182. 10.3 用于网络的CI管道
  183. 10.3.1 同行评审
  184. 10.3.2 构建自动化
  185. 10.3.3 测试/开发/类生产环境
  186. 10.3.4 部署工具
  187. 10.3.5 测试工具和测试驱动的网络自动化
  188. 10.4 小结
  189. 第11章 打造网络自动化文化
  190. 11.1 组织策略和灵活性
  191. 11.1.1 改造旧日组织
  192. 11.1.2 获得管理层认同的重要性
  193. 11.1.3 构建与购买
  194. 11.2 拥抱失败
  195. 11.3 技能和教育
  196. 11.3.1 探索未知
  197. 11.3.2 注重基础
  198. 11.3.3 认证
  199. 11.3.4 自动化不会抢走我的饭碗吗
  200. 11.4 小结
  201. 附录A Linux高级联网
  202. 附录B 使用NAPALM
书名:可编程网络自动化
译者:门佳, 李巧君 译
国内出版社:人民邮电出版社
出版时间:2023年01月
页数:456
书号:978-7-115-60618-1
原版书书名:Network Programmability and Automation
原版书出版商:O'Reilly Media
Jason Edelman
 
Jason Edelman,网络工程师,持有CCIE认证和VCDX-NV认证,典型的“CLI爱好者”和“路由器玩家”。几年前,他决定更多地关注软件、开发实践以及如何与网络工程融合。贾森目前经营着一家精品咨询公司Network to Code,帮助厂商和用户利用新的工具和技术提高工作效率。贾森拥有新泽西州史蒂文斯理工学院(StevensInstitute of Technology)的工程学士学位,目前居住在纽约市。贾森还定期在他的个人博客上发表文章。
 
 
Scott S. Lowe
 
Scott S. Lowe,VMware公司的工程架构师,在从事计算虚拟化工作多年后投身于云计算和网络虚拟化。斯科特撰写了多本关于vSphere和OpenStack的技术图书,还在个人博客上定期分享技术内容。他与妻子和7个孩子中最小的两个住在美国科罗拉多州丹佛市。
 
 
Matt Oswalt
 
Matt Oswalt,Cloudflare公司的软件工程师,致力于解决软件开发和网络基础设施交叉领域的技术和非技术难题,同时讲授与Docker和可编程网络自动化相关的在线课程。他最开心的时候是坐在键盘前,手边放着冲泡壶,或是运用手中的工具,消除阻塞信息流通的障碍。
 
 
本书封面上的动物是长吻鳄(Gavialis gangeticus)。这种爬行动物可以在两个国家/ 地区找到:印度的昌巴尔河(Chambal)、吉尔瓦河(Girwa)和桑河(Son River)沿岸;尼泊尔的那纳雅尼河(Narayani River)沿岸。长吻鳄得名自其雄性鼻子上生长的组织结,叫作ghara,意为印度语中的“壶”。
长吻鳄因其细长的鼻子和狭窄而锋利的牙齿,很容易与其他鳄鱼区分开。它主要以小鱼和甲壳类为食。它会将鱼群赶到岸边,然后用水下的颚拍击以把它们打昏。它不咀嚼猎物,而是将其囫囵吞下。该物种极少攻击人类,但是长有110颗交错的指状牙齿,你可别靠得太近。
长吻鳄身长4~6米。颜色范围从橄榄绿色到棕灰色,腹部颜色较浅。经过8~12年发育到达成熟期。雄性在求偶时会用自己的ghara发出声音并吹泡泡。雌性在沙堤上筑巢,一直守护着卵83~94天,然后照顾幼体数月。
长吻鳄喜欢栖息在河水清澈、水流湍急的高岸河流和深潭。自20 世纪中叶以来,由于传统药物的猎杀和淡水栖息地的急剧变化,长吻鳄的数量已经下降了98%。
O’Reilly图书封面上的许多动物濒临灭绝,它们对世界很重要。如果想了解如何保护动物,请访问animals.oreilly.com。
购买选项
定价:139.80元
书号:978-7-115-60618-1
出版社:人民邮电出版社