会员   密码 您忘记密码了吗?
1,657,235 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > 可編程網絡自動化
可編程網絡自動化
上一张
下一张
prev next

可編程網絡自動化

作者: (美)賈森·埃德爾曼,(美)斯科特·S.洛,(美)馬特·奧斯瓦爾特
出版社: 人民郵電出版社
ISBN: 9787115606181
出版日期: 2023-01-01
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT839.00
市场价格: RM150.83
本店售价: RM134.24
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

本書提供了可程式設計網路自動化的基本技能,使用了包括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.1 SDN的興起 1

1.1.1 OpenFlow 1

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.4 SDN時代的網路自動化 26

2.5 小結 26

第 3 章 Linux 27

3.1 網路自動化場景中的Linux 27

3.2 Linux簡史 28

3.3 Linux發行版本 28

3.3.1 Red Hat Enterprise Linux、Fedora和CentOS 29

3.3.2 Debian、Ubuntu和其他衍生版 30

3.3.3 其他Linux發行版本 31

3.4 Linux交互 31

3.4.1 檔案系統導航 32

3.4.2 操作檔和目錄 35

3.4.3 運行程式 40

3.4.4 守護進程 42

3.5 Linux聯網 46

3.5.1 使用介面 46

3.5.2 作為端主機的路由 54

3.5.3 作為路由器的路由 58

3.5.4 橋接(交換) 59

3.6 小結 64

第 4 章 在網路場景中學習Python 65

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 理解shebang 105

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.2 YAML 121

5.2.1 YAML基礎 121

5.2.2 在Python中使用YAML 123

5.2.3 YAML的資料模型 124

5.3 XML 125

5.3.1 XML基礎 125

5.3.2 將XML模式定義用於資料模型 126

5.3.3 使用XSLT轉換XML 128

5.3.4 使用XQuery搜索XML 131

5.4 JSON 131

5.4.1 JSON基礎 131

5.4.2 在Python中使用JSON 133

5.4.3 使用JSON模式描述資料模型 134

5.5 使用YANG描述資料模型 135

5.5.1 YANG概述 135

5.5.2 深入YANG 136

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 為什麼是Jinja 143

6.3.2 在基本Jinja範本中動態插入資料 143

6.3.3 在Python中渲染Jinja範本 144

6.3.4 條件與迴圈 146

6.3.5 Jinja篩檢程式 151

6.3.6 Jinja範本繼承 154

6.3.7 在Jinja中創建變數 155

6.4 小結 155

第 7 章 使用網路API 156

7.1 理解網路API 156

7.1.1 熟悉基於HTTP的API 157

7.1.2 深入NETCONF 160

7.2 探究網路API 166

7.2.1 探究基於HTTP的API 166

7.2.2 探究NETCONF 172

7.3 使用網路API實現自動化 180

7.3.1 使用requests庫 180

7.3.2 使用Python ncclient庫 206

7.3.3 使用netmiko 226

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.4 Git 235

8.4.1 Git簡史 235

8.4.2 Git術語 236

8.4.3 Git架構概述 236

8.5 使用Git 237

8.5.1 安裝Git 237

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.6 Git分支 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 使用Ansible 286

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.7 Ansible小結 316

9.3 使用Salt實現自動化 317

9.3.1 理解Salt架構 317

9.3.2 熟悉Salt 320

9.3.3 使用Salt管理網路配置 333

9.3.4 遠端執行Salt函數 341

9.3.5 深入Salt的事件驅動基礎設施 342

9.3.6 進一步深入Salt 347

9.3.7 Salt小結 350

9.4 使用StackStorm實現事件驅動網路自動化 350

9.4.1 StackStorm概念 350

9.4.2 StackStorm架構 352

9.4.3 動作和工作流 353

9.4.4 感測器和觸發器 362

9.4.5 規則 364

9.4.6 StackStorm小結 366

9.5 小結 366

第 10 章 持續集成 367

10.1 重要的先決條件 368

10.1.1 越簡單越好 369

10.1.2 人、流程和技術 369

10.1.3 學習編寫代碼 369

10.2 CI簡介 369

10.2.1 CI基礎 370

10.2.2 持續交付 371

10.2.3 測試驅動開發 372

10.2.4 為什麼要對網路進行CI 374

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

附錄A Linux高級聯網 399

附錄B 使用NAPALM 423