Python網絡運維自動化

王旭濤

  • 出版商: 人民郵電
  • 出版日期: 2025-01-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 246
  • ISBN: 7115652600
  • ISBN-13: 9787115652607
  • 立即出貨 (庫存 < 3)

  • Python網絡運維自動化-preview-1
  • Python網絡運維自動化-preview-2
Python網絡運維自動化-preview-1

商品描述

本書從網絡工程師的視角出發,詳細講解了Python在網絡運維自動化中的應用,其中涉及Python網絡運維自動化的相關技術、工具以及實踐。

本書共10章,先對Python網絡運維自動化進行了全面的概述,然後講解了網絡工程師所需的Python基礎、數據格式與數據建模語言的相關知識。接著,本書介紹了網絡配置的結構化數據提取、網絡配置的模塊化管理、Netmiko詳解與實踐、模型驅動的新網絡管理方式及實踐、網絡管理工具集、網絡自動化框架Nornir和開源網管工具NetBox。本書依托於作者10餘年的網絡運維經驗,內容循序漸進,從腳本編寫、框架應用到系統平臺整合,逐步提升,結合豐富的代碼實例,全面介紹了Python網絡運維自動化的工具體系以及其在不同場景下的應用實現。

本書適合網絡工程師閱讀,也適合對網絡運維自動化感興趣的開發工程師學習,還適合作為高等院校網絡工程等相關專業的教材。

作者簡介

王旭濤(九凈),某國有大型銀行數據中心網絡運維開發工程師,運營自媒體賬號“NetDevOps加油站”與同名知識專欄。擁有十餘年的網絡運維自動化和智能化平臺規劃、設計、研發工作經驗,對網絡運維自動化、智能化有較全面的理解。作為國內NetDevOps的早期踐行者、佈道者,他通過撰寫文章、製作視頻教程、進行技術直播分享、在技術峰會上發表演講以及公開源代碼等多種形式,全面而系統地傳播NetDevOps文化、技術、工具和解決方案,得到受眾廣泛認可。

目錄大綱

第 1章 Python網絡運維自動化概述 1

1.1 Python網絡運維自動化應對新挑戰 1

1.1.1 雲計算時代網絡行業的變遷 1

1.1.2 雲計算時代網絡運維的挑戰 2

1.1.3 Python網絡運維自動化的興起 2

1.2 Python網絡運維自動化的工具體系 3

1.2.1 數據工具集 3

1.2.2 網絡管理工具集 4

1.2.3 開源框架與系統 4

1.3 Python網絡運維自動化實踐之路 5

1.3.1 循序漸進地學習與實踐 5

1.3.2 有意識地培養數據意識 6

1.3.3 以場景為導向的實踐落地 6

1.4 小結 7

第 2章 網絡工程師的Python基礎 8

2.1 開發環境搭建 8

2.1.1 Python版本選擇與安裝 8

2.1.2 PyCharm的安裝與設置 11

2.2 變量、縮進與註釋 16

2.2.1 變量的定義與賦值 16

2.2.2 Python的縮進控制 17

2.2.3 Python的兩種註釋方法 17

2.3 基礎數據類型 18

2.3.1 數字 18

2.3.2 字符串 19

2.3.3 列表 24

2.3.4 字典 26

2.3.5 布爾 28

2.3.6 元組 30

2.3.7 集合 30

2.3.8 數據類型的轉換 31

2.4 判斷與循環 32

2.4.1 if判斷 32

2.4.2 for循環 33

2.4.3 while循環 35

2.5 函數及其調用 35

2.5.1 函數的定義 36

2.5.2 函數的調用 37

2.6 Python進階知識 38

2.6.1 類與面向對象 38

2.6.2 文本文件的讀寫操作 40

2.6.3 模塊與包 42

2.6.4 pip及第三方包的安裝 43

2.7 小結 44

第3章 數據格式與數據建模語言 45

3.1 數據格式簡介 45

3.2 JSON規範及其使用 45

3.2.1 JSON的規範 46

3.2.2 json模塊與JSON數據轉換 48

3.3 YAML規範及其使用 51

3.3.1 對象 51

3.3.2 數組 52

3.3.3 純量 53

3.3.4 多文檔的YAML數據 55

3.3.5 PyYAML包與YAML數據轉換 56

3.4 XML規範及其使用 57

3.4.1 元素、標簽與屬性 58

3.4.2 列表數據的定義 59

3.4.3 命名空間 60

3.4.4 xmltodict包與XML數據轉換 61

 

3.5 表格數據與pandas 62

3.5.1 pandas簡介與安裝 63

3.5.2 pandas從表格讀取數據 63

3.5.3 pandas寫入數據到表格 64

3.6 數據建模語言YANG 66

3.6.1 YANG模塊的結構 66

3.6.2 YANG的基礎語法規範 67

3.6.3 pyang包圖形化解析YANG模型 70

3.7 小結 72

第4章 網絡配置的結構化數據提取 73

4.1 正則表達式的基礎知識 73

4.1.1 瞭解正則表達式 73

4.1.2 正則表達式的常用元字符 74

4.2 re模塊及其使用 75

4.2.1 search函數詳解 75

4.2.2 findall函數詳解 77

4.2.3 實戰1:search函數提取單條數據 78

4.2.4 實戰2:findall函數提取條形表數據 80

4.2.5 實戰3:findall與search函數結合提取塊狀表數據 82

4.3 配置解析引擎TextFSM 86

4.3.1 TextFSM簡介 86

4.3.2 值語法詳解 87

4.3.3 狀態語法詳解 88

4.3.4 規則和動作語法詳解 89

4.4 TextFSM模板實戰詳解 91

4.4.1 單條數據的提取 91

4.4.2 條形表數據的提取 92

4.4.3 在尾部進行分割的塊狀表數據提取 94

4.4.4 在頭部進行分割的塊狀表數據提取 95

4.4.5 列表類型的數據提取 97

4.4.6 缺失字段的向後填充 98

4.4.7 TextFSM模板庫ntc-templates 100

4.5 小結 102

第5章 網絡配置的模板化管理 103

5.1 模板引擎Jinja2簡介 103

5.1.1 模板引擎的基本原理 103

5.1.2 Jinja2簡介 104

5.2 Jinja2的基礎語法及其使用 105

5.2.1 Jinja2的基礎語法 105

5.2.2 文件系統管理配置模板 109

5.2.3 過濾器的定義與使用 110

5.2.4 原子模板的嵌套組合 112

5.3 結構化數據驅動的Jinja2實戰詳解 115

5.3.1 利用表格承載數據並批量生成網絡配置文件 115

5.3.2 利用YAML文件承載數據並批量生成網絡配置文件 117

5.4 小結 120

第6章 Netmiko詳解與實戰 121

6.1 Netmiko快速上手 121

6.1.1 Netmiko簡介及其使用 121

6.1.2 Netmiko支持的網絡設備及device_type值的選擇 123

6.2 Netmiko的核心API 124

6.2.1 ConnectHandler函數詳解 125

6.2.2 send_command詳解 127

6.2.3 send_command_timing詳解 131

6.2.4 send_config_set和send_config_from_file詳解 134

6.3 基於Netmiko的網絡運維自動化實戰 138

6.3.1 網絡設備的批量配置備份 138

6.3.2 網絡設備的批量信息巡檢 143

6.3.3 網絡設備的批量配置推送 146

6.4 小結 148

第7章 模型驅動的新網絡管理方式及實踐 149

7.1 新一代網絡管理協議的誕生 149

7.1.1 CLI與SNMP的局限性 149

7.1.2 NETCONF、RESTCONF協議與YANG建模語言的誕生 150

7.2 NETCONF協議入門 153

7.2.1 NETCONF協議的框架 153

7.2.2 NETCONF協議的交互流程 153

7.2.3 NETCONF協議的配置數據及常見配置操作 157

7.3 基於ncclient的NETCONF配置操作 158

7.3.1 ncclient簡介 159

7.3.2 get-config操作 161

7.3.3 edit-config操作 164

7.3.4 get操作 167

7.3.5 解鎖更多的ncclient操作方法 169

7.4 RESTCONF協議入門 171

7.4.1 瞭解REST 171

7.4.2 Postman簡介及其安裝 173

7.4.3 RESTCONF協議的認證與資源導覽 174

7.4.4 基於RESTCONF實現模型數據的查詢和更新 175

7.5 小結 177

第8章 網絡管理工具集 178

8.1 IP地址管理工具包netaddr 178

8.1.1 netaddr簡介及基本使用 178

8.1.2 網絡展開及包含關系計算 181

8.1.3 網絡的劃分與合並 182

8.2 HTTP請求工具包Requests 184

8.2.1 Requests簡介 184

8.2.2 發送GET請求 185

8.2.3 發送POST請求 186

8.2.4 發送PUT、PATCH、DELETE請求 187

8.2.5 HTTP請求的認證及自定義認證類 188

8.3 網絡抽象工具包NAPALM 190

8.3.1 NAPALM簡介 190

8.3.2 網絡設備結構化配置數據的獲取 192

8.4 小結 194

第9章 網絡自動化框架Nornir 195

9.1 Nornir簡介 195

9.1.1 Nornir介紹及安裝 195

9.1.2 快速上手Nornir 196

9.2 Nornir runbook的編寫 198

9.2.1 網絡設備清單 198

9.2.2 配置文件 201

9.2.3 Nornir對象的創建 202

9.2.4 使用過濾器篩選網絡設備 203

9.2.5 task函數的定義及其調用 206

9.2.6 runbook的執行結果 210

9.3 Nornir的常用插件包 212

9.3.1 nornir_netmiko簡介及其使用 212

9.3.2 nornir_table_inventory簡介及其使用 216

9.3.3 nornir_utils簡介及其使用 219

9.4 基於Nornir的網絡運維自動化實戰 220

9.4.1 網絡設備的批量配置備份 220

9.4.2 網絡設備的批量信息巡檢 222

9.4.3 網絡設備的批量配置推送 223

9.5 小結 225

第 10章 開源網管工具NetBox 226

10.1 NetBox簡介及安裝 226

10.1.1 NetBox的特點 226

10.1.2 基於Docker安裝NetBox 227

10.2 NetBox的核心功能 229

10.2.1 數據中心基礎設施管理 229

10.2.2 IP地址管理 235

10.3 NetBox的功能擴展 239

10.3.1 自定義字段custom_fields 239

10.3.2 nornir_netbox插件對接NetBox系統 240

10.3.3 開放的RESTful API體系 242

10.4 小結 246