Python網路運維自動化

《Python網路運維自動化》是王旭濤編著的網路工程類技術圖書,由人民郵電出版社於2025年出版,ISBN為9787115652607,全書共246頁。作者王旭濤(筆名九淨)曾擔任某國有大型銀行數據中心網路運維開發工程師,運營“NetDevOps加油站”自媒體。本書基於作者的網路運維自動化開發經驗編寫,旨在從網路工程師視角指導讀者學習和套用Python實現網路運維自動化(NetDevOps)。全書共10章,內容涵蓋Python編程基礎、JSON/YAML/XML等數據格式處理、使用正則表達式和TextFSM進行網路配置的結構化數據提取、Jinja2模板化管理、Netmiko工具詳解、NETCONF與RESTCONF等模型驅動管理方式的實踐,以及netaddr、Requests、NAPALM等網路管理工具集、網路自動化框架Nornir和開源網管工具NetBox的套用。本書適用於網路工程師、運維自動化開發者及高等院校網路工程相關專業的師生。

基本介紹

  • 中文名:Python網路運維自動化
  • 題材:網路工程
  • 出版社:人民郵電出版社
  • ISBN:9787115652607
  • 類別:技術圖書
  • 裝幀:平裝
  • 出版時間:2025年1月
  • 作者:王旭濤
  • 頁數:246頁
作者簡介,出版與發行,圖書評價,內容簡介,圖書目錄,

作者簡介

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

出版與發行

《Python網路運維自動化》於2025年1月由人民郵電出版社出版,ISBN為978-7-115-65260-7,平裝,全書共246頁。本書電子版亦在微信讀書等平台同步推出。本書由人民郵電出版社的單瑞婷編輯擔任責任編輯,在近10個月的出版周期中,與作者一同對書稿進行了打磨與校正。

圖書評價

《Python網路運維自動化》是一本關於網路運維自動化的書籍。本書基於作者的網路運維經驗編寫,內容從基礎環境安裝、Python語法到NetDevOps領域的工具和框架,涵蓋了運維相關的知識。
本書內容涉及網路運維自動化,可供網路工程師、開發工程師及相關專業的學生參考。
該書出版後,在計算機網路通信領域受到一定關注。

內容簡介

本書從網路工程師的視角出發,詳細講解了Python在網路運維自動化中的套用,其中涉及Python網路運維自動化的相關技術、工具以及實踐。
本書共10章,先對Python網路運維自動化進行了全面的概述,然後講解了網路工程師所需的Python基礎、數據格式與數據建模語言的相關知識。接著,本書介紹了網路配置的結構化數據提取、網路配置的模組化管理、Netmiko詳解與實踐、模型驅動的新網路管理方式及實踐、網路管理工具集、網路自動化框架Nornir和開源網管工具NetBox。本書依託於作者10餘年的網路運維經驗,內容循序漸進,從腳本編寫、框架套用到系統平台整合,逐步提升,結合豐富的代碼實例,全面介紹了Python網路運維自動化的工具體系以及其在不同場景下的套用實現。
本書適合網路工程師閱讀,也適合對網路運維自動化感興趣的開發工程師學習,還適合作為高等院校網路工程等相關專業的教材。

圖書目錄

第 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

相關詞條

熱門詞條

聯絡我們