本書遵循網(wǎng)絡(luò)自動化運維工程師職業(yè)素養(yǎng)和專業(yè)技能的要求進行內(nèi)容組織,采用“項目化教學(xué)”和“任務(wù)驅(qū)動”方式展開。本書分四篇,共計12個項目。內(nèi)容覆蓋網(wǎng)絡(luò)自動化Python編程基礎(chǔ)、用于網(wǎng)絡(luò)自動化的Python模塊、用于配置與管理網(wǎng)絡(luò)的協(xié)議以及網(wǎng)絡(luò)自動化運維的常用工具。基礎(chǔ)篇共一個項目,項目1為Python編程基礎(chǔ);部署實施篇共四個項目,項目2為使用telnetlib下發(fā)網(wǎng)絡(luò)配置;項目3為使用paramiko實現(xiàn)網(wǎng)絡(luò)自動化巡檢;項目4為使用 netmiko發(fā)現(xiàn)網(wǎng)絡(luò)拓撲;項目5為使用 PySNMP獲取網(wǎng)絡(luò)數(shù)據(jù);協(xié)議篇共三個項目,項目6為使用議NETCONF協(xié)議配置網(wǎng)絡(luò);項目7為使用Telemetry實時監(jiān)控CPU和內(nèi)存使用率;項目8為使用RESTCONF協(xié)議配置網(wǎng)絡(luò);工具篇共四個項目,項目9為使用Ansible實現(xiàn)網(wǎng)絡(luò)自動化運維;項目10為使用Nornir收集網(wǎng)絡(luò)日志;項目11為使用scapy處理數(shù)據(jù)包;項目12為使用NMAP掃描網(wǎng)絡(luò)。
本書是一本介紹網(wǎng)絡(luò)自動化運維理論知識和應(yīng)用技能的教材,既可作為高職或應(yīng)用型本科電子信息類專業(yè)學(xué)生的教材,也可作為參加華為HCIP Datacom網(wǎng)絡(luò)自動化開發(fā)者認證的學(xué)習者的閱讀材料,還可以作為網(wǎng)絡(luò)架構(gòu)師、網(wǎng)絡(luò)運維工程師、網(wǎng)絡(luò)運維開發(fā)工程師、網(wǎng)絡(luò)與系統(tǒng)管理工程師等從業(yè)人員的閱讀材料。
1.本書在編寫過程中遵循網(wǎng)絡(luò)工程師職業(yè)素養(yǎng)養(yǎng)成和專業(yè)技能積累的規(guī)律,突出職業(yè)能力、職業(yè)素養(yǎng)、工匠精神和質(zhì)量意識培育。
2.本書主要介紹網(wǎng)絡(luò)自動化運維工程師所需的與自動化運維相關(guān)的網(wǎng)絡(luò)編程技能,從網(wǎng)絡(luò)工程師的角度出發(fā),將程序員編程的思維帶入網(wǎng)絡(luò)領(lǐng)域,幫助網(wǎng)絡(luò)工程師開啟網(wǎng)絡(luò)自動化運維編程的“大門”。
3.本書從實戰(zhàn)出發(fā)講解原理,采用來自企業(yè)的真實案例構(gòu)建實戰(zhàn)場景,使用Python語言完成代碼實現(xiàn),結(jié)合實戰(zhàn)進行代碼解析,通過練習加深理解。
梁廣民,深圳職業(yè)技術(shù)大學(xué)教授,21年以來兢兢業(yè)業(yè)工作在教學(xué)第一線,教學(xué)方面,主持國家精品課程和國家精品資源共享課程《網(wǎng)絡(luò)互聯(lián)技術(shù)》建設(shè),主持教育部網(wǎng)絡(luò)技術(shù)專業(yè)教學(xué)資源庫子項目《網(wǎng)絡(luò)設(shè)備安裝與調(diào)試》課程建設(shè),主持廣東省教育廳教研項目《高職計算機類專業(yè)綜合改革》項目,主編出版教材19本,其中《網(wǎng)絡(luò)互聯(lián)技術(shù)》、《網(wǎng)絡(luò)系統(tǒng)建設(shè)與運維(高級)》和《網(wǎng)絡(luò)攻防案例教程》3本教材入選“職業(yè)教育國家規(guī)劃教材”。指導(dǎo)224名學(xué)生通過CCIE認證考試和80名同學(xué)通過HCIE認證考試,數(shù)量位居全國之首。指導(dǎo)學(xué)生獲得全國職業(yè)院校技能大賽《計算機網(wǎng)絡(luò)應(yīng)用》和《網(wǎng)絡(luò)系統(tǒng)管理》一等獎。參與華為和中銳公司2項1+X標準制定。多年來為來自全國的2000多名教師進行網(wǎng)絡(luò)技術(shù)師資培訓(xùn)?蒲蟹矫妫饕獜氖麓髷(shù)據(jù)分析、自動駕駛、生物信息等領(lǐng)域的研究,主持市級、校級重點和企業(yè)橫向8項,參與廣東省自然科學(xué)基金3項,研究經(jīng)費達100多萬元,先后發(fā)表論文16篇,其中SCI收錄6篇,EI收錄4篇,中文核心期刊5篇。先后通過華為、思科等18個IT領(lǐng)域職業(yè)認證或講師認證。先后為衛(wèi)生部、國家電網(wǎng)、中國聯(lián)通、廣東發(fā)展銀行和廣東省稅務(wù)局員工進行網(wǎng)絡(luò)技術(shù)培訓(xùn)。曾經(jīng)參與過中國銀行、國家電網(wǎng)和學(xué)校校園網(wǎng)等網(wǎng)絡(luò)升級和改造項目。
第 一篇 基礎(chǔ)篇 9
項目1 Python編程基礎(chǔ) 9
1.1 學(xué)習目標 9
1.2 任務(wù)陳述 9
1.3 知識準備 10
1.3.1 Python基礎(chǔ) 10
1.3.2 文件處理 15
1.3.3 網(wǎng)絡(luò)模塊 18
1.4 任務(wù)實施 24
1.4.1 創(chuàng)建文本文件 24
1.4.2 編寫Python代碼 24
1.4.3 運行Python代碼 26
1.5 任務(wù)總結(jié) 26
1.6 知識鞏固 26
第二篇 部署實施篇 27
項目2 使用telnetlib下發(fā)網(wǎng)絡(luò)配置 27
2.1 學(xué)習目標 27
2.2 任務(wù)陳述 28
2.3 知識準備 28
2.3.1 網(wǎng)絡(luò)自動化運維 28
2.3.2 SNMP協(xié)議 29
2.3.3 NTP協(xié)議 33
2.3.4 telnetlib模塊 34
2.4 任務(wù)實施 35
2.4.1 配置Telnet服務(wù) 36
2.4.2 配置NTP服務(wù) 36
2.4.3 編寫配置文件 37
2.4.4 編寫Python腳本 38
2.4.5 運行Python腳本 39
2.4.6 驗證結(jié)果 40
2.5 任務(wù)總結(jié) 42
2.6 知識鞏固 42
項目3 使用paramiko實現(xiàn)網(wǎng)絡(luò)自動化巡檢 43
3.1 學(xué)習目標 43
3.2 任務(wù)陳述 43
3.3 知識準備 43
3.3.1 網(wǎng)絡(luò)設(shè)備巡檢 43
3.3.2 paramiko模塊 44
3.4 任務(wù)實施 47
3.4.1 配置SSH服務(wù)端 48
3.4.2 編寫Python腳本 49
3.4.3 運行Python腳本 51
3.5 任務(wù)總結(jié) 53
3.6 知識鞏固 53
項目4 使用netmiko發(fā)現(xiàn)網(wǎng)絡(luò)拓撲 54
4.1 學(xué)習目標 54
4.2 任務(wù)陳述 54
4.3 知識準備 54
4.3.1 JSON數(shù)據(jù)格式 54
4.3.2 netmiko模塊 56
4.4 任務(wù)實施 58
4.4.1 配置SSH服務(wù)和LLDP 58
4.4.2 編寫Python腳本 60
4.4.3 運行Python腳本 63
4.4.4 查看拓撲圖 64
4.5 任務(wù)總結(jié) 64
4.6 知識鞏固 64
項目5 使用PySNMP獲取網(wǎng)絡(luò)數(shù)據(jù) 66
5.1 學(xué)習目標 66
5.2 任務(wù)陳述 66
5.3 知識準備 66
5.3.1 PySNMP模塊簡介 66
5.3.2 PySNMP使用方法 68
5.4 任務(wù)實施 72
5.4.1 配置設(shè)備SNMPv3 72
5.4.2 獲取OID 73
5.4.3 編寫腳本 73
5.4.4 運行腳本 75
5.5 任務(wù)總結(jié) 75
5.6 知識鞏固 75
第三篇 協(xié)議篇 77
項目6 使用NETCONF協(xié)議配置網(wǎng)絡(luò) 78
6.1 學(xué)習目標 78
6.2 任務(wù)陳述 78
6.3 知識準備 79
6.3. 1 XML數(shù)據(jù)格式 79
6.3.2 NETCONF協(xié)議基礎(chǔ) 84
6.3.3 NETCONF基本操作 89
6.3.4 NETCONF客戶端 90
6.3.5 設(shè)備上配置NETCONF 92
6.4 任務(wù)實施 94
6.4.1 設(shè)備上配置SSH服務(wù) 95
6.4.2 使能設(shè)備NETCONF功能 95
6.4.3 編寫Python腳本 96
6.4.4 運行Python腳本下發(fā)配置 111
6.4.5 驗證配置 113
6.5 任務(wù)總結(jié) 114
6.6 知識鞏固 114
項目7 使用Telemetry實時監(jiān)控CPU和內(nèi)存使用率 116
7.1 學(xué)習目標 116
7.2 任務(wù)陳述 116
7.3知識準備 117
7.3.1 YANG建模語言 117
7.3.2 Telemetry技術(shù)原理 122
7.3.3 Telemetry數(shù)據(jù)訂閱 124
7.3.4 采樣數(shù)據(jù)與編碼格式 127
7.3.5 Proto文件 131
7.3.6 gRPC傳輸協(xié)議 136
7.3.7 配置設(shè)備側(cè)數(shù)據(jù)訂閱 137
7.4 任務(wù)實施 140
7.4.1 配置SSH密碼登錄 140
7.4.2 配置目標采集器 140
7.4.3 配置采樣路徑和過濾條件 141
7.4.4 配置訂閱 141
7.4.5 安裝grpcio-tools 141
7.4.6 創(chuàng)建PyCharm項目 141
7.4.7 編譯proto文件 143
7.4.8 編寫服務(wù)端Python腳本 145
7.4.9 運行Python腳本驗證結(jié)果 146
7.5 任務(wù)總結(jié) 147
7.6 知識鞏固 148
項目8 使用RESTCONF協(xié)議配置網(wǎng)絡(luò) 149
8.1 學(xué)習目標 149
8.2 任務(wù)陳述 149
8.3 知識準備 150
8.3.1 HTTP協(xié)議 150
8.3.2 RESTCONF基礎(chǔ) 155
8.3.3 配置RESTCONF 161
8.3.4 requests模塊 161
8.4 任務(wù)實施 162
8.4.1 配置SSH密碼登錄 163
8.4.2 配置RESTCONF 163
8.4.3 編寫Python腳本 164
8.4.4 運行Python腳本 170
8.4.5 驗證 171
8.5 任務(wù)總結(jié) 172
8.6 知識鞏固 172
第四篇 工具篇 173
項目9 使用Ansible實現(xiàn)網(wǎng)絡(luò)自動化運維 174
9.1 學(xué)習目標 174
9.2 任務(wù)陳述 174
9.3 知識準備 174
9.3.1 YAML配置文件語言 174
9.3.2 Ansible基礎(chǔ) 177
9.3.3 Ansible劇本 181
9.3.4 任務(wù)控制 182
9.4 任務(wù)實施 183
9.4.1 配置SSH服務(wù)端 184
9.4.2 創(chuàng)建資產(chǎn)文件 185
9.4.3 編寫收集信息的playbook 185
9.4.4 驗證執(zhí)行收集信息的playbook 186
9.4.5 編寫配置交換機的playbook 189
9.4.6 驗證執(zhí)行配置交換機的playbook 190
9.5 任務(wù)總結(jié) 192
9.6 知識鞏固 192
項目10 使用Nornir收集網(wǎng)絡(luò)日志 193
10.1 學(xué)習目標 193
10.2 任務(wù)陳述 193
10.3 知識準備 193
10.3.1 Nornir基礎(chǔ) 193
10.3.2 Nornir插件 200
10.4 任務(wù)實施 205
10.4.1 配置SSH服務(wù) 205
10.4.2 安裝配置Syslog日志服務(wù)器。 206
10.4.3 創(chuàng)建主機清單 206
10.4.4 編寫Python腳本 208
10.4.5 執(zhí)行Python腳本 208
10.4.6 服務(wù)器接收日志 209
10.5 任務(wù)總結(jié) 210
10.6 知識鞏固 210
項目11 使用scapy處理數(shù)據(jù)包 211
11.1 學(xué)習目標 211
11.2 任務(wù)陳述 211
11.3 知識準備 211
11.3.1 Scapy基礎(chǔ) 211
11.3.2 Scapy函數(shù) 221
11.5 任務(wù)實施 228
11.5.1 SYN掃描 228
11.5.2 ARP ping 228
11.5.3 ICMP ping 229
11.5.4 UDP ping 230
11.5 任務(wù)總結(jié) 232
11.6 知識鞏固 232
項目12 使用NMAP掃描網(wǎng)絡(luò) 233
12.1 學(xué)習目標 233
12.2 任務(wù)陳述 233
12.3 知識準備 233
12.3.1 NMAP基礎(chǔ) 233
12.3.2 主機發(fā)現(xiàn) 235
12.3.3 端口掃描 237
12.3.4 服務(wù)和版本探測 239
12.5.5 操作系統(tǒng)探測 240
12.5.6 Python中的nmap模塊 240
12.4 任務(wù)實施 241
12.5 任務(wù)總結(jié) 244
12.6 知識鞏固 245
參考資料 246