作 者:鄭征 著
定 價:59
出 版 社:清華大學出版社
出版日期:2018年08月01日
頁 數:270
裝 幀:平裝
ISBN:9787302525806
1. 從基礎講起,適合零基礎學習Python運維的讀者為了便於讀者理解本書內容,從基礎知識開始講述,並結合實際應用,激發學習興趣,提高學習效率。2. 涵蓋自動化運維的主流開源工具本書涵蓋Ansible、APScheduler、Paramiko、Celery、Airflow、Docker等主流運維工具的架構、原理及詳細使用方法。3. 項目案例典型,實戰性強,有較高的應用價值本書每一篇都提供了大量的實戰案例,這些案例來源於作者開發的實際項目,具有很高的應用價值和參考性,而且分別使等
●第一篇 Python與基礎運維第1章 自動化運維與Python31.1 自動化運維概述31.1.1 自動化運維勢在必行31.1.2 什麼是成熟的自動化運維平臺41.1.3 為什麼選擇Python進行運維41.2 初識Python81.3 Python環境搭建81.3.1 Windows繫統下的Python安裝81.3.2 Linux繫統下的Python安裝111.4 開發工具介紹131.4.1 PyCharm141.4.2 Vim181.5 Python基礎語法241.5.1 數字運算241.5.2 字符串251.5.3 組301.5.4 字典331.5.5 集合351.5.6 函數361.5.7 條件控制與循環語句381.5.8 可迭代對像、迭代器和生成器421.5.9 對像賦值、淺復制、深復制451.6 多個例子實戰Python編程491.6.1 實戰1:九九乘法表491.6.2 實戰2:發放獎金的梯度501.6.3 實戰3:遞歸獲取目錄下文件的修改時間511.6.4 實戰4:兩行代碼查找替換3或5的倍數531.6.5 實戰5:一行代碼的實現531.7 pip工具的使用54第2章 基礎運維572.1 文本處理572.1.1 Python編碼解碼572.1.2 文件操作612.1.3 讀寫配置文件682.1.4 解析XML文件702.2 繫統信息監控762.3 文件繫統監控822.4 執行外部命令subprocess842.4.1 subprocess.run()方法842.4.2 Popen類862.4.3 其他方法872.5 日志記錄872.5.1 日志模塊簡介882.5.2 logging模塊的配置與使用892.6 搭建FTP服務器與客戶端952.6.1 搭建FTP服務器952.6.2 編寫FTP客戶端程序992.7 郵件提醒1002.7.1 發送郵件1002.7.2 接收郵件1052.7.3 將報警信息實時發送至郵箱1072.8 提醒1122.8.1 處理消息1122.8.2 將警告信息發送至116第二篇 中級運維第3章 實戰多進程1213.1 創建進程的類Process1213.2 進程並發控制之Semaphore1253.3 進程同步之Lock1263.4 進程同步之Event1283.5 進程優先級隊列Queue1303.6 多進程之進程池Pool1313.7 多進程之數據交換Pipe132第4章 實戰多線程1354.1 Python多線程簡介1354.2 多線程編程之threading模塊1394.3 多線程同步之Lock(互斥鎖)1424.4 多線程同步之Semaphore(信號量)1444.5 多線程同步之Condition1454.6 多線程同步之Event1464.7 線程優先級隊列(queue)1484.8 多線程之線程池pool149第5章 實戰協程1515.1 定義協程1515.2 並發1535.3 異步請求154第6章 自動化運維工具Ansible1596.1 Ansible安裝1596.2 Ansible配置1606.3 inventory文件1616.4 ansible ad-hoc模式1636.5 Ansible Playbooks模式171第7章 定時任務模塊APScheduler1757.1 安裝及基本概念1757.1.1 APScheduler的安裝1757.1.2 APScheduler涉及的幾個概念1757.1.3 APScheduler的工作流程1767.2 配置調度器1787.3 啟動調度器1817.4 調度器事件監聽185第8章 執行遠程命令(Paramiko)1888.1 介紹幾個重要的類1888.1.1 通道(Channel)類1888.1.2 傳輸(Transport)類1898.1.3 SSHClient類1908.2 Paramiko的使用1918.2.1 安裝1918.2.2 基於用戶名和密碼的SSHClient方式登錄1918.2.3 基於用戶名和密碼的Transport方式登錄並實現上傳與下載1928.2.4 基於公鑰密鑰的SSHClient方式登錄1938.2.5 基於公鑰密鑰的Transport方式登錄194第9章 分布式任務隊列Celery1959.1 Celery簡介1959.2 安裝Celery1979.3 安裝RabbitMQ或Redis1989.3.1 安裝RabbitMQ1989.3.2 安裝Redis1999.4 第一個Celey程序2009.5 第一個工程項目2039.6 Celery架構2079.7 Celery 隊列2089.8 Celery Beat任務調度2119.9 Celery 遠程調用2129.10 監控與管理2159.10.1 Celery命令行實用工具2159.10.2 Web實時監控工具Flower2189.10.3 Flower的使用方法219第10章 任務調度利器Airflow22310.1 Airflow簡介22310.1.1 DAG22410.1.2 操作符——Operators22410.1.3 時區——timezone22510.1.4 Web服務器——webserver22510.1.5 調度器——schduler22610.1.6 工作節點——worker22610.1.7 執行器——Executor22610.2 Airflow安裝與部署22610.2.1 在線安裝22710.2.2 離線安裝22910.2.3 部署與配置(以SQLite為知識庫)22910.2.4 指定依賴關繫23410.2.5 啟動scheduler23410.3 Airflow配置MySQL知識庫和LocalExecutor23510.4 Airflow配置Redis和CeleryExecutor24210.5 Airflow任務開發Operators24410.5.1 Operators簡介24510.5.2 BaseOperator 簡介24510.5.3 BashOperator的使用24510.5.4 PythonOperator的使用24710.5.5 SSHOperator的使用24810.5.6 HiveOperator的使用24910.5.7 如何自定義Operator25010.6 Airflow集群、高可用部署25010.6.1 Airflow的四大守護進程25010.6.2 Airflow的守護進程是如何一起工作的25110.6.3 Airflow單節點部署25210.6.4 Airflow多節點(集群)部署25210.6.5 擴展worker節點25310.6.6 擴展Master節點25310.6.7 Airflow集群部署的具體步驟255第三篇 高級運維第11章 Docker容器技術介紹25911.1 Docker概述25911.2 Docker解決什麼問題26011.3 Docker的安裝部署與使用26111.3.1 安裝Docker引擎26111.3.2 使用Docker26211.3.3 Docker命令的使用方法26311.4 卷的概念26611.5 數據卷共享26711.6 自制鏡像並發布26711.7 Docker網絡26811.7.1 Docker的網絡模式26911.7.2 Docker網絡端口映射27011.8 Docker小結270
本書是一本從零開始、手把手教你運維的書籍,通過上百個實際運維場景案例,幫助讀者理解並掌握自動化運維。本書分為三篇共11章,第一篇是基礎運維,介紹自動化運維、Python基礎、文本處理、日志、FTP服務器、使用Python發郵件、等。通過本篇的學習,可以達到編寫Python程序來解決基礎運維問題的水平;第二篇是中級運維,介紹自動化運維工具(Ansible)、作業調度工具(APScheduler、Airflow)、分布式任務隊列(Celery),目的是為了讓運維工作上一個新的臺階;第三篇是高級運維,介紹Docker容器技術,現現已成運維人員推薦的工具。本書內容詳盡、示例豐富,是廣大從事運維開發的讀者推薦參考書,同時也非常適合學習Python的讀者閱讀,也可作為高等院校計算機及相關專業作為教材使用。
鄭征 著
鄭征,計算機專業碩士,師從李雲飛教授,曾發表兩篇論文,榮獲兩項實用新型專利。多年來一直致力於運維開發及數據分析,從事銀行數據庫、操作繫統、大型軟件繫統相關的運維及開發工作,擅長Python、Shell、SQL。對自動化運維、監控、調度工具、數據庫技術有過細致的研究,是Python語言的狂熱愛好者。長期專注於Python運維程序開發,解決了運維工作過程中的一些實際問題,提高了運維工作的效率。
隨著IT技術的進步及業務需求的快速增長,服務器也由幾十臺上升到成百上千臺,IT運維自動化是一個必然的趨勢。Python是當今 的編程語言之一,由於Python語言本身的優勢,因此在編寫自動化程序時簡單、高效,實用效果立竿見影。目前開源軟件社區優秀的自動化運維軟件,如Ansible、Airflow、Celery、Paramiko等框架都使用Python語言開發,甚至一些大型商用的自動化部署繫統都有Python的應用。因此,學好Python,不僅可以自己編寫自動化運維程序,而且可以對開源的自動化運維工具進行二次開發,這樣纔能在就業嚴峻的市場環境中具備較強的職場競爭力。目前市場上介紹Python自動化運維的圖書並不多,真正從實際應用出發,通過各種典型應用場景和項目案例來指導讀者提高運維開發水平的圖書就更少。本書以實戰為主旨,通過Python運維開發中常見的典型應用(近百個場景),讓讀者全面等