本書由一線運維人員聯手打造,通過大量實例,詳細講解Ansible這個工具的自動化運維方式與技巧;從基礎的架構解析、安裝配置,到典型應用案例分析,作者分享了自己在工作中的實戰經驗,為各類開發運維人員提供了詳實的指南。本書主要內容包括:Ansible架構及安裝,Ansible組件、組件擴展、API,playbook詳解、最佳實踐案例分析,用ansible-vault保護敏感數據,Ansible與云計算的結合,部署Zabbix組件、Haproxy+LAMP架構,以及Ansible在大數據環境的應用實戰等。
目 錄?Contents前 言第1章 Ansible架構及特點 11.1 Ansible軟件及公司 21.1.1 Ansible應用領域 31.1.2 Ansible軟件發布 51.1.3 Ansible公司服務 81.2 Ansible架構模式 91.2.1 Ansible管理方式 101.2.2 Ansible系統架構 111.2.3 任務執行模式 131.3 Ansible特性 141.3.1 Ansible功能特性 141.3.2 Ansible與其他配置管理的對比 211.4 Ansible與DevOps 221.5 本章小結 26第2章 Ansible安裝與配置 272.1 Ansible環境準備 272.2 安裝Ansible 302.2.1 直接用源碼安裝 302.2.2 用包管理工具安裝 322.3 配置運行環境 342.3.1 配置Ansible環境 342.3.2 使用公鑰認證 362.3.3 配置Linux主機SSH無密碼訪問 362.4 Ansible小試身手 382.4.1 主機連通性測試 382.4.2 在被管節點上批量執行命令 392.5 獲取幫助信息 402.6 本章小結 42第3章 Ansible 組件介紹 433.1 Ansible Inventory 433.2 Ansible Ad-Hoc 命令 493.3 Ansible playbook 563.4 Ansible facts 563.5 Ansible role 603.6 Ansible Galaxy 633.7 本章小結 63第4章 playbook詳解 644.1 playbook基本語法 644.2 playbook變量與引用 704.3 playbook循環 814.4 playbook lookups 914.5 playbook conditionals 964.6 Jinja2 filter 994.7 playbook內置變量 1024.8 本章小結 106第5章 Ansible最佳實踐 1075.1 優化Ansible速度 1075.2 目錄結構 1135.3 定義多環境 1155.4 灰度發布與檢測 1155.5 統一管理 1165.6 使用ansible-shell交互命令行 1165.7 本章小結 118第6章 擴展Ansible組件 1196.1 擴展facts 1196.2 擴展模塊 1256.3 callback插件 1306.4 lookup插件 1376.5 Jinja2 filter 1396.6 本章小結 143第7章 用ansible-vault保護敏感數據 1447.1 了解ansible-vault如何保護數據 1457.1.1 高級加密標準 1457.1.2 ansible-vault能夠加密什么 1457.2 使用ansible-vault 1467.2.1 創建加密數據文件 1467.2.2 更新加密的數據文件 1477.2.3 變更加密數據密鑰 1487.3 典型應用場景 1487.3.1 實踐場景1:保護Ansible role中的敏感數據 1497.3.2 實踐場景2:使用加密做用戶認證 1517.3.3 實踐場景3:保護Nginx中的SSL密鑰 1527.4 本章小結 155第8章 Ansible與云計算 1568.1 了解云平臺管理流程 1568.2 Ansible AWS和OpenStack 1578.3 Ansible與Docker 1628.4 Ansible Jenkins 1658.5 本章小結 169第9章 部署Zabbix組件 1709.1 了解部署流程 1709.2 編寫業務roles 1719.3 安裝部署 1779.4 本章小結 179第10章 部署HAProxy + LAMP架構 18010.1 了解整體架構流程 18010.2 編寫業務roles 18110.3 配置部署以及測試 18610.4 擴容與維護 18810.5 本章小結 189第11章 大數據環境的應用實戰 19011.1 某運營商大數據環境 19111.2 準備大數據集群環境 19211.2.1 安裝操作系統 19511.2.2 操作系統初始化 19811.2.3 Ansible無口令密鑰執行環境 20411.2.4 安裝、配置JDK 20511.3 部署Hadoop集群 20711.3.1 準備Hadoop基礎角色 20911.3.2 部署NameNode角色 21911.3.3 部署資源管理器角色 22111.3.4 部署DataNode角色 22211.4 部署后Hadoop初始化與驗證 22311.4.1 部署后初始化 22311.4.2 部署后Hadoop驗證 22411.5 本章小結 226第12章 Ansible管理Windows系統 22712.1 Ansible管理Windows工作原理 22812.2 搭建Ansible管理工作組Windows環境 22912.2.1 安裝、配置控制主機 23012.2.2 被管Windows主機配置 23012.2.3 配置資源清單 23212.2.4 測試被管Windows主機的連通性 23412.2.5 常見問題處理 23512.3 搭建Ansible管理活動目錄Windows環境 23612.4 支持管理Windows模塊 23912.5 常用Windows管理實例 24012.6 本章小結 244第13章 網絡自動化管理的應用實戰 24613.1 網絡管理也自動化了 24613.2 Ansible官方集成的網絡角色 24913.3 生成配置文件及部署 25113.3.1 生成網絡配置模板 25213.3.2 部署配置模板 25513.4 通過SNMP方式配置網絡 25713.5 網絡設備廠商提供接口實現自動化 25913.5.1 管理Cisco NX-OS 25913.5.2 管理JUNOS 26913.5.3 管理Cumulus Linux 27313.6 本章小結 279第14章 Ansible API 28014.1 runner API 28014.2 playbook API 28314.3 使用Flask封裝Ansible API 28614.4 使用Celery實現任務異步化 29014.5 使用jQuery Ajax異步請求 29714.6 本章小結 300附錄A Ansible.cfg配置文件參數詳解 301附錄B YAML與Jinjia 306附錄C Ansible pull模式 312附錄D SSH Forward模式 316