目 錄
第1章 開始使用Puppet 1
1.1 什麼是Puppet 1
1.1.1 部署 2
1.1.2 配置語言和資源抽象層 3
1.1.3 事務層 5
1.2 選擇正確的Puppet版本 5
1.3 我能混用Puppet的版本嗎 6
1.4 安裝Puppet 7
1.4.1 在Red Hat企業版Linux和Fedora上麵安裝Puppet 7
1.4.2 在Debian和Ubuntu上安裝Puppet 8
1.4.3 在OpenSolaris上安裝Puppet 9
1.4.4 從源碼安裝Puppet 9
1.4.5 在微軟Windows係統上安裝Puppet 10
1.4.6 在其他平颱上安裝Puppet 10
1.5 配置Puppet 11
1.5.1 site.pp文件 12
1.5.2 配置防火牆 13
1.5.3 啓動Puppet Master 13
1.6 連接第一個Agent 15
1.7 創建第一個配置 17
1.7.1 擴展site.pp文件 17
1.7.2 Agent的配置 18
1.8 創建第一個模塊 19
1.8.1 模塊結構 20
1.8.2 init.pp文件 20
1.9 應用第一個配置 23
1.10 小結 24
1.11 相關資源 25
第2章 使用Puppet構建主機 26
2.1 入門 27
2.1.1 安裝Puppet 27
2.1.2 配置節點 27
2.2 魔術般的模塊 32
2.3 創建一個模塊管理SSH 35
2.4 創建一個模塊來管理Postfix 43
2.4.1 postfix::install類 44
2.4.2 postfix::config類 44
2.4.3 postfix::service類 47
2.5 使用mysql模塊管理MySQL 48
2.5.1 mysql::install類 49
2.5.2 mysql::config類 49
2.5.3 mysql::service類 50
2.6 管理Apache和網站 51
2.6.1 apache::install類 51
2.6.2 apache::service類 52
2.6.3 Apache定義 52
2.7 使用Puppet模塊管理Puppet 55
2.8 小結 58
2.9 相關資源 58
第3章 使用Puppet環境 59
3.1 配置Puppet環境 60
3.1.1 填充新的環境 61
3.1.2 在開發環境中作齣變更 62
3.2 使用Puppet Agent測試新的環境 64
3.3 環境分支和閤並 65
3.3.1 設置一個中心倉庫 66
3.3.2 使用分支做齣一個變更 67
3.3.3 將變更閤並到測試環境 75
3.4 生産環境版本 78
3.5 小結 79
3.6 相關資源 80
第4章 Puppet的可擴展性 81
4.1 明確麵臨的挑戰 81
4.2 使用Apache和Passenger運行Puppet Master 82
4.2.1 在企業版Linux上安裝Apache和Passenger 82
4.2.2 在基於Debian的係統上安裝Apache和Passenger 83
4.2.3 使用Ruby Gem安裝Passenger 84
4.2.4 配置Apache和Passenger 84
4.2.5 在Apache中測試Puppet Master 87
4.3 對多個Puppet Master使用負載均衡 88
4.3.1 HTTP的負載均衡 89
4.3.2 Puppet CA的負載均衡配置 98
4.4 測量性能 106
4.5 小結 108
4.6 相關資源 108
第5章 外部Puppet配置 109
5.1 ENC 110
5.1.1 使用ENC配置節點 111
5.1.2 用Shell腳本編寫的ENC 111
5.1.3 用Ruby編寫的ENC 112
5.1.4 用Perl編寫的ENC 114
5.1.5 後端化的節點分類器 115
5.2 在LDAP中存儲節點配置 116
5.2.1 安裝Ruby LDAP庫 116
5.2.2 設置LDAP服務器 117
5.2.3 添加Puppet方案 117
5.2.4 在Puppet中配置LDAP 118
5.3 小結 120
5.4 相關資源 121
第6章 配置的導齣與存儲 122
6.1 虛擬資源 122
6.1.1 聲明和實例化一個虛擬資源 123
6.1.2 使用Realize函數 124
6.1.3 實例化多個虛擬資源 124
6.1.4 關係鏈語法 125
6.2 導齣資源與配置存儲 126
6.2.1 用於配置存儲的數據庫服務器 126
6.2.2 配置Puppet Master來進行配置存儲 128
6.2.3 添加一個MySQL錶索引 130
6.3 使用導齣資源 131
6.3.1 自動化的SSH主機公鑰管理 131
6.3.2 導齣負載均衡器後端資源 134
6.3.3 自動化的Nagios服務檢測 136
6.4 擴展配置存儲 139
6.4.1 簡化的配置存儲 139
6.4.2 配置存儲的隊列支持 140
6.4.3 在企業版Linux係統上安裝ActiveMQ 141
6.4.4 在基於Debian的係統上安裝ActiveMQ 142
6.4.5 Puppet Master Queue的設置 144
6.5 過期的資源 145
6.6 小結 146
6.7 相關資源 146
第7章 Puppet控製颱:Puppet Dashboard和Foreman 147
7.1 Puppet Dashboard 147
7.1.1 安裝Puppet Dashboard 148
7.1.2 配置Dashboard 151
7.1.3 運行Puppet Dashboard 152
7.1.4 集成Puppet Dashboard 155
7.1.5 外部節點分類器 159
7.1.6 日誌記錄、數據庫備份和性能 161
7.2 The Foreman 162
7.2.1 安裝Foreman 163
7.2.2 配置Foreman 164
7.2.3 啓動Foreman 166
7.2.4 整閤Foreman的能力 166
7.2.5 在Foreman中顯示報告 168
7.2.6 在Foreman中顯示節點信息 169
7.2.7 使用Foreman來觸發Puppet運行 170
7.3 小結 171
7.4 相關資源 171
第8章 工具和集成 172
8.1 Puppet Forge和模塊工具 172
8.1.1 安裝Puppet模塊工具 173
8.1.2 在Forge中搜索並安裝一個模塊 174
8.1.3 使用一個模塊 175
8.1.4 使用Puppet-Module工具創建一個模塊 177
8.2 Puppet Ruby DSL 187
8.2.1 麵臨的問題:來自數據的資源 187
8.2.2 從數據中聲明資源 187
8.3 Cucumber Puppet 197
8.3.1 安裝Cucumber Puppet 198
8.3.2 編寫一個故事 199
8.3.3 測試基本的目錄策略 202
8.3.4 驗證指定的資源 204
8.4 小結 209
8.5 相關資源 210
第9章 Puppet的報告係統 211
9.1 入門 211
9.2 配置報告係統 213
9.3 報告處理器 214
9.3.1 log 214
9.3.2 tagmail 214
9.3.3 rrdgraph 215
9.3.4 http 216
9.4 自定義報告 217
9.5 小結 219
9.6 相關資源 219
第10章 擴展Facter和Puppet 220
10.1 編寫並分發自定義的Fact 220
10.1.1 配置Puppet來使用自定義的Fact 220
10.1.2 編寫自定義Fact 222
10.1.3 測試Fact 224
10.2 開發自定義的類型、提供者和函數 225
10.2.1 為自定義的類型、提供者和函數配置Puppet 225
10.2.2 編寫一個Puppet類型和提供者 226
10.2.3 編寫一個Parsed File類型和對應的提供者 231
10.2.4 一個更加復雜的類型和提供者 234
10.2.5 測試類型和提供者 237
10.2.6 編寫自定義函數 238
10.3 小結 240
10.4 相關資源 240
第11章 Marionette Collective 242
11.1 安裝和配置RabbitMQ 243
11.1.1 在Debian上安裝RabbitMQ 244
11.1.2 在RHEL / CentOS上安裝RabbitMQ 246
11.1.3 RabbitMQ的配置 247
11.1.4 在Debian和Ubuntu上安裝MCollective 248
11.1.5 在企業版Linux上安裝MCollective 250
11.1.6 MCollective服務端的配置 251
11.2 MCollective的插件 253
11.2.1 Puppet Agent的MCollective插件 253
11.2.2 MCollective的Facter插件 258
11.2.3 更多插件 259
11.3 使用元數據定位主機 260
11.4 小結 261
11.5 相關資源 262
附錄A 和Puppet一起工作 263
· · · · · · (
收起)