第1章 什麼是自動化運維 / 1
1.1 硬件運維和軟件運維 / 1
1.1.1 小故事之一——電腦專傢 / 1
1.1.2 小故事之二——你居然不會修電腦 / 2
1.1.3 硬件運維與軟件運維 / 2
1.2 軟件運維的主要問題 / 3
1.2.1 設備數量多 / 3
1.2.2 係統異構性大 / 3
1.2.3 虛擬化的成熟帶來更大的睏難 / 4
1.3 運維常用工具 / 4
1.3.1 Puppet / 6
1.3.2 SaltStack / 6
1.3.3 Ansible / 7
1.4 自動化運維 / 7
1.5 小結 / 9
第2章 集中化運維利器——Ansible / 11
2.1 環境準備 / 11
2.2 安裝Ansible / 12
2.2.1 使用CentOS的EPEL源進行安裝 / 12
2.2.2 使用Easy_Install安裝Ansible / 14
2.3 Ansible基礎 / 14
2.3.1 資産配置 / 14
2.3.2 執行命令 / 17
2.3.3 指定目標主機 / 18
2.3.4 常用命令示例 / 19
2.4 Ansible常用模塊 / 21
2.4.1 文件管理模塊 / 21
2.4.2 命令執行模塊 / 25
2.4.3 網絡相關模塊 / 28
2.4.4 源碼管理模塊 / 30
2.4.5 包管理模塊 / 32
2.4.6 係統管理模塊 / 33
2.5 PlayBook / 37
2.5.1 PlayBook簡介 / 38
2.5.2 Include語法 / 41
2.5.3 變量 / 41
2.5.4 條件 / 43
2.5.5 循環 / 44
2.5.6 PlayBook使用實例——集中化日常巡檢 / 46
2.6 使用Ansible的API / 49
2.7 小結 / 50
2.7.1 Ansible的優點 / 50
2.7.2 Ansible的缺點 / 51
第3章 集中化運維利器——Puppet / 52
3.1 Puppet與Ansible / 52
3.2 Puppet基礎 / 56
3.2.1 安裝Puppet / 57
3.2.2 Puppet主要配置文件 / 58
3.2.3 頒發證書 / 61
3.2.4 第一個Puppet示例 / 62
3.3 Puppet的常用資源 / 64
3.3.1 定時任務——cron / 64
3.3.2 命令執行——exec / 65
3.3.3 文件管理——file / 67
3.3.4 包管理——packag / 69
3.3.5 服務管理——service / 70
3.4 Puppet語法基礎 / 71
3.4.1 資源 / 72
3.4.2 類 / 73
3.4.3 變量 / 73
3.5 小結 / 76
3.5.1 Puppet的優點 / 76
3.5.2 Puppet的缺點 / 76
第4章 集中化運維利器——SaltStack / 77
4.1 SaltStack、Puppet、Ansible / 77
4.2 無Agent模式——SaltSSH / 79
4.3 SaltStack的基本組成 / 81
4.4 Salt State概述 / 82
4.4.1 top.sls / 82
4.4.2 state文件 / 83
4.4.3 配置主機 / 83
4.4.4 SaltState之Requires / 84
4.4.5 Template、Extends、Includes / 85
4.5 無主服務器模式運行 / 88
4.6 使用SaltStack的定時作業 / 89
4.7 實時執行命令 / 89
4.7.1 target / 89
4.7.2 function / 93
4.7.3 arguments / 93
4.8 Pillar / 93
4.8.1 使用Pillar / 94
4.8.2 Pillar的一些操作方法 / 95
4.9 小結 / 96
4.9.1 SaltStack的優點 / 96
4.9.2 SaltStack的缺點 / 96
第5章 重復造一個輪子 / 97
5.1 從一個自動化運維軟件說起 / 97
5.2 睏難重重 / 100
5.2.1 多樣的設備類型 / 100
5.2.2 運維設備的總量大 / 100
5.2.3 艱難的環境 / 100
5.2.4 多變的客戶需求 / 101
5.3 輪子需要的特性 / 102
5.4 ActiveMQ基礎 / 104
5.4.1 配置ActiveMQ / 105
5.4.2 部署ActiveMQ / 114
5.4.3 第一個ActiveMQ例子 / 117
5.5 Apache Karaf / 123
5.5.1 OSGi簡介 / 123
5.5.2 為什麼選擇Karaf / 124
5.5.3 基礎架構設計 / 124
5.5.4 啓動Apache Karaf / 126
5.5.5 製作第一個OSGi包 / 127
第6章 ActiveMQ概覽 / 136
6.1 消息發送 / 136
6.1.1 TextMessage / 136
6.1.2 MapMessage / 138
6.1.3 BytesMessage / 140
6.1.4 StreamMessage / 144
6.1.5 BlobMessage / 145
6.2 斷綫重連機製FailOver / 158
6.2.1 配置FailOver / 158
6.2.2 FailOver的常用參數 / 159
6.3 消息生命周期 / 160
6.3.1 為什麼消息需要生命周期 / 160
6.3.2 使用消息超時機製 / 162
6.4 清空不常用的隊列 / 163
6.5 使用JMX獲取隊列信息 / 164
6.5.1 啓用ActiveMQ的JMX功能 / 165
6.5.2 獲取ActiveMQ的隊列信息 / 167
6.6 ActiveMQ的HA方案 / 173
6.6.1 配置NFS服務器 / 173
6.6.2 配置NFS客戶端 / 173
6.6.3 調整消息中間件的配置文件 / 174
6.6.4 將Failover作為連接串 / 174
6.6.5 原理 / 175
第7章 Apache Karaf概覽 / 176
7.1 理解Import和Export / 176
7.2 Service Wraper / 180
7.2.1 支持的平颱 / 180
7.2.2 使用Service Wrapper / 181
7.2.3 Karaf Wrapper的配置文件 / 184
7.3 使用控製颱 / 187
7.3.1 Shell模塊 / 187
7.3.2 OSGi模塊 / 190
7.3.3 LOG模塊 / 191
7.3.4 SSHD模塊 / 192
7.4 Karaf的日誌 / 194
7.4.1 Karaf.Out / 194
7.4.2 Karaf.log / 195
7.4.3 Application log4j 日誌 / 196
7.5 Karaf子實例 / 197
7.5.1 使用Karaf子實例 / 197
7.5.2 為什麼需要使用子實例 / 201
7.6 擴展Karaf控製颱 / 203
7.6.1 使用Maven創建項目 / 204
7.6.2 編寫控製颱插件包 / 206
7.6.3 部署插件包 / 207
7.7 使用Web控製颱 / 207
7.8 使用Feature——JDBC數據源 / 209
第8章 核心框架 / 213
8.1 核心層概述 / 213
8.2 核心框架 / 214
8.2.1 服務端消息處理 / 216
8.2.2 客戶端消息處理 / 217
8.2.3 插件狀態匯報 / 218
8.3 消息分發服務端 / 219
8.4 插件狀態服務端 / 220
8.5 PlayBook服務端 / 221
8.5.1 PlayBook服務端設計目的 / 221
8.5.2 PlayBook設計示意圖 / 223
8.6 結果處理服務端 / 226
8.6.1 結果處理服務端設計目的 / 226
8.6.2 結果處理服務端處理流程 / 226
第9章 通用插件包 / 228
9.1 插件包概覽 / 228
9.2 作業調度模塊——Cron4J / 230
9.2.1 Cron4J基本使用方式 / 231
9.2.2 作業調度參數 / 232
9.2.3 重新調度作業 / 233
9.2.4 調度係統進程 / 233
9.3 數據訪問模塊——MidaoProject / 234
9.3.1 為什麼選擇Midao / 235
9.3.2 使用Midao / 236
9.4 序列化模塊——Gson / 237
9.5 交互式命令執行模塊——JavaExpect / 242
9.6 小結 / 249
第10章 常用插件 / 250
10.1 文件下發插件 / 250
10.1.1 文件下發插件設計 / 250
10.1.2 使用Apache Common IO / 251
10.2 文件抓取插件 / 254
10.2.1 文件抓取插件整體設計 / 254
10.2.2 文件抓取插件設計要點 / 256
10.3 命令執行插件 / 257
10.4 目錄結構查詢插件 / 258
第11章 整閤Zabbix / 261
11.1 編譯安裝Zabbix / 261
11.1.1 部署MySQL / 261
11.1.2 編譯部署Apache+PHP / 263
11.1.3 安裝Zabbix / 267
11.2 強大的觸發規則 / 268
11.2.1 觸發規則概覽 / 268
11.2.2 特色的觸發規則 / 270
11.3 Zabbix調用OSGi 運維功能 / 271
第12章 案例 / 275
· · · · · · (
收起)