網絡工程師的 Python 之路:網絡運維自動化實戰

王印

買這商品的人也買了...

商品描述

眾所周知,Python這門編程語言的應用場景十分廣泛,人工智能、數據分析、爬蟲、Web開發、
游戲製作等領域都能看到Python的身影,隨著近幾年Python的大熱,和上述Python應用場景相關的書籍、
視頻、網站等教學資源隨處可見,而市面上Python的基礎入門教程更是多如牛毛。
遺憾的是,在如此豐富的Python教學資源中,
為網絡工程師量身打造的電腦網絡運維方面的教學書籍卻相當匱乏。
本書內容基於思科設備和技術,從網絡工程師的角度出發,以截稿前的Python 3.8為主,
從Python的安裝到基礎和進階知識,再到Python在網絡運維中的實戰應用和網絡工程師必須掌握的Python第三方模塊,
所有內容均為網絡工程師量體裁衣,讓完全零基礎的網絡工程師能夠快速上手並掌握Python這門編程語言,
將網絡運維自動化技術運用在日常工作中,在提高工作效率的同時,提升職場競爭力。
本書所有內容均由作者精選,只講解對網絡工程師有用的Python知識,
讓讀者在網絡運維自動化技術學習的道路上少走一些彎路。

作者簡介

王印

知乎專欄“網路行者”作家,知乎Id:弈心,沙特阿卜杜拉國王科技大學高級網絡工程師,11年海外從業經驗,CCIE#40245。
2009年起在新加坡先後任職於美國電信運營商AT&T、美國數據中心公司Equinix、新加坡陸路交通管理局(LTA)、
新加坡石林IT諮詢公司(SFIT)、美國蘋果公司、蘇格蘭皇家銀行(RBS),對大型園區、
金融行業網絡的設計與運維具有豐富的實戰經驗。

目錄大綱

目錄
第1章Python的安裝和使用 1
1.1 安裝Python 1
1.1.1 在Windows下安裝Python 3.8.2 2
1.1.2 在Linux下安裝Python 3.8.2 5
1.2 在Windows下使用Python 3.8.2 8
1.2.1 交互模式 8
1.2.2 腳本模式10
1.2.3 運行Python腳本14
1.3 在Linux下使用Python 3.8.2 18
1.3.1 交互模式19
1.3.2 腳本模式19
1.3.3 運行Python腳本22
1.3.4 Shebang符號22

第2章Python基本語法24
2.1 變量24
2.2 註釋27
2.3 方法和函數28
2.4 數據類型30
2.4.1 字符串30
2.4.2 整數和浮點數41
2.4.3 列表45
2.4.4 字典50
2.4.5 布爾類型55
2.4.6 集合、元組、空值57

第3章Python進階語法62
3.1 條件(判斷)語句62
3.1.1 通過比較運算符做判斷63
3.1.2 通過字符串方法+邏輯運算符做判斷64
3.1.3 通過成員運算符做判斷67
3.2 循環語句69
3.2.1 while語句69
3.2.2 for語句72
3.3 文本文件的讀/寫75
3.3.1 open()函數及其模式75
3.3.2 文件讀取76
3.3.3 文件寫入84
3.3.4 with語句88
3.4 自定義函數89
3.4.1 函數的創建和調用90
3.4.2 函數值的返回91
3.4.3 嵌套函數93
3.5 模塊93
3.5.1 不帶自定義函數的模塊94
3.5.2 帶自定義函數的模塊95
3.5.3 Python內建模塊和第三方模塊95
3.5.4 from ... import ... 99
3.5.5 if __name__ == '__main__': 99
3.6 正則表達式100
3.6.1 什麼是正則表達式101
3.6.2 正則表達式的驗證102
3.6.3 正則表達式的規則103
3.6.4 正則表達式在Python中的應用110
3.7 異常處理116

第4章Python網絡運維實驗(GNS3模擬器) 122
4.1 實驗運行環境122
4.2 Python中的Telnet和SSH模塊124
4.2.1 Telnetlib 124
4.2.2 Paramiko和Netmiko 131
4.3 實驗1 input()函數和getpass模塊143
4.3.1 實驗目的143
4.3.2 實驗準備143
4.3.3 實驗代碼145
4.3.4 代碼分段講解146
4.3.5 驗證148
4.4 實驗2 批量登錄不同網段的交換機152
4.4.1 實驗目的152
4.4.2 實驗準備153
4.4.3 實驗代碼154
4.4.4 代碼分段講解155
4.4.5 驗證156
4.5 實驗3 異常處理的應用157
4.5.1 實驗目的159
4.5.2 實驗準備159
4.5.3 實驗代碼160
4.5.4 代碼分段講解162
4.5.5 驗證164
4.6 實驗4 Python實現網絡設備的配置備份166
4.6.1 實驗目的166
4.6.2 實驗準備166
4.6.3 實驗代碼170
4.6.4 代碼分段講解171
4.6.5 驗證173

第5章Python網絡運維實戰(真機) 176
5.1 實驗1 大規模批量修改交換機QoS的配置176
5.1.1 實驗背景178
5.1.2 實驗目的178
5.1.3 實驗準備178
5.1.4 實驗代碼180
5.1.5 代碼分段講解181
5.1.6 驗證182
5.2 實驗2 pythonping的使用方法185
5.2.1 實驗背景187
5.2.2 實驗目的187
5.2.3 實驗思路187
5.2.4 實驗準備- 腳本1 188
5.2.5 實驗代碼- 腳本1 189
5.2.6 腳本1代碼分段講解190
5.2.7 腳本1驗證192
5.2.8 實驗準備- 腳本2 193
5.2.9 實驗代碼- 腳本2 194
5.2.10 腳本2代碼分段講解196
5.2.11 腳本2驗證200
5.3 實驗3 利用Python腳本檢查交換機的配置201
5.3.1 實驗背景201
5.3.2 實驗目的202
5.3.3 實驗思路202
5.3.4 實驗準備- 腳本1 203
5.3.5 實驗代碼- 腳本1 204
5.3.6 腳本1代碼分段講解206
5.3.7 腳本1驗證211
5.3.8 實驗準備- 腳本2 212
5.3.9 實驗代碼- 腳本2 213
5.3.10 腳本2代碼分段講解215
5.3.11 腳本2驗證217

第6章Python第三方模塊詳解218
6.1 JSON 219
6.1.1 JSON基礎知識220
6.1.2 JSON在Python中的使用221
6.2 正則表達式的痛點222
6.3 TextFSM和ntc-templates 224
6.3.1 TextFSM的安裝226
6.3.2 TextFSM模板的創建和應用227
6.3.3 ntc-templates 231
6.4 NAPALM 237
6.4.1 什麼是NAPALM 237
6.4.2 NAPALM的優點238
6.4.3 NAPALM的缺點240
6.4.4 NAPALM的安裝241
6.4.5 NAPALM的應用242
6.5 pyntc 248
6.5.1 pyntc和NAPALM的比較248
6.5.2 pyntc的安裝249
6.5.3 pyntc的應用250
6.6 netdev(異步並行) 257
6.6.1 同步與異步258
6.6.2 異步在Python中的應用258
6.6.3 netdev的安裝和應用262
6.7 Netmiko(多線程) 267
6.7.1 單線程與多線程268
6.7.2 多線程在Python中的應用268
6.7.3 多線程在Netmiko中的應用273