您好,欢迎来到聚文网。 登录 免费注册
可编程网络自动化

可编程网络自动化

  • 字数: 624000
  • 装帧: 平装
  • 出版社: 人民邮电出版社
  • 作者: (美)贾森·埃德尔曼,(美)斯科特·S.洛,(美)马特·奥斯瓦尔特
  • 出版日期: 2023-01-01
  • 商品条码: 9787115606181
  • 版次: 1
  • 开本: 16开
  • 页数: 456
  • 出版年份: 2023
定价:¥139.8 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
与系统管理员一样,网络工程师如今也发现无法再手动完成所有工作。随着网络行业迎来新协议、新技术、新交付模型,企业对敏捷性和灵活性的需求愈加迫切,网络自动化也随之变得至关重要。本书向网络工程师展示了如何使用包括Linux、Python、JSON和XML在内的一系列工具,通过代码实现网络自动化。 网络自动化的核心是简化与网络设备、网络拓扑、网络服务和网络连通性的配置、管理、操作相关的任务。通过学习本书,你将掌握完成这一关键转变所需的基本技能和工具。 本书包含以下内容。 * Python基础知识:数据类型、条件逻辑、循环、函数、类、模块 * 网络自动化涉及的Linux基础知识 * 数据格式与数据模型:YAML、XML、JSON、YANG * 网络配置模板,如Jinja模板 * 使用网络API实现网络自动化 * 在自动化过程中使用Git控制源代码 * 使用Ansible、Salt、StackStorm等自动化工具 * 关键的持续集成工具和技术
内容简介
本书提供了可编程网络自动化的基本技能,使用了包括Linux、Python、JSON和XML在内的一系列技术。本书涵盖以下内容:Python编程基础、网络自动化所需的Linux基础、数据格式和数据模型,并介绍了Jinja模板及其在创建网络设备配置中的适用性、应用程序接口在网络自动化中的作用、使用Git进行源代码管理以在自动化过程中管理代码更改,等等。
作者简介
贾森·埃德尔曼(Jason Edelman),网络工程师,持有CCIE认证和VCDX-NV认证,典型的“CLI爱好者”和“路由器玩家”。他的公司Network to Code致力于帮助厂商和用户利用新的工具和技术提高工作效率。 斯科特·S. 洛(Scott S. Lowe),VMware公司的工程架构师,在从事计算虚拟化工作多年后投身于云计算和网络虚拟化,著有多本关于vSphere和OpenStack的技术图书。 马特·奥斯瓦尔特(Matt Oswalt),Cloudflare公司的软件工程师,致力于解决软件开发和网络基础设施交叉领域的技术和非技术难题,同时讲授与Docker和可编程网络自动化相关的在线课程。
目录
本书赞誉xiii
前言xv
第1章网络行业发展趋势1
1.1SDN的兴起1
1.1.1OpenFlow1
1.1.2什么是软件定义网络4
1.2小结13
第2章网络自动化14
2.1为什么要实现网络自动化15
2.1.1简化架构15
2.1.2确定性结果15
2.1.3业务敏捷性16
2.2网络自动化的类型16
2.2.1设备配给16
2.2.2数据采集18
2.2.3迁移19
2.2.4配置管理20
2.2.5合规性20
2.2.6报告21
2.2.7故障排除21
2.3管理平面从SNMP向设备API的演变22
2.3.1应用程序接口(API)22
2.3.2开放网络运动的影响25
2.4SDN时代的网络自动化26
2.5小结26
第3章Linux27
3.1网络自动化场景中的Linux27
3.2Linux简史28
3.3Linux发行版28
3.3.1RedHatEnterpriseLinux、Fedora和CentOS29
3.3.2Debian、Ubuntu和其他衍生版30
3.3.3其他Linux发行版31
3.4Linux交互31
3.4.1文件系统导航32
3.4.2操作文件和目录35
3.4.3运行程序40
3.4.4守护进程42
3.5Linux联网46
3.5.1使用接口46
3.5.2作为端主机的路由54
3.5.3作为路由器的路由58
3.5.4桥接(交换)59
3.6小结64
第4章在网络场景中学习Python65
4.1网络工程师是否应该学习代码65
4.2使用Python交互式解释器67
4.3理解Python数据类型69
4.3.1学习使用字符串69
4.3.2学习使用数字77
4.3.3学习使用布尔值79
4.3.4学习使用Python列表81
4.3.5学习使用Python字典85
4.3.6学习Python集合与元组89
4.4向代码中添加条件逻辑90
4.5理解容纳92
4.6在Python中使用循环93
4.6.1理解while循环94
4.6.2理解for循环94
4.7使用Python函数97
4.8处理文件101
4.8.1读取文件101
4.8.2写入文件103
4.9创建Python程序105
4.9.1创建一个基本的Python脚本105
4.9.2理解shebang105
4.9.3将代码从Python解释器迁移到Python脚本107
4.10使用Python模块108
4.11传入Python脚本参数109
4.12使用pip与安装Python包111
4.13使用Python时的其他一些提示、技巧和一般信息112
4.14小结117
第5章数据格式与数据模型118
5.1数据格式简介118
5.2YAML121
5.2.1YAML基础121
5.2.2在Python中使用YAML123
5.2.3YAML的数据模型124
5.3XML125
5.3.1XML基础125
5.3.2将XML模式定义用于数据模型126
5.3.3使用XSLT转换XML128
5.3.4使用XQuery搜索XML131
5.4JSON131
5.4.1JSON基础131
5.4.2在Python中使用JSON133
5.4.3使用JSON模式描述数据模型134
5.5使用YANG描述数据模型135
5.5.1YANG概述135
5.5.2深入YANG136
5.6小结139
第6章网络配置模板140
6.1现代模板语言的兴起140
6.1.1使用模板进行Web开发141
6.1.2拓展模板应用142
6.2模板在网络自动化中所体现的价值142
6.3使用Jinja生成网络配置模板143
6.3.1为什么是Jinja143
6.3.2在基本Jinja模板中动态插入数据143
6.3.3在Python中渲染Jinja模板144
6.3.4条件与循环146
6.3.5Jinja过滤器151
6.3.6Jinja模板继承154
6.3.7在Jinja中创建变量155
6.4小结155
第7章使用网络API156
7.1理解网络API156
7.1.1熟悉基于HTTP的API157
7.1.2深入NETCONF160
7.2探究网络API166
7.2.1探究基于HTTP的API166
7.2.2探究NETCONF172
7.3使用网络API实现自动化180
7.3.1使用requests库180
7.3.2使用Pythonncclient库206
7.3.3使用netmiko226
7.4小结231
第8章使用Git控制源代码233
8.1源代码控制用例233
8.2源代码控制的好处234
8.2.1跟踪变更234
8.2.2可审计性234
8.2.3流程和工作流234
8.3源代码控制对网络的好处234
8.4Git235
8.4.1Git简史235
8.4.2Git术语236
8.4.3Git架构概述236
8.5使用Git237
8.5.1安装Git237
8.5.2创建仓库238
8.5.3向仓库中添加文件238
8.5.4向仓库提交变更239
8.5.5变更并提交已跟踪的文件242
8.5.6撤销暂存244
8.5.7从仓库中排除文件246
8.5.8查看仓库的更多信息249
8.5.9找出文件不同版本之间的差异253
8.6Git分支256
8.6.1创建分支260
8.6.2检出分支261
8.6.3合并分支和删除分支263
8.7使用Git进行协作266
8.7.1在运行Git的多个系统之间协作267
8.7.2使用基于Git的在线服务进行协作279
8.8小结283
第9章自动化工具284
9.1回顾自动化工具284
9.2使用Ansible286
9.2.1理解Ansible的工作原理286
9.2.2构建清单文件287
9.2.3执行Ansible剧本294
9.2.4使用变量文件297
9.2.5编写用于实现网络自动化的Ansible剧本299
9.2.6使用第三方Ansible模块314
9.2.7Ansible小结316
9.3使用Salt实现自动化317
9.3.1理解Salt架构317
9.3.2熟悉Salt320
9.3.3使用Salt管理网络配置333
9.3.4远程执行Salt函数341
9.3.5深入Salt的事件驱动基础设施342
9.3.6进一步深入Salt347
9.3.7Salt小结350
9.4使用StackStorm实现事件驱动网络自动化350
9.4.1StackStorm概念350
9.4.2StackStorm架构352
9.4.3动作和工作流353
9.4.4传感器和触发器362
9.4.5规则364
9.4.6StackStorm小结366
9.5小结366
第10章持续集成367
10.1重要的先决条件368
10.1.1越简单越好369
10.1.2人、流程和技术369
10.1.3学习编写代码369
10.2CI简介369
10.2.1CI基础370
10.2.2持续交付371
10.2.3测试驱动开发372
10.2.4为什么要对网络进行CI374
10.3用于网络的CI管道374
10.3.1同行评审376
10.3.2构建自动化380
10.3.3测试/开发/类生产环境384
10.3.4部署工具387
10.3.5测试工具和测试驱动的网络自动化388
10.4小结390
第11章打造网络自动化文化391
11.1组织策略和灵活性392
11.1.1改造旧日组织392
11.1.2获得管理层认同的重要性393
11.1.3构建与购买393
11.2拥抱失败394
11.3技能和教育395
11.3.1探索未知396
11.3.2注重基础396
11.3.3认证397
11.3.4自动化不会抢走我的饭碗吗397
11.4小结398
附录ALinux高级联网399
附录B使用NAPALM423

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网