Python 自動化運維快速入門, 2/e
鄭徵
買這商品的人也買了...
-
$450$351 -
$311寫給系統管理員的 Python 腳本編程指南
-
$714$678 -
$740高性能 Linux 服務器運維實戰:shell 編程、監控告警、性能優化與實戰案例
-
$1,080$853 -
$454算法與數據中台:基於 Google、Facebook 與微博實踐
-
$780$616 -
$480$379 -
$237網絡工程師的 Python 之路:網絡運維自動化實戰
-
$403Python 自動化測試入門與進階實戰
-
$520$411 -
$880$748 -
$600$468 -
$454架構師的自我修煉:技術、架構和未來
-
$1,223Kubernetes 權威指南:從 Docker 到 Kubernetes 實踐全接觸, 5/e
-
$880$695 -
$600$468 -
$700$553 -
$720$562 -
$500$375 -
$599$569 -
$534$507 -
$520$411 -
$539$512 -
$768$730
相關主題
商品描述
本書從零開始講解Python自動化運維工具和及其使用,通過上百個實際運維場景案例,幫助讀者理解並掌握自動化運維技術。 本書分為16章,內容包括Python自動化運維概述、Python基礎運維技能、實戰多進程、實戰多線程、實戰協程、自動化運維工具(Ansible)、定時任務模塊(APScheduler)、執行遠程命令的工具(Paramiko)、任務調度神器(Airflow)、分佈式任務隊列(Celery)、Docker容器技術、主流的自動化配置工具、開源配置管理平臺搭建、統一監控平臺Zabbix、運維開發技術、DevOps方法論等。 本書內容詳盡、示例豐富,適合廣大從事Python運維開發的初學者學習和參考,同時也可作為高等院校和培訓機構電腦及其相關專業的教材使用。
作者簡介
鄭徵,計算機專業畢業,碩士,師從李雲飛教授,曾發表論文兩篇,獲兩項實用新型專利。
工作多年來一直致力於運維開發及數據分析,從事銀行數據庫、作系統、大型軟件系統相關的運維及開發工作,擅長Python、Shell、SQL。
對自動化運維、監控、調度工具、數據庫技術有過細緻的研究,是Python語言的狂熱愛好者。
長期專注於Python運維程序開發,致力於解決運維工作過程中的實際問題,提高運維工作的效率,減輕運維工作的負擔。
目錄大綱
1.1 自動化運維概述 1
1.1.1 自動化運維勢在必行 1
1.1.2 什麼是成熟的自動化運維平台 2
1.1.3 為什麼選擇Python進行運維 2
1.2 初識Python 6
1.3 Python環境搭建 6
1.3.1 Windows系統下的Python安裝 6
1.3.2 Linu系統下的Python安裝 9
1.4 開發工具介紹13
1.4.1 PyCharm 13
1.4.2 vim 17
1.5 Python基礎語法20
1.5.1 數字運算20
1.5.2 字符串22
1.5.3 列表與元組27
1.5.4 字典29
1.5.5 集合31
1.5.6 函數33
1.5.7 條件控制與循環語句34
1.5.8 可迭代對象、迭代器和生成器38
1.5.9 對象賦值、淺複製、深複製42
1.6 多個例子實戰Python編程46
1.6.1 實戰1:九九乘法表46
1.6.2 實戰2:發放獎金的梯度47
1.6.3 實戰3:遞歸獲取目錄下文件的修改時間48
1.6.4 實戰4:兩行代碼查找替換3或5的倍數49
1.6.5 實戰5:一行代碼的實現50
1.7 pip工具的使用50
2章 基礎運維技能53
2.1 文本處理53
2.1.1 Python編碼解碼53
2.1.2 文件作57
2.1.3 讀寫配置文件64
2.1.4 解析XML文件66
2.2 系統信息監控73
2.3 文件系統監控78
2.4 執行外部命令subprocess 80
2.4.1 subprocess.run()方法80
2.4.2 Popen類82
2.4.3 其他方法83
2.5 日誌記錄83
2.5.1 日誌模塊簡介84
2.5.2 logging模塊的配置與使用85
2.6 搭建FTP服務器與客戶端91
2.6.1 搭建FTP服務器91
2.6.2 編寫FTP客戶端程序95
2.7 郵件提醒96
2.7.1 發送郵件96
2.7.2 接收郵件101
2.7.3 將報警信息實時發送至郵箱103
2.8 *提醒108
2.8.1 處理*消息108
2.8.2 將警告信息發送至* 112
3章 實戰多進程115
3.1 創建進程的類Process 115
3.2 進程並發控制之Semaphore 119
3.3 進程同步之Lock 120
3.4 進程同步之Event 122
3.5 進程優先級隊列Queue 124
3.6 多進程之進程池Pool 125
3.7 多進程之數據交換Pipe 126
4章 實戰多線程129
4.1 Python多線程簡介129
4.2 多線程編程之threading模塊133
4.3 多線程同步之Lock(互斥鎖) 136
4.4 多線程同步之Semaphore(信號量) 138
4.5 多線程同步之Condition 139
4.6 多線程同步之Event 140
4.7 線程優先級隊列(queue) 142
4.8 多線程之線程池pool 143
5章 實戰協程145
5.1 定義協程145
5.2 並發147
5.3 異步請求148
6章 自動化運維工具Ansible 153
6.1 Ansible的安裝153
6.2 Ansible配置154
6.3 inventory文件155
6.4 Ansible ad-hoc模式157
6.5 Ansible playbooks模式165
7章 定時任務模塊APScheduler 169
7.1 安裝及基本概念169
7.1.1 APScheduler的安裝169
7.1.2 APScheduler涉及的幾個概念169
7.1.3 APScheduler的工作流程170
7.2 配置調度器172
7.3 啟動調度器175
7.4 調度器事件監聽179
8章 執行遠程命令的工具Paramiko 182
8.1 介紹幾個重要的類182
8.1.1 通道類182
8.1.2 傳輸類183
8.1.3 SSHClient類184
8.2 Paramiko的使用185
8.2.1 安裝Paramiko 185
8.2.2 基於用戶名和密碼的SSHClient方式登錄185
8.2.3 基於用戶名和密碼的Transport方式登錄並實現上傳與下載186
8.2.4 基於公鑰密鑰的SSHClient方式登錄187
8.2.5 基於公鑰密鑰的Transport方式登錄188
9章 分佈式任務隊列Celery 189
9.1 Celery簡介189
9.2 安裝Celery 191
9.3 安裝RabbitMQ或Redis 192
9.3.1 安裝RabbitMQ 192
9.3.2 安裝Redis 193
9.4 一個Celey程序194
9.5 一個工程項目197
9.6 Celery架構201
9.7 Celery 隊列202
9.8 Celery Beat任務調度205
9.9 Celery 遠程調用206
9.10 監控與管理209
9.10.1 Celery命令行實用工具209
9.10.2 Web實時監控工具Flower 212
9.10.3 Flower的使用方法213
10章 任務調度*Airflow 217
10.1 Airflow簡介217
10.1.1 DAG 218
10.1.2 作符——Operators 218
10.1.3 時區——timezone 219
10.1.4 Web服務器——webserver 219
10.1.5 調度器——schduler 220
10.1.6 工作節點——worker 220
10.1.7 執行器——Eecutor 220
10.2 Airflow安裝與部署220
10.2.1 在線安裝221
10.2.2 離線安裝223
10.2.3 部署與配置(以SQLite為知識庫) 223
10.2.4 指定依賴關係228
10.2.5 啟動scheduler 228
10.3 Airflow配置MySQL知識庫和LocalEecutor 229
10.4 Airflow配置Redis和CeleryEecutor 236
10.5 Airflow任務開發Operators 238
10.5.1 Operators簡介239
10.5.2 BaseOperator 簡介239
10.5.3 BashOperator的使用240
10.5.4 PythonOperator的使用241
10.5.5 SSHOperator的使用242
10.5.6 HiveOperator的使用243
10.5.7 如何自定義Operator 244
10.6 Airflow集、高可用部署244
10.6.1 Airflow的大守護進程245
10.6.2 Airflow的守護進程是如何一起工作的245
10.6.3 Airflow單節點部署246
10.6.4 Airflow多節點(集)部署246
10.6.5 擴展worker節點247
10.6.6 擴展Master節點247
10.6.7 Airflow集部署的具體步驟249
11章 Docker容器技術介紹251
11.1 Docker概述251
11.2 Docker解決什麼問題252
11.3 Docker的安裝部署與使用253
11.3.1 安裝Docker引擎253
11.3.2 使用Docker 254
11.3.3 Docker命令的使用方法255
11.4 卷的概念258
11.5 數據卷共享259
11.6 自製鏡像並發布260
11.7 Docker網絡260
11.7.1 Docker的網絡模式261
11.7.2 Docker網絡端口映262
11.8 Docker小結262
12章 主流自動化配置工具263
12.1 配置引擎CFEngine 263
12.1.1 使用CFEngine的個理由263
12.1.2 CFEngine的安裝265
12.1.3 CFEngine的配置268
12.1.4 CFEngine政策示例272
12.2 自動化運維工具Chef 275
12.2.1 Chef簡介275
12.2.2 Chef的安裝275
12.2.3 Chef的使用279
12.3 Puppet 280
12.3.1 Puppet簡介280
12.3.2 Puppet安裝和配置281
12.3.3 Puppet配置語言282
12.3.4 編寫一個配置文件284
12.4 SaltStack 286
12.4.1 SaltStack的簡介286
12.4.2 SaltStack的安裝與配置287
12.4.3 SaltStack的使用293
13章 開源配置管理平台搭建299
13.1 open-cmdb 299
13.1.1 open-cmdb功能介紹300
13.1.2 open-cmdb開發環境部署301
13.1.3 open-cmdb生產環境部署305
13.2 藍鯨配置平台313
13.2.1 藍鯨配置平台系統架構313
13.2.2 藍鯨配置平台環境快速部署314
14章 統一監控平台Zabbi 319
14.1 Zabbi主要功能319
14.2 Zabbi平台的技術術語320
14.3 Zabbi的主要模塊321
14.4 Zabbi的安裝要求322
14.5 Zabbi的安裝:從安裝包進行安裝322
14.6 Zabbi的安裝:從容器進行安裝325
15章 運維開發相關技術328
15.1 前端開發之Vue.js 328
15.1.1 新手學習Vue.js的先後順序328
15.1.2 使用Vue.js實現一個demo 329
15.1.3 使用vue-cli創建工程並部署336
15.1.4 流行的Vue.js UI庫342
15.1.5 幾個開源的Vue.js管理項目342
15.2 後端接口開發之FastAPI 343
15.2.1 FastAPI的安裝343
15.2.2 編寫一個demo 344
15.2.3 安全與中間件345
15.2.4 SQL與數據庫348
15.2.5 測試與調試353
15.3 WebSocket開發358
15.3.1 WebSocket client的實現358
15.3.2 WebSocket Server的實現359
15.3.3 實現一個安全的WebSocket 360
15.3.4 基於WebSocket實現一個webshell 361
15.3.5 與主流框架集成的WebSocket 364
16章 DevOps方365
16.1 什麼是DevOps 365
16.2 DevOps成功的關鍵366
16.3 DevOps常用的10個工具367
16.4 DevOps能為企業帶來哪些收益368