Python自動化運(yùn)維實(shí)戰(zhàn)
定 價(jià):79 元
- 作者:[美] 巴塞姆· 阿利(Bassem Aly)
- 出版時(shí)間:2020/4/1
- ISBN:9787115530189
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:310
- 紙張:
- 版次:01
- 開本:16開
《Python自動化運(yùn)維實(shí)戰(zhàn)》介紹了如何通過Python來自動完成服務(wù)器的配置與管理,自動完成系統(tǒng)的管理任務(wù)(如用戶管理、數(shù)據(jù)庫管理和進(jìn)程管理),以及完成這些工作所需的模塊、庫和工具。此外,本書還講述了如何使用Python腳本自動執(zhí)行測試,如何通過Python在云基礎(chǔ)設(shè)施和虛擬機(jī)上自動執(zhí)行任務(wù),如何使用基于Python的安全工具自動完成與安全相關(guān)的任務(wù)。
本書適合運(yùn)維人員和開發(fā)人員閱讀,也可作為相關(guān)專業(yè)人士的參考書。
本書旨在講述通過Python簡化運(yùn)維、提升運(yùn)維效率的方法和實(shí)踐。
本書首先介紹如何開發(fā)Python程序 、創(chuàng)建Python模塊,然后講述如何使用Python工具獲取重要的輸出信息、生成通用的配置模板、自動安裝操作系統(tǒng)、配置大量服務(wù)器,最后討論如何創(chuàng)建和管理虛擬機(jī),如何利用OpenStack、VMware、AWS自動執(zhí)行管理任務(wù)等。
通過本書,你將掌握用Python實(shí)現(xiàn)自動化運(yùn)維的各種方法和技巧。
本書主要內(nèi)容:
·Python中常用模塊的用法;
·通過Python腳本管理網(wǎng)絡(luò)設(shè)備的方法;
·使用Ansible和Fabric自動執(zhí)行常見的Linux管理任務(wù)的方法;
·管理Linux進(jìn)程的方法;
·使用Python管理VMware、OpenStack和AWS實(shí)例的方法;
·基于Python的安全工具的用法。
Bassem Aly是Juniper Networks公司經(jīng)驗(yàn)豐富的SDN/NFV解決方案顧問,過去9年來一直在電信行業(yè)工作。他擅長使用不同的自動化工具以及DevOps框架設(shè)計(jì)和實(shí)現(xiàn)下一代自動化解決方案。此外,他在使用OpenStack構(gòu)建和部署電信應(yīng)用程序方面擁有豐富的經(jīng)驗(yàn),同時(shí)他還負(fù)責(zé)網(wǎng)絡(luò)自動化和網(wǎng)絡(luò)編程方面的企業(yè)培訓(xùn)。
第 1章 搭建Python環(huán)境 1
1.1 Python簡介 2
1.1.1 Python版本 3
1.1.2 安裝Python 4
1.2 安裝PyCharm IDE 6
1.3 PyCharm的高級功能 12
1.3.1 調(diào)試代碼 13
1.3.2 重構(gòu)代碼 14
1.3.3 從GUI安裝包 16
1.4 小結(jié) 17
第 2章 常用的自動化庫 18
2.1 Python包 19
2.2 常用Python庫 20
2.2.1 與網(wǎng)絡(luò)相關(guān)的Python庫 21
2.2.2 與系統(tǒng)和云相關(guān)的Python庫 22
2.3 查看模塊源代碼 23
2.4 小結(jié) 28
第3章 搭建網(wǎng)絡(luò)實(shí)驗(yàn)室環(huán)境 29
3.1 技術(shù)要求 30
3.2 需要自動化網(wǎng)絡(luò)的時(shí)間和原因 30
3.3 自動化的兩種方式——屏幕抓取與API 31
3.4 使用Python進(jìn)行網(wǎng)絡(luò)自動化的原因 31
3.5 網(wǎng)絡(luò)自動化的未來 33
3.6 搭建網(wǎng)絡(luò)實(shí)驗(yàn)室 34
3.7 準(zhǔn)備工作——安裝EVE-NG 34
3.7.1 在VMware Workstation上安裝 35
3.7.2 通過VMware ESXi安裝 36
3.7.3 通過Red Hat KVM安裝 38
3.7.4 訪問EVE-NG 39
3.7.5 安裝EVE-NG客戶端工具包 42
3.7.6 在EVE-NG中加載網(wǎng)絡(luò)鏡像 43
3.8 創(chuàng)建企業(yè)網(wǎng)絡(luò)拓?fù)?43
3.8.1 添加新節(jié)點(diǎn) 44
3.8.2 連接節(jié)點(diǎn) 45
3.9 小結(jié) 47
第4章 使用Python管理網(wǎng)絡(luò)設(shè)備 48
4.1 技術(shù)要求 49
4.1.1 Python和SSH 49
4.1.2 Paramiko模塊 50
4.1.3 netmiko模塊 52
4.2 在Python中使用Telnet協(xié)議 59
4.3 使用netaddr處理IP地址和網(wǎng)絡(luò) 64
4.3.1 安裝netaddr 65
4.3.2 使用netaddr的方法 65
4.4 簡單的用例 67
4.4.1 備份設(shè)備配置 68
4.4.2 創(chuàng)建訪問終端 70
4.4.3 從Excel工作表中讀取數(shù)據(jù) 72
4.4.4 其他用例 75
4.5 小結(jié) 75
第5章 從網(wǎng)絡(luò)設(shè)備中提取數(shù)據(jù) 76
5.1 技術(shù)要求 77
5.2 解釋器 77
5.3 正則表達(dá)式 78
5.4 使用CiscoConfParse庫校驗(yàn)配置 86
5.4.1 CiscoConfParse庫 86
5.4.2 支持的供應(yīng)商 87
5.4.3 安裝CiscoConfParse庫 88
5.4.4 使用CiscoConfParse庫 88
5.5 使用Matplotlib庫可視化返回的數(shù)據(jù) 91
5.5.1 安裝Matplotlib庫 91
5.5.2 使用Matplotlib庫 92
5.5.3 使用Matplotlib庫可視化SNMP 94
5.6 小結(jié) 96
第6章 使用Python和Jinja2配置生成器 97
6.1 YAML簡介 98
6.2 使用Jinja2建立配置模板 102
6.2.1 從文件系統(tǒng)中讀取模板 109
6.2.2 在Jinja2中使用循環(huán)和條件 111
6.3 小結(jié) 119
第7章 并行執(zhí)行Python腳本 120
7.1 Python腳本在計(jì)算機(jī)中運(yùn)行的方式 121
7.2 multiprocessing庫 123
7.2.1 開始使用multiprocessing庫 123
7.2.2 進(jìn)程間的相互通信 126
7.3 小結(jié) 127
第8章 準(zhǔn)備實(shí)驗(yàn)室環(huán)境 128
8.1 獲取Linux操作系統(tǒng) 129
8.1.1 下載CentOS 129
8.1.2 下載Ubuntu 130
8.2 在虛擬機(jī)管理程序上創(chuàng)建自動化虛擬機(jī) 131
8.2.1 在VMware ESXi上創(chuàng)建Linux虛擬機(jī) 131
8.2.2 使用KVM創(chuàng)建Linux虛擬機(jī) 135
8.3 開始使用Cobbler 139
8.3.1 Cobbler的工作原理 139
8.3.2 在自動化服務(wù)器上安裝Cobbler 141
8.3.3 通過Cobbler檢查服務(wù)器硬件 144
8.4 小結(jié) 149
第9章 使用subprocess庫 150
9.1 subprocess庫中的Popen() 151
9.2 stdin、stdout和stderr 154
9.3 subprocess庫中的call()函數(shù) 156
9.4 小結(jié) 157
第 10章 使用Fabric運(yùn)行系統(tǒng)管理任務(wù) 158
10.1 技術(shù)要求 159
10.2 Fabric庫 159
10.2.1 安裝Fabric庫 160
10.2.2 Fabric庫中的操作 161
10.3 運(yùn)行第 一個(gè)Fabric文件 164
10.3.1 有關(guān)fab工具的更多信息 167
10.3.2 使用Fabric檢查系統(tǒng)健康狀態(tài) 168
10.4 其他有用的Fabric特性 173
10.4.1 Fabric角色 173
10.4.2 Fabric上下文管理器 175
10.5 小結(jié) 176
第 11章 生成系統(tǒng)報(bào)告和監(jiān)控系統(tǒng) 177
11.1 從Linux系統(tǒng)中收集數(shù)據(jù) 178
11.1.1 通過郵件發(fā)送收集的數(shù)據(jù) 183
11.1.2 使用time和date模塊 186
11.1.3 定期運(yùn)行腳本 187
11.2 在Ansible中管理用戶 188
11.2.1 在Linux系統(tǒng)中通過Ansible管理用戶 188
11.2.2 在Windows系統(tǒng)中通過Ansible管理用戶 190
11.3 小結(jié) 190
第 12章 與數(shù)據(jù)庫交互 191
12.1 在自動化服務(wù)器上安裝MySQL 192
12.1.1 安裝后的安全問題 193
12.1.2 驗(yàn)證數(shù)據(jù)庫的安裝 194
12.2 從Python中訪問MySQL數(shù)據(jù)庫 195
12.2.1 查詢數(shù)據(jù)庫 197
12.2.2 向數(shù)據(jù)庫中插入數(shù)據(jù) 198
12.3 小結(jié) 201
第 13章 使用Ansible管理系統(tǒng) 202
13.1 Ansible術(shù)語 203
13.2 在Linux系統(tǒng)上安裝Ansible 205
13.2.1 在RHEL系統(tǒng)和CentOS上安裝Ansible 205
13.2.2 在Ubuntu系統(tǒng)上安裝Ansible 205
13.3 在即席模式下使用Ansible 206
13.4 創(chuàng)建第 一個(gè)playbook 210
13.5 Ansible的條件、處理程序和循環(huán) 212
13.5.1 設(shè)計(jì)條件 213
13.5.2 在Ansible中創(chuàng)建循環(huán) 215
13.5.3 使用處理程序觸發(fā)任務(wù) 216
13.6 使用事實(shí)數(shù)據(jù) 218
13.7 使用Ansible模板 219
13.8 小結(jié) 221
第 14章 創(chuàng)建和管理VMware虛擬機(jī) 222
14.1 設(shè)置環(huán)境 223
14.2 使用Jinja2生成VMX文件 225
14.2.1 創(chuàng)建VMX模板 226
14.2.2 處理Excel工作表中的數(shù)據(jù) 229
14.2.3 生成VMX文件 231
14.3 VMware Python客戶端 238
14.3.1 安裝PyVmomi庫 239
14.3.2 使用PyVmomi庫的第 一步 240
14.3.3 更改虛擬機(jī)的狀態(tài) 244
14.3.4 更多內(nèi)容 246
14.4 使用playbook管理實(shí)例 246
14.5 小結(jié) 249
第 15章 和OpenStack API交互 250
15.1 RESTful Web服務(wù) 251
15.2 設(shè)置環(huán)境 253
15.2.1 安裝rdo-OpenStack包 253
15.2.2 生成answer文件 254
15.2.3 編輯answer文件 254
15.2.4 運(yùn)行packstack 255
15.2.5 訪問OpenStack GUI 255
15.3 向OpenStack keystone發(fā)送請求 256
15.4 用Python創(chuàng)建實(shí)例 259
15.4.1 創(chuàng)建鏡像 259
15.4.2 分配類型模板 261
15.4.3 創(chuàng)建網(wǎng)絡(luò)和子網(wǎng) 262
15.4.4 啟動實(shí)例 265
15.5 使用Ansible管理OpenStack實(shí)例 266
15.5.1 Shade和Ansible的安裝 266
15.5.2 創(chuàng)建Ansible
playbook 267
15.6 小結(jié) 270
第 16章 使用Python和Boto3自動化AWS 271
16.1 AWS Python模塊 272
16.2 管理AWS實(shí)例 274
16.3 自動化AWS S3服務(wù) 277
16.3.1 創(chuàng)建存儲桶 277
16.3.2 上傳文件到存儲桶 278
16.3.3 刪除存儲桶 278
16.4 小結(jié) 279
第 17章 使用Scapy框架 280
17.1 Scapy 281
17.2 安裝Scapy 282
17.2.1 在基于UNIX的系統(tǒng)上安裝Scapy 282
17.2.2 Windows系統(tǒng)和macOS對Scapy的支持情況 283
17.3 使用Scapy生成報(bào)文和網(wǎng)絡(luò)流 283
17.4 抓取和重播報(bào)文 288
17.4.1 向報(bào)文注入數(shù)據(jù) 290
17.4.2 報(bào)文嗅探 292
17.4.3 將報(bào)文寫入pcap文件 294
17.5 小結(jié) 294
第 18章 使用Python編寫網(wǎng)絡(luò)掃描程序 295
18.1 網(wǎng)絡(luò)掃描程序 296
18.2 使用Python編寫網(wǎng)絡(luò)掃描程序 296
18.2.1 增加功能 297
18.2.2 掃描服務(wù) 300
18.3 在GitHub上共享代碼 303
18.3.1 創(chuàng)建GitHub賬戶 304
18.3.2 創(chuàng)建和推送代碼 304
18.4 小結(jié) 310