介紹了如何通過Python來自動完成伺服器的配置與管理,自動完成系統的管理任務(如使用者管理、資料庫管理和進程管理),以及完成這些工作所需的模組、 庫和工具。
此外,本書還講述了如何使用Python腳本自動執行測試,如何通過Python在雲基礎設施和虛擬機器上自動執行任務,如何使用基於 Python的安全工具自動完成與安全相關的任務。
本書適合運維人員和開發人員閱讀,也可作為相關專業人士的參考書。
作者介紹
Bassem Aly是Juniper Networks公司經驗豐富的SDN/NFV解決方案顧問,過去9年來一直在電信行業工作。他擅長使用不同的自動化工具以及DevOps框架設計和實現下一代自動化解決方案。此外,他在使用OpenStack構建和部署電信應用程式方面擁有豐富的經驗,同時他還負責網路自動化和網路程式設計方面的企業培訓。
目錄
第1章 搭建Python環境 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 調試代碼 13
1.3.2 重構代碼 14
1.3.3 從GUI安裝包 16
1.4 小結 17
第2章 常用的自動化庫 18
2.1 Python包 19
2.2 常用Python庫 20
2.2.1 與網路相關的Python庫 21
2.2.2 與系統和雲相關的Python庫 22
2.3 查看模組原始程式碼 23
2.4 小結 28
第3章 搭建網路實驗室環境 29
3.1 技術要求 30
3.2 需要自動化網路的時間和原因 30
3.3 自動化的兩種方式——螢幕抓取與API 31
3.4 使用Python進行網路自動化的原因 31
3.5 網路自動化的未來 33
3.6 搭建網路實驗室 34
3.7 準備工作——安裝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中載入網路鏡像 43
3.8 創建企業網路拓撲 43
3.8.1 添加新節點 44
3.8.2 連接節點 45
3.9 小結 47
第4章 使用Python管理網路設備 48
4.1 技術要求 49
4.1.1 Python和SSH 49
4.1.2 Paramiko模組 50
4.1.3 netmiko模組 52
4.2 在Python中使用Telnet協定 59
4.3 使用netaddr處理IP位址和網路 64
4.3.1 安裝netaddr 65
4.3.2 使用netaddr的方法 65
4.4 簡單的用例 67
4.4.1 備份設備配置 68
4.4.2 創建訪問終端 70
4.4.3 從Excel工作表中讀取資料 72
4.4.4 其他用例 75
4.5 小結 75
第5章 從網路設備中提取資料 76
5.1 技術要求 77
5.2 解譯器 77
5.3 規則運算式 78
5.4 使用CiscoConfParse庫校驗配置 86
5.4.1 CiscoConfParse庫 86
5.4.2 支持的供應商 87
5.4.3 安裝CiscoConfParse庫 88
5.4.4 使用CiscoConfParse庫 88
5.5 使用Matplotlib庫視覺化返回的資料 91
5.5.1 安裝Matplotlib庫 91
5.5.2 使用Matplotlib庫 92
5.5.3 使用Matplotlib庫視覺化SNMP 94
5.6 小結 96
第6章 使用Python和Jinja2配置生成器 97
6.1 YAML簡介 98
6.2 使用Jinja2建立配置範本 102
6.2.1 從檔案系統中讀取範本 109
6.2.2 在Jinja2中使用迴圈和條件 111
6.3 小結 119
第7章 並存執行Python腳本 120
7.1 Python腳本在電腦中運行的方式 121
7.2 multiprocessing庫 123
7.2.1 開始使用multiprocessing庫 123
7.2.2 進程間的相互通信 126
7.3 小結 127
第8章 準備實驗室環境 128
8.1 獲取Linux作業系統 129
8.1.1 下載CentOS 129
8.1.2 下載Ubuntu 130
8.2 在虛擬機器管理程式上創建自動化虛擬機器 131
8.2.1 在VMware ESXi上創建Linux虛擬機器 131
8.2.2 使用KVM創建Linux虛擬機器 135
8.3 開始使用Cobbler 139
8.3.1 Cobbler的工作原理 139
8.3.2 在自動化伺服器上安裝Cobbler 141
8.3.3 通過Cobbler檢查伺服器硬體 144
8.4 小結 149
第9章 使用subprocess庫 150
9.1 subprocess庫中的Popen() 151
9.2 stdin、stdout和stderr 154
9.3 subprocess庫中的call()函數 156
9.4 小結 157
第10章 使用Fabric運行系統管理任務 158
10.1 技術要求 159
10.2 Fabric庫 159
10.2.1 安裝Fabric庫 160
10.2.2 Fabric庫中的操作 161
10.3 運行第 一個Fabric檔 164
10.3.1 有關fab工具的更多資訊 167
10.3.2 使用Fabric檢查系統健康狀態 168
10.4 其他有用的Fabric特性 173
10.4.1 Fabric角色 173
10.4.2 Fabric上下文管理器 175
10.5 小結 176
第11章 生成系統報告和監控系統 177
11.1 從Linux系統中收集資料 178
11.1.1 通過郵件發送收集的資料 183
11.1.2 使用time和date模組 186
11.1.3 定期運行腳本 187
11.2 在Ansible中管理用戶 188
11.2.1 在Linux系統中通過Ansible管理使用者 188
11.2.2 在Windows系統中通過Ansible管理使用者 190
11.3 小結 190
第12章 與資料庫交互 191
12.1 在自動化伺服器上安裝MySQL 192
12.1.1 安裝後的安全問題 193
12.1.2 驗證資料庫的安裝 194
12.2 從Python中訪問MySQL資料庫 195
12.2.1 查詢資料庫 197
12.2.2 向資料庫中插入資料 198
12.3 小結 201
第13章 使用Ansible管理系統 202
13.1 Ansible術語 203
13.2 在Linux系統上安裝Ansible 205
13.2.1 在RHEL系統和CentOS上安裝Ansible 205
13.2.2 在Ubuntu系統上安裝Ansible 205
13.3 在即席模式下使用Ansible 206
13.4 創建第 一個playbook 210
13.5 Ansible的條件、處理常式和迴圈 212
13.5.1 設計條件 213
13.5.2 在Ansible中創建迴圈 215
13.5.3 使用處理常式觸發任務 216
13.6 使用事實資料 218
13.7 使用Ansible範本 219
13.8 小結 221
第14章 創建和管理VMware虛擬機器 222
14.1 設置環境 223
14.2 使用Jinja2生成VMX檔 225
14.2.1 創建VMX範本 226
14.2.2 處理Excel工作表中的資料 229
14.2.3 生成VMX檔 231
14.3 VMware Python用戶端 238
14.3.1 安裝PyVmomi庫 239
14.3.2 使用PyVmomi庫的第 一步 240
14.3.3 更改虛擬機器的狀態 244
14.3.4 更多內容 246
14.4 使用playbook管理實例 246
14.5 小結 249
第15章 和OpenStack API交互 250
15.1 RESTful Web服務 251
15.2 設置環境 253
15.2.1 安裝rdo-OpenStack包 253
15.2.2 生成answer檔 254
15.2.3 編輯answer檔 254
15.2.4 運行packstack 255
15.2.5 訪問OpenStack GUI 255
15.3 向OpenStack keystone發送請求 256
15.4 用Python創建實例 259
15.4.1 創建鏡像 259
15.4.2 分配類型範本 261
15.4.3 創建網路和子網 262
15.4.4 啟動實例 265
15.5 使用Ansible管理OpenStack實例 266
15.5.1 Shade和Ansible的安裝 266
15.5.2 創建Ansible playbook 267
15.6 小結 270
第16章 使用Python和Boto3自動化AWS 271
16.1 AWS Python模組 272
16.2 管理AWS實例 274
16.3 自動化AWS S3服務 277
16.3.1 創建存儲桶 277
16.3.2 上傳檔到存儲桶 278
16.3.3 刪除存儲桶 278
16.4 小結 279
第17章 使用Scapy框架 280
17.1 Scapy 281
17.2 安裝Scapy 282
17.2.1 在基於UNIX的系統上安裝Scapy 282
17.2.2 Windows系統和macOS對Scapy的支援情況 283
17.3 使用Scapy生成報文和網路流 283
17.4 抓取和重播報文 288
17.4.1 向報文注入數據 290
17.4.2 報文嗅探 292
17.4.3 將報文寫入pcap文件 294
17.5 小結 294
第18章 使用Python編寫網路掃描程式 295
18.1 網路掃描程式 296
18.2 使用Python編寫網路掃描程式 296
18.2.1 增加功能 297
18.2.2 掃描服務 300
18.3 在GitHub上共用代碼 303
18.3.1 創建GitHub帳戶 304
18.3.2 創建和推送代碼 304
18.4 小結 310
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 調試代碼 13
1.3.2 重構代碼 14
1.3.3 從GUI安裝包 16
1.4 小結 17
第2章 常用的自動化庫 18
2.1 Python包 19
2.2 常用Python庫 20
2.2.1 與網路相關的Python庫 21
2.2.2 與系統和雲相關的Python庫 22
2.3 查看模組原始程式碼 23
2.4 小結 28
第3章 搭建網路實驗室環境 29
3.1 技術要求 30
3.2 需要自動化網路的時間和原因 30
3.3 自動化的兩種方式——螢幕抓取與API 31
3.4 使用Python進行網路自動化的原因 31
3.5 網路自動化的未來 33
3.6 搭建網路實驗室 34
3.7 準備工作——安裝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中載入網路鏡像 43
3.8 創建企業網路拓撲 43
3.8.1 添加新節點 44
3.8.2 連接節點 45
3.9 小結 47
第4章 使用Python管理網路設備 48
4.1 技術要求 49
4.1.1 Python和SSH 49
4.1.2 Paramiko模組 50
4.1.3 netmiko模組 52
4.2 在Python中使用Telnet協定 59
4.3 使用netaddr處理IP位址和網路 64
4.3.1 安裝netaddr 65
4.3.2 使用netaddr的方法 65
4.4 簡單的用例 67
4.4.1 備份設備配置 68
4.4.2 創建訪問終端 70
4.4.3 從Excel工作表中讀取資料 72
4.4.4 其他用例 75
4.5 小結 75
第5章 從網路設備中提取資料 76
5.1 技術要求 77
5.2 解譯器 77
5.3 規則運算式 78
5.4 使用CiscoConfParse庫校驗配置 86
5.4.1 CiscoConfParse庫 86
5.4.2 支持的供應商 87
5.4.3 安裝CiscoConfParse庫 88
5.4.4 使用CiscoConfParse庫 88
5.5 使用Matplotlib庫視覺化返回的資料 91
5.5.1 安裝Matplotlib庫 91
5.5.2 使用Matplotlib庫 92
5.5.3 使用Matplotlib庫視覺化SNMP 94
5.6 小結 96
第6章 使用Python和Jinja2配置生成器 97
6.1 YAML簡介 98
6.2 使用Jinja2建立配置範本 102
6.2.1 從檔案系統中讀取範本 109
6.2.2 在Jinja2中使用迴圈和條件 111
6.3 小結 119
第7章 並存執行Python腳本 120
7.1 Python腳本在電腦中運行的方式 121
7.2 multiprocessing庫 123
7.2.1 開始使用multiprocessing庫 123
7.2.2 進程間的相互通信 126
7.3 小結 127
第8章 準備實驗室環境 128
8.1 獲取Linux作業系統 129
8.1.1 下載CentOS 129
8.1.2 下載Ubuntu 130
8.2 在虛擬機器管理程式上創建自動化虛擬機器 131
8.2.1 在VMware ESXi上創建Linux虛擬機器 131
8.2.2 使用KVM創建Linux虛擬機器 135
8.3 開始使用Cobbler 139
8.3.1 Cobbler的工作原理 139
8.3.2 在自動化伺服器上安裝Cobbler 141
8.3.3 通過Cobbler檢查伺服器硬體 144
8.4 小結 149
第9章 使用subprocess庫 150
9.1 subprocess庫中的Popen() 151
9.2 stdin、stdout和stderr 154
9.3 subprocess庫中的call()函數 156
9.4 小結 157
第10章 使用Fabric運行系統管理任務 158
10.1 技術要求 159
10.2 Fabric庫 159
10.2.1 安裝Fabric庫 160
10.2.2 Fabric庫中的操作 161
10.3 運行第 一個Fabric檔 164
10.3.1 有關fab工具的更多資訊 167
10.3.2 使用Fabric檢查系統健康狀態 168
10.4 其他有用的Fabric特性 173
10.4.1 Fabric角色 173
10.4.2 Fabric上下文管理器 175
10.5 小結 176
第11章 生成系統報告和監控系統 177
11.1 從Linux系統中收集資料 178
11.1.1 通過郵件發送收集的資料 183
11.1.2 使用time和date模組 186
11.1.3 定期運行腳本 187
11.2 在Ansible中管理用戶 188
11.2.1 在Linux系統中通過Ansible管理使用者 188
11.2.2 在Windows系統中通過Ansible管理使用者 190
11.3 小結 190
第12章 與資料庫交互 191
12.1 在自動化伺服器上安裝MySQL 192
12.1.1 安裝後的安全問題 193
12.1.2 驗證資料庫的安裝 194
12.2 從Python中訪問MySQL資料庫 195
12.2.1 查詢資料庫 197
12.2.2 向資料庫中插入資料 198
12.3 小結 201
第13章 使用Ansible管理系統 202
13.1 Ansible術語 203
13.2 在Linux系統上安裝Ansible 205
13.2.1 在RHEL系統和CentOS上安裝Ansible 205
13.2.2 在Ubuntu系統上安裝Ansible 205
13.3 在即席模式下使用Ansible 206
13.4 創建第 一個playbook 210
13.5 Ansible的條件、處理常式和迴圈 212
13.5.1 設計條件 213
13.5.2 在Ansible中創建迴圈 215
13.5.3 使用處理常式觸發任務 216
13.6 使用事實資料 218
13.7 使用Ansible範本 219
13.8 小結 221
第14章 創建和管理VMware虛擬機器 222
14.1 設置環境 223
14.2 使用Jinja2生成VMX檔 225
14.2.1 創建VMX範本 226
14.2.2 處理Excel工作表中的資料 229
14.2.3 生成VMX檔 231
14.3 VMware Python用戶端 238
14.3.1 安裝PyVmomi庫 239
14.3.2 使用PyVmomi庫的第 一步 240
14.3.3 更改虛擬機器的狀態 244
14.3.4 更多內容 246
14.4 使用playbook管理實例 246
14.5 小結 249
第15章 和OpenStack API交互 250
15.1 RESTful Web服務 251
15.2 設置環境 253
15.2.1 安裝rdo-OpenStack包 253
15.2.2 生成answer檔 254
15.2.3 編輯answer檔 254
15.2.4 運行packstack 255
15.2.5 訪問OpenStack GUI 255
15.3 向OpenStack keystone發送請求 256
15.4 用Python創建實例 259
15.4.1 創建鏡像 259
15.4.2 分配類型範本 261
15.4.3 創建網路和子網 262
15.4.4 啟動實例 265
15.5 使用Ansible管理OpenStack實例 266
15.5.1 Shade和Ansible的安裝 266
15.5.2 創建Ansible playbook 267
15.6 小結 270
第16章 使用Python和Boto3自動化AWS 271
16.1 AWS Python模組 272
16.2 管理AWS實例 274
16.3 自動化AWS S3服務 277
16.3.1 創建存儲桶 277
16.3.2 上傳檔到存儲桶 278
16.3.3 刪除存儲桶 278
16.4 小結 279
第17章 使用Scapy框架 280
17.1 Scapy 281
17.2 安裝Scapy 282
17.2.1 在基於UNIX的系統上安裝Scapy 282
17.2.2 Windows系統和macOS對Scapy的支援情況 283
17.3 使用Scapy生成報文和網路流 283
17.4 抓取和重播報文 288
17.4.1 向報文注入數據 290
17.4.2 報文嗅探 292
17.4.3 將報文寫入pcap文件 294
17.5 小結 294
第18章 使用Python編寫網路掃描程式 295
18.1 網路掃描程式 296
18.2 使用Python編寫網路掃描程式 296
18.2.1 增加功能 297
18.2.2 掃描服務 300
18.3 在GitHub上共用代碼 303
18.3.1 創建GitHub帳戶 304
18.3.2 創建和推送代碼 304
18.4 小結 310
網路書店
類別
折扣
價格
-
新書87折$412