天天看點

python自動化運維–技術與最佳實踐_《Python 自動化運維:技術與最佳實踐》

第一部分 基礎篇

第1章 系統基礎資訊子產品詳解 2

1.1 系統性能資訊子產品psutil 2

1.1.1 擷取系統性能資訊 3

1.1.2 系統程序管理方法 6

1.2 實用的IP位址處理子產品IPy 7

1.2.1 IP位址、網段的基本處理 8

1.2.2 多網絡計算方法詳解 9

1.3 DNS處理子產品dnspython 11

1.3.1 子產品域名解析方法詳解 11

1.3.2 常見解析類型示例說明 12

1.3.3 實踐:DNS域名輪循業務監控 14

第2章 業務服務監控詳解 17

2.1 檔案内容差異對比方法 17

2.1.1 示例1:兩個字元串的差異對比 17

2.1.2 生成美觀的對比HTML格式文檔 19

2.1.3 示例2:對比Nginx配置檔案差異 19

2.2 檔案與目錄差異對比方法 21

2.2.1 子產品常用方法說明 21

2.2.2 實踐:校驗源與備份目錄差異 25

2.3 發送電子郵件子產品smtplib 27

2.3.1 smtplib子產品的常用類與方法 27

2.3.2 定制個性化的郵件格式方法 28

2.3.3 定制常用郵件格式示例詳解 29

2.4 探測Web服務品質方法 34

2.4.1 子產品常用方法說明 35

2.4.2 實踐:實作探測Web服務品質 36

第3章 定制業務品質報表詳解 39

3.1 資料報表之Excel操作子產品 39

3.1.1 子產品常用方法說明 41

3.1.2 實踐:定制自動化業務流量報表周報 48

3.2 Python與rrdtool的結合子產品 50

3.2.1 rrdtool子產品常用方法說明 51

3.2.2 實踐:實作網卡流量圖表繪制 53

3.3 生成動态路由軌迹圖 56

3.3.1 子產品常用方法說明 56

3.3.2 實踐:實作TCP探測目标服務路由軌迹 57

第4章 Python與系統安全 60

4.1 建構集中式的病毒掃描機制 60

4.1.1 子產品常用方法說明 61

4.1.2 實踐:實作集中式的病毒掃描 61

4.2 實作高效的端口掃描器 64

4.2.1 子產品常用方法說明 64

4.2.2 實踐:實作高效的端口掃描 66

第二部分 進階篇

第5章 系統批量運維管理器pexpect詳解 70

5.1 pexpect的安裝 70

5.2 pexpect的核心元件 71

5.2.1 spawn類 71

5.2.2 run函數 74

5.2.3 pxssh類 75

5.3 pexpect應用示例 76

5.3.1 實作一個自動化FTP操作 76

5.3.2 遠端檔案自動打包并下載下傳 77

第6章 系統批量運維管理器paramiko詳解 79

6.1 paramiko的安裝 79

6.2 paramiko的核心元件 81

6.2.1 SSHClient類 81

6.2.2 SFTPClient類 82

6.3 paramiko應用示例 85

6.3.1 實作密鑰方式登入遠端主機 85

6.3.2 實作堡壘機模式下的遠端指令執行 85

6.3.3 實作堡壘機模式下的遠端檔案上傳 88

第7章 系統批量運維管理器Fabric詳解 91

7.1 Fabric的安裝 91

7.2 fab的常用參數 92

7.3 fabfile的編寫 93

7.3.1 全局屬性設定 93

7.3.2 常用API 94

7.3.3 示例1:檢視本地與遠端主機資訊 95

7.3.4 示例2:動态擷取遠端目錄清單 96

7.3.5 示例3:網關模式檔案上傳與執行 97

7.4 Fabric應用示例 98

7.4.1 示例1:檔案打包、上傳與校驗 98

7.4.2 示例2:部署LNMP業務服務環境 99

7.4.3 示例3:生産環境代碼包釋出管理 101

第8章 從“零”開發一個輕量級WebServer 104

8.1 Yorserver介紹 104

8.1.1 功能特點 104

8.1.2 配置檔案 105

8.2 功能實作方法 106

8.2.1 HTTP緩存功能 107

8.2.2 HTTP壓縮功能 111

8.2.3 HTTP SSL功能 111

8.2.4 目錄清單功能 114

8.2.5 動态CGI功能 114

第9章 集中化管理平台Ansible詳解 118

9.1 YAML語言 119

9.1.1 塊序列描述 120

9.1.2 塊映射描述 120

9.2 Ansible的安裝 121

9.2.1 業務環境說明 121

9.2.2 安裝EPEL 122

9.2.3 安裝Ansible 122

9.2.4 Ansible配置及測試 122

9.2.5 配置Linux主機SSH無密碼通路 123

9.3 定義主機與組規則 124

9.3.1 定義主機與組 124

9.3.2 定義主機變量 125

9.3.3 定義組變量 125

9.3.4 分離主機與組特定資料 126

9.4 比對目标 127

9.5 Ansible常用子產品及API 127

9.6 playbook介紹 132

9.6.1 定義主機與使用者 132

9.6.2 任務清單 133

9.6.3 執行playbook 134

9.7 playbook角色與包含聲明 135

9.7.1 包含檔案,鼓勵複用 135

9.7.2 角色 136

9.8 擷取遠端主機系統資訊:Facts 141

9.9 變量 142

9.9.1 Jinja2過濾器 143

9.9.2 本地Facts 143

9.9.3 注冊變量 144

9.10 條件語句 145

9.11 循環 146

9.12 示例講解 147

第10章 集中化管理平台Saltstack詳解 155

10.1 Saltstack的安裝 156

10.1.1 業務環境說明 156

10.1.2 安裝EPEL 156

10.1.3 安裝Saltstack 156

10.1.4 Saltstack防火牆配置 157

10.1.5 更新Saltstack配置及安裝校驗 157

10.2 利用Saltstack遠端執行指令 158

10.3 Saltstack常用子產品及API 161

10.4 grains元件 166

10.4.1 grains常用操作指令 167

10.4.2 定義grains資料 167

10.5 pillar元件 170

10.5.1 pillar的定義 171

10.5.2 pillar的使用 173

10.6 state介紹 174

10.6.1 state的定義 174

10.6.2 state的使用 175

10.7 示例:基于Saltstack實作的配置集中化管理 177

10.7.1 環境說明 177

10.7.2 主要端配置說明 177

10.7.3 配置pillar 179

10.7.4 配置state 180

10.7.5 校驗結果 183

第11章 統一網絡控制器Func詳解 185

11.1 Func的安裝 186

11.1.1 業務環境說明 186

11.1.2 安裝Func 186

11.2 Func常用子產品及API 189

11.2.1 選擇目标主機 190

11.2.2 常用子產品詳解 190

11.3 自定義Func子產品 194

11.4 非Python API接口支援 198

11.5 Func的Facts支援 199

第12章 Python大資料應用詳解 202

12.1 環境說明 202

12.2 Hadoop部署 203

12.3 使用Python編寫MapReduce 207

12.3.1 用原生Python編寫MapReduce詳解 208

12.3.2 用Mrjob架構編寫MapReduce詳解 212

12.4 實戰分析 216

12.4.1 示例場景 216

12.4.2 網站通路流量統計 217

12.4.3 網站HTTP狀态碼統計 219

12.4.4 網站分鐘級請求數統計 220

12.4.5 網站通路來源IP統計 221

12.4.6 網站檔案通路統計 222

第三部分 案例篇

第13章 從零開始打造B/S自動化運維平台 226

13.1 平台功能介紹 226

13.2 系統構架設計 227

13.3 資料庫結構設計 228

13.3.1 資料庫分析 228

13.3.2 資料字典 228

13.3.3 資料庫模型 229

13.4 系統環境部署 230

13.4.1 系統環境說明 230

13.4.2 系統平台搭建 230

13.4.3 開發環境優化 233

13.5 系統功能子產品設計 235

13.5.1 前端資料加載子產品 235

13.5.2 資料傳輸子產品設計 237

13.5.3 平台功能子產品擴充 240

第14章 打造Linux系統安全審計功能 245

14.1 平台功能介紹 245

14.2 系統構架設計 246

14.3 資料庫結構設計 247

14.3.1 資料庫分析 247

14.3.2 資料字典 247

14.4 系統環境部署 248

14.4.1 系統環境說明 248

14.4.2 上報主機配置 248

14.5 伺服器端功能設計 252

14.5.1 Django配置 252

14.5.2 功能實作方法 253

第15章 建構分布式品質監控平台 256

15.1 平台功能介紹 256

15.2 系統構架設計 257

15.3 資料庫結構設計 258

15.3.1 資料庫分析 258

15.3.2 資料字典 258

15.3.3 資料庫模型 259

15.4 系統環境部署 260

15.4.1 系統環境說明 260

15.4.2 資料采集角色 260

15.4.3 rrdtool作業 261

15.5 伺服器端功能設計 263

15.5.1 Django配置 263

15.5.2 業務增加功能 264

15.5.3 業務報表功能 266

第16章 建構桌面版C/S自動化運維平台 269

16.1 平台功能介紹 269

16.2 系統構架設計 270

16.3 資料庫結構設計 271

16.3.1 資料庫分析 271

16.3.2 資料字典 272

16.3.3 資料庫模型 272

16.4 系統環境部署 273

16.4.1 系統環境說明 273

16.4.2 系統環境搭建 273

16.5 系統功能子產品設計 274

16.5.1 使用者登入子產品 274

16.5.2 系統配置功能 275

16.5.3 伺服器分類子產品 277

16.5.4 系統更新功能 280

16.5.5 用戶端子產品編寫 284

16.5.6 執行功能子產品 287

16.5.7 平台程式釋出 289