自動化運維軟體設計實戰

自動化運維軟體設計實戰

《自動化運維軟體設計實戰》是2015年7月電子工業出版社出版的圖書,作者是吳文豪。

基本信息

內容簡介

《自動化運維軟體設計實戰》主要講解採用OSGi技術來設計一款可插拔式的運維軟體的方法與思想,為讀者提供一種不一樣的運維軟體設計與自動化運維解決方案。適合從事系統運維及運維開發的人員閱讀。

圖書介紹

《自動化運維軟體設計實戰》主要講解採用OSGi技術來設計一款可插拔式的運維軟體的方法與思想,為讀者提供一種不一樣的運維軟體設計與自動化運維解決方案。

《自動化運維軟體設計實戰》分三部分,第一部分講解開源社區中比較流行的三款集中化運維軟體,第二部分與讀者一起分享為什麼要採用OSGi的技術來設計集中化運維軟體,第三部分介紹設計這款運維軟體所涉及的技術和一些設計思想。

《自動化運維軟體設計實戰》適合從事系統運維及運維開發的人員閱讀。

目錄

第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

相關詞條

熱門詞條

聯絡我們