Python 自動化運維實戰 (Hands-On Enterprise Automation with Python: Automate common administrative and security tasks with the most popular language Python)

[美] 巴塞姆· 阿利(Bassem Aly)

  • Python 自動化運維實戰 (Hands-On Enterprise Automation with Python: Automate common administrative and security tasks with the most popular language Python)-preview-1
  • Python 自動化運維實戰 (Hands-On Enterprise Automation with Python: Automate common administrative and security tasks with the most popular language Python)-preview-2
Python 自動化運維實戰 (Hands-On Enterprise Automation with Python: Automate common administrative and security tasks with the most popular language Python)-preview-1

買這商品的人也買了...

商品描述

本書介紹瞭如何通過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小結9
  
第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