《Puppet權威指南》
基本信息
做者: 王冬生
叢書名: Linux/Unix技術叢書
出版社:機械工業出版社
ISBN:9787111485988
上架時間:2014-12-25
出版日期:2015 年1月
開本:16開
版次:1-1正則表達式
內容簡介
計算機書籍
自動化運維領域的重磅之做,Puppet領域權威的、系統的、有深度的、極具企業實戰價值的著做。騰訊高級運維工程師撰寫,得到了來自騰訊、百度、阿里巴巴、新浪等多家世界級互聯網企業的總監級運維專家的高度承認和聯袂推薦。
工欲善其事,必先利其器,在操做層面,《Puppet權威指南》從Puppet的基本功能到高級功能,再到二次開發均有詳細分析,內容詳盡而系統,能幫助讀者全面掌握Puppet的使用;知其然,更要知其因此然,在原理層面,本書從多個層面和角度分析了Puppet的工做原理,能讓讀者更深刻理解和使用Puppet;好的經驗是無價的,在應用層面,做者將本身幾年來學習和應用Puppet積累的方法、技巧、最佳實踐以及解決疑難問題的祕訣都毫無保留地奉獻了出來,能讓讀者少走彎路,事半功倍;實踐出真知,在實戰層面,本書給出了幾個對企業很重要的、常見的綜合性案例,不只能幫助讀者提升實戰能力,還能給予他們解決這些問題的良好解決方案。
目錄
《Puppet權威指南》
序 一
序 二
前 言
第一部分 基 礎 篇
第1章 運維工程師的利器——自動化運維工具 2
1.1 淺談運維工程師 2
1.1.1 運維工程師定位和職責 2
1.1.2 優秀運維工程師vs普通運維工程師 3
1.1.3 自動化運維工具 5
1.2 自動化運維工具箱 5
1.2.1 Cfengine 5
1.2.2 Chef 7
1.2.3 Puppet 7
1.3 自動化運維工具對比 10
第2章 Puppet介紹 12
2.1 DevOps介紹 12
2.2 Puppet版本介紹 13
2.2.1 Puppet開源社區版本號介紹 13
2.2.2 Puppet版本混用可行性 14
2.2.3 如何升級Puppet 14
2.2.4 Puppet發行版本介紹 15
2.3 Puppet版本運行環境和硬件要求 16
2.3.1 Puppet版本運行環境 16
2.3.2 Puppet 硬件要求 17
2.4 Puppet 工做流程 17
2.5 Puppet開發工具 19
2.5.1 Geppetto 開發環境 19
2.5.2 Vim開發環境 23
2.6 Puppet問答 23
第3章 Puppet及相關工具的配置與安裝 25
3.1 Puppet 各環境的安裝 25
3.1.1 Ruby不一樣版本對Puppet的支持情況 25
3.1.2 包管理系統和源 26
3.1.3 在RedHat企業版或CentOS上安裝Puppet 29
3.1.4 在Debian和Ubuntu上安裝Puppet 29
3.1.5 在微軟Windows系列操做系統上安裝Puppet 30
3.1.6 在Mac上安裝Puppet 30
3.1.7 經過RubyGems安裝Puppet 33
3.1.8 源碼編譯Puppet 33
3.1.9 源碼打包RPM 35
3.2 版本控制工具安裝與配置 36
3.2.1 Subversion安裝與配置 36
3.2.2 Git安裝與配置 38
3.2.3 SVN與Git的4點區別 39
3.3 DNS安裝與配置 40
第4章 Puppet目錄結構、配置文件和命令詳解 42
4.1 源碼與主配置文件的目錄結構 42
4.2 Puppet主要配置文件介紹 45
4.2.1 puppet.conf介紹 45
4.2.2 auth.conf介紹 49
4.2.3 namespaceauth.conf 介紹 51
4.2.4 autosign.conf介紹 52
4.2.5 fileserver.conf介紹 53
4.2.6 tagmail.conf 介紹 54
4.3 Puppet命令詳解 54
4.3.1 Puppet命令的前世此生 55
4.3.2 如何掌握Puppet命令 55
4.3.3 puppet master 介紹 57
4.3.4 puppet agent 介紹 59
4.3.5 puppet cert 介紹 62
4.3.6 puppet apply 介紹 64
4.3.7 puppet module 介紹 65
4.3.8 puppet resource 介紹 67
4.3.9 puppet describe 介紹 68
4.3.10 puppet doc 介紹 69
4.3.11 puppet parser 介紹 71
4.3.12 puppet 幫助命令介紹 72
4.3.13 puppet filebucket 介紹 73
4.3.14 puppet file 介紹 74
4.3.15 puppet kick 介紹 74
第5章 經過Puppet 構建主機 77
5.1 Agent首次訪問Master配置過程 77
5.1.1 建立site.pp文件和目錄 77
5.1.2 Master配置 78
5.1.3 防火牆配置 79
5.1.4 Agent配置 80
5.2 manifests和modules目錄介紹 82
5.2.1 manifests目錄介紹 83
5.2.2 modules目錄介紹 86
5.3 class類的介紹 88
5.3.1 定義無參數class類 88
5.3.2 定義有參數class類 89
5.4 繼承 89
5.4.1 節點繼承 89
5.4.2 類繼承 90
5.5 Puppet構建主機 90
5.5.1 基礎模塊目錄結構 91
5.5.2 代碼文件介紹 92
5.5.3 site.pp加載配置文件 93
5.6 Puppet多環境部署 94
第二部分 進 階 篇
第6章 Puppet語言詳解 98
6.1 變量和變量做用域 98
6.1.1 什麼是變量 99
6.1.2 變量做用域 100
6.1.3 Facter變量 103
6.1.4 內置變量 104
6.2 數據類型 104
6.2.1 字符串類型 104
6.2.2 數值類型 105
6.2.3 數組 106
6.2.4 哈希類型 107
6.2.5 布爾類型 108
6.2.6 正則表達式 108
6.2.7 undef 110
6.3 條件判斷語句 111
6.3.1 if…elsif…else條件語句 111
6.3.2 case語句 112
6.3.3 selector語句 113
6.4 Puppet函數介紹 113
6.4.1 經常使用系統函數 114
6.4.2 其餘系統函數 118
6.5 Puppet tag 119
6.6 Puppet關鍵字 119
6.7 Puppet編程規範 120
6.7.1 manifests和modules中的間距、縮進與空白 120
6.7.2 註釋 121
6.7.3 變量規範 121
6.7.4 資源規範 122
6.7.5 條件語句規範 125
6.7.6 class類規範 126
6.7.7 標識符命名規範 128
6.8 Puppet文件的導入、命名空間與自動加載 128
6.8.1 Puppet文件的導入 128
6.8.2 Puppet命名空間與自動裝載 129
第7章 Puppet 資源詳解 132
7.1 Puppet資源 132
7.1.1 Puppet資源分類 133
7.1.2 資源與Puppet協同工做 133
7.1.3 資源的組成 133
7.2 Puppet經常使用資源介紹 134
7.2.1 file與filebucket資源 135
7.2.2 host資源 140
7.2.3 user資源 141
7.2.4 group資源 144
7.2.5 package資源 145
7.2.6 service資源 148
7.2.7 exec資源 150
7.2.8 cron資源 153
7.2.9 notify資源 154
7.3 資源公有屬性 155
7.3.1 資源公有屬性應用場景 156
7.3.2 before和require資源公有屬性 157
7.3.3 notify和subscire資源公有屬性 158
7.3.4 資源公有屬性的其餘描述方式 159
7.3.5 定義Chaining 160
7.3.6 stage資源公有屬性與stage資源 162
7.3.7 audit審計 163
7.4 默認資源 163
7.5 Puppet虛擬資源 164
7.5.1 虛擬資源應用場景 164
7.5.2 虛擬資源 165
7.6 Puppet資源的導出 167
7.6.1 環境的配置 167
7.6.2 資源導出案例 168
7.6.3 過時資源清理 171
第8章 Puppet ERB模板詳解 172
8.1 ERB模板應用場景 172
8.2 ERB語言 173
8.2.1 初識ERB模板 173
8.2.2 變量 174
8.2.3 if…elsif…else條件語句 175
8.2.4 each循環 177
8.2.5 函數 178
8.3 經過ERB模板配置Apache虛擬主機 179
第9章 走進Facter 182
9.1 Facter簡介 182
9.1.1 Facter版本 183
9.1.2 Facter參數與應用 183
9.1.3 Facter與Puppet結合 185
9.2 Facter經常使用變量 185
9.2.1 CPU相關變量 186
9.2.2 內存與swap相關變量 186
9.2.3 網絡接口與硬件地址相關變量 188
9.2.4 系統發行版本變量與kernel版本相關變量 189
9.2.5 SELinux相關變量 190
9.3 擴展Facter 191
9.3.1 擴展Facter的變量 191
9.3.2 External Facts外部擴展變量 193
9.4 編寫與分發Facter的擴展 196
第三部分 高 級 篇
第10章 Puppet高級功能 200
10.1 ENC介紹 200
10.1.1 ENC的配置 201
10.1.2 ENC案例 203
10.2 Ruby DSL介紹 205
10.2.1 如何使用Ruby DSL 206
10.2.2 Ruby DSL案例 206
10.3 Puppet的關係圖 208
10.3.1 DOT語言 209
10.3.2 Graphviz的安裝 210
10.3.3 Puppet與Graphviz結合生成關係圖 210
10.4 puppetlabs-stdlib詳述 212
10.5 Puppet擴展 216
10.5.1 Puppet擴展的目錄結構 216
10.5.2 Puppet函數擴展 217
10.5.3 Puppet類型與提供者 220
第11章 Puppet集羣技術 224
11.1 Master單機瓶頸解決方案 224
11.2 Mongrel模式 227
11.3 Phusion Passenger 231
11.3.1 Apache + Passenger 231
11.3.2 Nginx + Passenger 234
11.4 Puppet集羣介紹 236
11.4.1 爲何創建Puppet集羣 236
11.4.2 創建Puppet集羣的場景 236
11.4.3 集羣負載均衡解決方案 237
11.5 Puppet CA均衡負載 239
第12章 報告系統 241
12.1 報告系統入門 241
12.2 報告處理器 243
12.3 自定義報告處理器 247
12.3.1 log處理器源碼分析 247
12.3.2 自定義報告處理器 248
12.3.3 個性化處理器 250
第13章 Puppet Web GUI 251
13.1 Puppet Dashboard 安裝與升級 252
13.2 配置Dashboard 255
13.3 Dashboard應用場景 259
13.4 Dashboard與Nginx提高性能 264
第14章 PuppetDB數據倉庫 266
14.1 PuppetDB環境安裝 266
14.1.1 PuppetDB輔助環境安裝 267
14.1.2 PuppetDB環境安裝與升級 268
14.2 PuppetDB與Puppet結合配置 270
14.2.1 數據庫配置 270
14.2.2 PuppetDB配置 271
14.2.3 Puppet配置 275
14.3 PuppetDB API 277
14.3.1 PuppetDB API檢索結構 277
14.3.2 PuppetDB API檢索語句 278
14.4 PuppetDB 問答 285
第15章 Marionette Collective框架應用 287
15.1 MCollective介紹 288
15.2 中間件介紹 290
15.2.1 ActiveMQ介紹 291
15.2.2 RabbitMQ介紹 291
15.3 MCollective環境的安裝與配置 291
15.3.1 MCollective安裝 292
15.3.2 MCollective配置 294
15.4 如何使用MCollective 301
15.4.1 MCollective基礎命令 301
15.4.2 MCollective插件應用 304
15.4.3 經過MCollective管理Puppet Agent 305
第四部分 應 用 篇
第16章 HAProxy構建Puppet集羣實踐 308
16.1 HAProxy 簡介 308
16.2 HAProxy初始化 310
16.3 HAProxy構建Puppet 312
16.3.1 利用HAProxy擴展Puppet集羣 313
16.3.2 Puppet的升級 314
第17章 Puppet管理SSO實踐 317
17.1 SSO介紹 317
17.1.1 什麼是SSO 317
17.1.2 SSO系統工做流程圖 318
17.1.3 SSO系統架構 318
17.2 經過Puppet管理與運營SSO系統 320
17.2.1 Puppet系統初始化 321
17.2.2 Puppet配置管理環境的初始化 323
第18章 Puppet快速構建企業內部網實踐 335
18.1 Puppet初始化 335
18.2 Puppet輔助工具 339
18.2.1 Puppet Forge 339
18.2.2 Example42 340
18.3 快速構建企業內部網 342
18.3.1 企業內部網介紹 342
18.3.2 構建企業內部網 343數據庫