Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化
定 價(jià):79.8 元
本書從網(wǎng)絡(luò)工程師的視角出發(fā),詳細(xì)講解了Python在網(wǎng)絡(luò)運(yùn)維自動(dòng)化中的應(yīng)用,其中涉及Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化的相關(guān)技術(shù)、工具以及實(shí)踐。本書共10章,先對(duì)Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化進(jìn)行了全面的概述,然后講解了網(wǎng)絡(luò)工程師所需的Python基礎(chǔ)、數(shù)據(jù)格式與數(shù)據(jù)建模語(yǔ)言的相關(guān)知識(shí)。接著,本書介紹了網(wǎng)絡(luò)配置的結(jié)構(gòu)化數(shù)據(jù)提取、網(wǎng)絡(luò)配置的模塊化管理、Netmiko詳解與實(shí)踐、模型驅(qū)動(dòng)的新網(wǎng)絡(luò)管理方式及實(shí)踐、網(wǎng)絡(luò)管理工具集、網(wǎng)絡(luò)自動(dòng)化框架Nornir和開源網(wǎng)管工具NetBox。本書依托于作者10余年的網(wǎng)絡(luò)運(yùn)維經(jīng)驗(yàn),內(nèi)容循序漸進(jìn),從腳本編寫、框架應(yīng)用到系統(tǒng)平臺(tái)整合,逐步提升,結(jié)合豐富的代碼實(shí)例,全面介紹了Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化的工具體系以及其在不同場(chǎng)景下的應(yīng)用實(shí)現(xiàn)。本書適合網(wǎng)絡(luò)工程師閱讀,也適合對(duì)網(wǎng)絡(luò)運(yùn)維自動(dòng)化感興趣的開發(fā)工程師學(xué)習(xí),還適合作為高等院校網(wǎng)絡(luò)工程等相關(guān)專業(yè)的教材。
1.從理論到實(shí)戰(zhàn):從基礎(chǔ)理論入手,通過(guò)實(shí)戰(zhàn)案例教學(xué),手把手教讀者掌握Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化,解決運(yùn)維工作中的日常問(wèn)題,提升運(yùn)維效率。2.多個(gè)真實(shí)案例:各個(gè)章節(jié)提供多個(gè)真實(shí)運(yùn)維場(chǎng)景下的Python腳本,幫助讀者深入理解如何運(yùn)用Python解決網(wǎng)絡(luò)運(yùn)維中的難題。3.配套資源豐富:提供詳盡的配套代碼、PPT、配套視頻、思維導(dǎo)圖,讀者還可以加入本書讀者群,在群中與作者進(jìn)行交流互動(dòng),尋求職業(yè)規(guī)劃建議。
王旭濤(九凈),某國(guó)有大型銀行數(shù)據(jù)中心網(wǎng)絡(luò)運(yùn)維開發(fā)工程師,運(yùn)營(yíng)自媒體賬號(hào)NetDevOps加油站與同名知識(shí)專欄。擁有十余年的網(wǎng)絡(luò)運(yùn)維自動(dòng)化和智能化平臺(tái)規(guī)劃、設(shè)計(jì)、研發(fā)工作經(jīng)驗(yàn),對(duì)網(wǎng)絡(luò)運(yùn)維自動(dòng)化、智能化有較全面的理解。作為國(guó)內(nèi)NetDevOps的早期踐行者、布道者,他通過(guò)撰寫文章、制作視頻教程、進(jìn)行技術(shù)直播分享、在技術(shù)峰會(huì)上發(fā)表演講以及公開源代碼等多種形式,全面而系統(tǒng)地傳播NetDevOps文化、技術(shù)、工具和解決方案,得到受眾廣泛認(rèn)可。
第 1章 Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化概述 11.1 Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化應(yīng)對(duì)新挑戰(zhàn) 11.1.1 云計(jì)算時(shí)代網(wǎng)絡(luò)行業(yè)的變遷 11.1.2 云計(jì)算時(shí)代網(wǎng)絡(luò)運(yùn)維的挑戰(zhàn) 21.1.3 Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化的興起 21.2 Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化的工具體系 31.2.1 數(shù)據(jù)工具集 31.2.2 網(wǎng)絡(luò)管理工具集 41.2.3 開源框架與系統(tǒng) 41.3 Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化實(shí)踐之路 51.3.1 循序漸進(jìn)地學(xué)習(xí)與實(shí)踐 51.3.2 有意識(shí)地培養(yǎng)數(shù)據(jù)意識(shí) 61.3.3 以場(chǎng)景為導(dǎo)向的實(shí)踐落地 61.4 小結(jié) 7第 2章 網(wǎng)絡(luò)工程師的Python基礎(chǔ) 82.1 開發(fā)環(huán)境搭建 82.1.1 Python版本選擇與安裝 82.1.2 PyCharm的安裝與設(shè)置 112.2 變量、縮進(jìn)與注釋 162.2.1 變量的定義與賦值 162.2.2 Python的縮進(jìn)控制 172.2.3 Python的兩種注釋方法 172.3 基礎(chǔ)數(shù)據(jù)類型 182.3.1 數(shù)字 182.3.2 字符串 192.3.3 列表 242.3.4 字典 262.3.5 布爾 282.3.6 元組 302.3.7 集合 302.3.8 數(shù)據(jù)類型的轉(zhuǎn)換 312.4 判斷與循環(huán) 322.4.1 if判斷 322.4.2 for循環(huán) 332.4.3 while循環(huán) 352.5 函數(shù)及其調(diào)用 352.5.1 函數(shù)的定義 362.5.2 函數(shù)的調(diào)用 372.6 Python進(jìn)階知識(shí) 382.6.1 類與面向?qū)ο?382.6.2 文本文件的讀寫操作 402.6.3 模塊與包 422.6.4 pip及第三方包的安裝 432.7 小結(jié) 44第3章 數(shù)據(jù)格式與數(shù)據(jù)建模語(yǔ)言 453.1 數(shù)據(jù)格式簡(jiǎn)介 453.2 JSON規(guī)范及其使用 453.2.1 JSON的規(guī)范 463.2.2 json模塊與JSON數(shù)據(jù)轉(zhuǎn)換 483.3 YAML規(guī)范及其使用 513.3.1 對(duì)象 513.3.2 數(shù)組 523.3.3 純量 533.3.4 多文檔的YAML數(shù)據(jù) 553.3.5 PyYAML包與YAML數(shù)據(jù)轉(zhuǎn)換 563.4 XML規(guī)范及其使用 573.4.1 元素、標(biāo)簽與屬性 583.4.2 列表數(shù)據(jù)的定義 593.4.3 命名空間 603.4.4 xmltodict包與XML數(shù)據(jù)轉(zhuǎn)換 613.5 表格數(shù)據(jù)與pandas 623.5.1 pandas簡(jiǎn)介與安裝 633.5.2 pandas從表格讀取數(shù)據(jù) 633.5.3 pandas寫入數(shù)據(jù)到表格 643.6 數(shù)據(jù)建模語(yǔ)言YANG 663.6.1 YANG模塊的結(jié)構(gòu) 663.6.2 YANG的基礎(chǔ)語(yǔ)法規(guī)范 673.6.3 pyang包圖形化解析YANG模型 703.7 小結(jié) 72第4章 網(wǎng)絡(luò)配置的結(jié)構(gòu)化數(shù)據(jù)提取 734.1 正則表達(dá)式的基礎(chǔ)知識(shí) 734.1.1 了解正則表達(dá)式 734.1.2 正則表達(dá)式的常用元字符 744.2 re模塊及其使用 754.2.1 search函數(shù)詳解 754.2.2 findall函數(shù)詳解 774.2.3 實(shí)戰(zhàn)1:search函數(shù)提取單條數(shù)據(jù) 784.2.4 實(shí)戰(zhàn)2:findall函數(shù)提取條形表數(shù)據(jù) 804.2.5 實(shí)戰(zhàn)3:findall與search函數(shù)結(jié)合提取塊狀表數(shù)據(jù) 824.3 配置解析引擎TextFSM 864.3.1 TextFSM簡(jiǎn)介 864.3.2 值語(yǔ)法詳解 874.3.3 狀態(tài)語(yǔ)法詳解 884.3.4 規(guī)則和動(dòng)作語(yǔ)法詳解 894.4 TextFSM模板實(shí)戰(zhàn)詳解 914.4.1 單條數(shù)據(jù)的提取 914.4.2 條形表數(shù)據(jù)的提取 924.4.3 在尾部進(jìn)行分割的塊狀表數(shù)據(jù)提取 944.4.4 在頭部進(jìn)行分割的塊狀表數(shù)據(jù)提取 954.4.5 列表類型的數(shù)據(jù)提取 974.4.6 缺失字段的向后填充 984.4.7 TextFSM模板庫(kù)ntc-templates 1004.5 小結(jié) 102第5章 網(wǎng)絡(luò)配置的模板化管理 1035.1 模板引擎Jinja2簡(jiǎn)介 1035.1.1 模板引擎的基本原理 1035.1.2 Jinja2簡(jiǎn)介 1045.2 Jinja2的基礎(chǔ)語(yǔ)法及其使用 1055.2.1 Jinja2的基礎(chǔ)語(yǔ)法 1055.2.2 文件系統(tǒng)管理配置模板 1095.2.3 過(guò)濾器的定義與使用 1105.2.4 原子模板的嵌套組合 1125.3 結(jié)構(gòu)化數(shù)據(jù)驅(qū)動(dòng)的Jinja2實(shí)戰(zhàn)詳解 1155.3.1 利用表格承載數(shù)據(jù)并批量生成網(wǎng)絡(luò)配置文件 1155.3.2 利用YAML文件承載數(shù)據(jù)并批量生成網(wǎng)絡(luò)配置文件 1175.4 小結(jié) 120第6章 Netmiko詳解與實(shí)戰(zhàn) 1216.1 Netmiko快速上手 1216.1.1 Netmiko簡(jiǎn)介及其使用 1216.1.2 Netmiko支持的網(wǎng)絡(luò)設(shè)備及device_type值的選擇 1236.2 Netmiko的核心API 1246.2.1 ConnectHandler函數(shù)詳解 1256.2.2 send_command詳解 1276.2.3 send_command_timing詳解 1316.2.4 send_config_set和send_config_from_file詳解 1346.3 基于Netmiko的網(wǎng)絡(luò)運(yùn)維自動(dòng)化實(shí)戰(zhàn) 1386.3.1 網(wǎng)絡(luò)設(shè)備的批量配置備份 1386.3.2 網(wǎng)絡(luò)設(shè)備的批量信息巡檢 1436.3.3 網(wǎng)絡(luò)設(shè)備的批量配置推送 1466.4 小結(jié) 148第7章 模型驅(qū)動(dòng)的新網(wǎng)絡(luò)管理方式及實(shí)踐 1497.1 新一代網(wǎng)絡(luò)管理協(xié)議的誕生 1497.1.1 CLI與SNMP的局限性 1497.1.2 NETCONF、RESTCONF協(xié)議與YANG建模語(yǔ)言的誕生 1507.2 NETCONF協(xié)議入門 1537.2.1 NETCONF協(xié)議的框架 1537.2.2 NETCONF協(xié)議的交互流程 1537.2.3 NETCONF協(xié)議的配置數(shù)據(jù)及常見(jiàn)配置操作 1577.3 基于ncclient的NETCONF配置操作 1587.3.1 ncclient簡(jiǎn)介 1597.3.2 get-config操作 1617.3.3 edit-config操作 1647.3.4 get操作 1677.3.5 解鎖更多的ncclient操作方法 1697.4 RESTCONF協(xié)議入門 1717.4.1 了解REST 1717.4.2 Postman簡(jiǎn)介及其安裝 1737.4.3 RESTCONF協(xié)議的認(rèn)證與資源導(dǎo)覽 1747.4.4 基于RESTCONF實(shí)現(xiàn)模型數(shù)據(jù)的查詢和更新 1757.5 小結(jié) 177第8章 網(wǎng)絡(luò)管理工具集 1788.1 IP地址管理工具包netaddr 1788.1.1 netaddr簡(jiǎn)介及基本使用 1788.1.2 網(wǎng)絡(luò)展開及包含關(guān)系計(jì)算 1818.1.3 網(wǎng)絡(luò)的劃分與合并 1828.2 HTTP請(qǐng)求工具包Requests 1848.2.1 Requests簡(jiǎn)介 1848.2.2 發(fā)送GET請(qǐng)求 1858.2.3 發(fā)送POST請(qǐng)求 1868.2.4 發(fā)送PUT、PATCH、DELETE請(qǐng)求 1878.2.5 HTTP請(qǐng)求的認(rèn)證及自定義認(rèn)證類 1888.3 網(wǎng)絡(luò)抽象工具包NAPALM 1908.3.1 NAPALM簡(jiǎn)介 1908.3.2 網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)化配置數(shù)據(jù)的獲取 1928.4 小結(jié) 194第9章 網(wǎng)絡(luò)自動(dòng)化框架Nornir 1959.1 Nornir簡(jiǎn)介 1959.1.1 Nornir介紹及安裝 1959.1.2 快速上手Nornir 1969.2 Nornir runbook的編寫 1989.2.1 網(wǎng)絡(luò)設(shè)備清單 1989.2.2 配置文件 2019.2.3 Nornir對(duì)象的創(chuàng)建 2029.2.4 使用過(guò)濾器篩選網(wǎng)絡(luò)設(shè)備 2039.2.5 task函數(shù)的定義及其調(diào)用 2069.2.6 runbook的執(zhí)行結(jié)果 2109.3 Nornir的常用插件包 2129.3.1 nornir_netmiko簡(jiǎn)介及其使用 2129.3.2 nornir_table_inventory簡(jiǎn)介及其使用 2169.3.3 nornir_utils簡(jiǎn)介及其使用 2199.4 基于Nornir的網(wǎng)絡(luò)運(yùn)維自動(dòng)化實(shí)戰(zhàn) 2209.4.1 網(wǎng)絡(luò)設(shè)備的批量配置備份 2209.4.2 網(wǎng)絡(luò)設(shè)備的批量信息巡檢 2229.4.3 網(wǎng)絡(luò)設(shè)備的批量配置推送 2239.5 小結(jié) 225第 10章 開源網(wǎng)管工具NetBox 22610.1 NetBox簡(jiǎn)介及安裝 22610.1.1 NetBox的特點(diǎn) 22610.1.2 基于Docker安裝NetBox 22710.2 NetBox的核心功能 22910.2.1 數(shù)據(jù)中心基礎(chǔ)設(shè)施管理 22910.2.2 IP地址管理 23510.3 NetBox的功能擴(kuò)展 23910.3.1 自定義字段custom_fields 23910.3.2 nornir_netbox插件對(duì)接NetBox系統(tǒng) 24010.3.3 開放的RESTful API體系 24210.4 小結(jié) 246