-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
網絡工程師的Python之路(網絡運維自動化實戰(zhàn)) 版權信息
- ISBN:9787121398063
- 條形碼:9787121398063 ; 978-7-121-39806-3
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
網絡工程師的Python之路(網絡運維自動化實戰(zhàn)) 本書特色
適讀人群 :本書適用于網絡工程師、網絡安全工程師、網絡顧問、網絡架構師和計算機網絡專業(yè)的學生,以及對網絡運維自動化技術感興趣的Linux/Windows系統(tǒng)工程師和系統(tǒng)架構師。★ 資深網絡老兵、知乎專欄“網路行者”作者全力打造 ★ 全部內容均為網絡工程師量體裁衣 ★ 零基礎網工自學Python的Go-To Book ★ 基于截稿前的Python 3.8 ★ 由淺入深講解網絡運維和Python的完美結合 ★ 4大基礎知識點,7大進階知識點,助力傳統(tǒng)網工輕松轉型 ★ 4個GNS3模擬器實驗,3個真機實驗,實用性強,講解細致 ★ 6大Python第三方網絡運維相關模塊,舉例介紹更多實用工具 ★ 手把手教學,讓網絡運維自動化學習道路更順暢
網絡工程師的Python之路(網絡運維自動化實戰(zhàn)) 內容簡介
眾所周知,Python這門編程語言的應用場景十分廣泛,人工智能、數(shù)據(jù)分析、爬蟲、Web開發(fā)、游戲制作等領域都能看到Python的身影,隨著近幾年Python的大熱,和上述Python應用場景相關的書籍、視頻、網站等教學資源隨處可見,而市面上Python的基礎入門教程更是多如牛毛。遺憾的是,在如此豐富的Python教學資源中,為網絡工程師量身打造的計算機網絡運維方面的教學書籍卻相當匱乏。 本書內容基于思科設備和技術,從網絡工程師的角度出發(fā),以截稿前的Python 3.8為主,從Python的安裝到基礎和進階知識,再到Python在網絡運維中的實戰(zhàn)應用和網絡工程師必須掌握的Python第三方模塊,所有內容均為網絡工程師量體裁衣,讓接近零基礎的網絡工程師能夠快速上手并掌握Python這門編程語言,將網絡運維自動化技術運用在日常工作中,在提高工作效率的同時,提升職場競爭力。 本書所有內容均由作者精選,只講解對網絡工程師有用的Python知識,讓讀者在網絡運維自動化技術學習的道路上少走一些彎路。
網絡工程師的Python之路(網絡運維自動化實戰(zhàn)) 目錄
第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 方法和函數(shù) 28
2.4 數(shù)據(jù)類型 30
2.4.1 字符串 30
2.4.2 整數(shù)和浮點數(shù) 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 循環(huán)語句 69
3.2.1 while語句 69
3.2.2 for語句 72
3.3 文本文件的讀/寫 75
3.3.1 open()函數(shù)及其模式 75
3.3.2 文件讀取 76
3.3.3 文件寫入 84
3.3.4 with語句 88
3.4 自定義函數(shù) 89
3.4.1 函數(shù)的創(chuàng)建和調用 90
3.4.2 函數(shù)值的返回 91
3.4.3 嵌套函數(shù) 93
3.5 模塊 93
3.5.1 不帶自定義函數(shù)的模塊 94
3.5.2 帶自定義函數(shù)的模塊 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 正則表達式的規(guī)則 103
3.6.4 正則表達式在Python中的應用 110
3.7 異常處理 116
第4章 Python網絡運維實驗(GNS3模擬器) 122
4.1 實驗運行環(huán)境 122
4.2 Python中的Telnet和SSH模塊 124
4.2.1 Telnetlib 124
4.2.2 Paramiko和Netmiko 131
4.3 實驗1 input()函數(shù)和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實現(xiàn)網絡設備的配置備份 166
4.6.1 實驗目的 166
4.6.2 實驗準備 166
4.6.3 實驗代碼 170
4.6.4 代碼分段講解 171
4.6.5 驗證 173
第5章 Python網絡運維實戰(zhàn)(真機) 176
5.1 實驗1 大規(guī)模批量修改交換機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模板的創(chuàng)建和應用 227
6.3.3 ntc-templates 231
6.4 NAPALM 237
6.4.1 什么是NAPALM 237
6.4.2 NAPALM的優(yōu)點 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
網絡工程師的Python之路(網絡運維自動化實戰(zhàn)) 節(jié)選
5.1 實驗1 大規(guī)模批量修改交換機Qos的配置 在第4章的實驗2中提到了,要使用Python來批量連接管理IP地址不連續(xù)的網絡設備,可以把設備的管理IP地址預先寫入一個文本文件,然后在代碼中使用for循環(huán)配合open()函數(shù)和readlines()函數(shù)逐行讀取該文本文件里的管理IP地址,達到循環(huán)批量登錄多臺網絡設備的目的。 在成功登錄交換機后,我們可以配合command.send()來對網絡設備“發(fā)號施令”,但在前面的例子中我們都是將要輸入的命令預先寫在腳本里,比如command.send("conf t\n")、command.send("router eigrp 1\n")和command.send("end\n")等。這種將配置命令預先寫在腳本里的方法便于初學者理解和學習,在只有幾臺設備的實驗環(huán)境中常用。但是在有成千上萬臺網絡設備需要管理的生產環(huán)境中,這種方法顯得很笨拙,缺乏靈活性。舉例來說,假設生產環(huán)境中有不同型號、不同操作系統(tǒng)、不同命令格式的設備各1 000臺,比如思科的3750和3850交換機,前者運行的是IOS,后者運行的是IOS-XE。 *近你接到任務,需要分別給這兩種交換機批量修改QoS的配置,因為兩者的命令格式差異巨大(一個是MLS QoS,一個是MQC QoS),必須反復修改command.send()部分的代碼,如果只是簡單數(shù)條命令還好辦,一旦遇到大規(guī)模的配置,那么這種方法的效率會很低。 解決這個問題的思路是分別創(chuàng)建兩個文本文件,一個用來存放配置3750交換機要用的命令集,另一個用來存放配置3850交換機要用到的命令集,然后在Python腳本里同樣通過for循環(huán)加open()函數(shù)來讀取兩個文件里的內容,達到分別給所有3750和3850交換機做QoS配置的目的,這樣做的好處是無須修改command.send()部分的代碼,因為所有的命令行已經在文本文件里預先設置好了。 但是新的問題又來了,每次配備不同型號的設備,都必須手動修改open()函數(shù)所打開的配置文本文件及IP地址文件,比如在給3750交換機做配置時,需要open('command_ 3750.txt')和open('ip_3750.txt'), 給3850交換機做配置時,又需要open('command_3850.txt')和open('ip_3850.txt'),這樣一來二去修改配置腳本的做法大大缺乏靈活性。如果只有兩種不同型號、不同命令格式的設備還能應付,那么當生產環(huán)境中同時使用3750(IOS)、3850(IOS-XE)、Nexus 3k/5k/7k/9k(NX-OS)、CRS3/ASR9K(IOS-XR),甚至其他廠商的設備,而又要對所有這些設備同時修改某個共有的配置。比如網絡新添加了某臺TACACS服務器,要統(tǒng)一給所有設備修改它們的AAA配置;又或者網絡新添加了某臺NMS系統(tǒng),要統(tǒng)一給所有設備修改SNMP配置。因為不同OS的設備的配置命令完全不同,這時就能體會到痛苦了。此時我們可以用下面實驗中的sys.argv來解決這個問題。 5.1.1 實驗背景 本實驗將在真機下完成。 假設現(xiàn)在手邊有3臺管理IP地址在192.168.100.x /24網段的3750交換機和3臺管理IP地址在172.16.100.x/24網段的3850交換機,它們的hostname和管理IP地址分別如下。 3750_1: 192.168.100.113750_2: 192.168.100.223750_3: 192.168.100.333850_1: 172.16.100.113850_2: 172.16.100.223850_3: 172.16.100.33
網絡工程師的Python之路(網絡運維自動化實戰(zhàn)) 作者簡介
王印,知乎專欄“網路行者”作家,知乎Id:弈心,沙特阿卜杜拉國王科技大學高級網絡工程師,11年海外從業(yè)經驗,CCIE#40245。2009年起在新加坡先后任職于美國電信運營商AT&T、美國數(shù)據(jù)中心公司Equinix、新加坡陸路交通管理局(LTA)、新加坡石林IT咨詢公司(SFIT)、美國蘋果公司、蘇格蘭皇家銀行(RBS),對大型園區(qū)、金融行業(yè)網絡的設計與運維具有豐富的實戰(zhàn)經驗。
- >
山海經
- >
隨園食單
- >
朝聞道
- >
回憶愛瑪儂
- >
自卑與超越
- >
名家?guī)阕x魯迅:朝花夕拾
- >
中國歷史的瞬間
- >
詩經-先民的歌唱