Chef作為 DevOps運動的重要工具之一,用于快速實現(xiàn)云端自動化配置管理。全書共16章,主題涉及Chef配置管理、Ruby及其語法、如何寫Chef recipe,如何用Test Kitchen管理沙盒測試環(huán)境,如何用Chef客戶端管理單個節(jié)點,Chef cookbook如何寫和如何用,如何用Chef服務器管理多個節(jié)點,搜索、數(shù)據(jù)包、角色、開發(fā)環(huán)境和測試等都有介紹。
本書是一本介紹Chef基礎架構自動化平臺的入門書,有比較強的實操性,很適合剛開始接觸Chef、配置管理和自動化編程的讀者閱讀和參考。
在云時代,Chef作為DevOps運動的重要工具之一,主要用于實現(xiàn)自動化配置管理和運維,幫助大大小小的企業(yè)解決各種運維問題。本書針對剛開始接觸配置管理的開發(fā)人員和系統(tǒng)管理員,闡述了如何在短短幾分鐘或者幾個小時之內(nèi)搭建和部署應用,而不像以往那樣要花幾天或者幾周時間。
本書介紹如何寫基于Ruby的Chef代碼,通過實例來引導讀者逐步掌握各種Chef工具和配置管理概念。只要略懂命令行,熟悉基本的系統(tǒng)管理,就可以通過本書迅速掌握Chef。
前言
這是一本什么書
《學習Chef》是一本針對學習Chef基礎架構自動化平臺的入門書籍。這是一本面向
Chef、配置管理和自動化編程初學者的書籍。
通過使用Chef,你將可以對你的基礎架構內(nèi)應用程序的配置、打包和部署以代碼的形式
表現(xiàn)出來。我們會展示為什么通過代碼來為你的基礎架構建模會很輕松、自然地帶來可
在任何時候重建整個基礎架構的便利,而手動運行命令則不能如此。一旦你理解了這個
用代碼來記錄和建模整個基礎架構的藍圖,就可以在幾分鐘或小時內(nèi)建立或重建你的整
個應用基礎架構,而不是像手動進行那樣需要幾天、幾周或更長時間來完成。本書為入
門書籍,你并不需要擁有任何Chef、基礎架構自動化或編程的經(jīng)驗。
首先,我們會展示如何在你的個人開發(fā)用電腦上配置Chef的開發(fā)環(huán)境。你將來會使用此
開發(fā)環(huán)境來撰寫和測試Chef代碼。俗話說“實踐出真知”,學寫代碼也如此。因此我們
會在本書中盡早引導你開始實踐寫代碼,并在每個新章節(jié)介紹一個新的概念和相應的
Chef工具來慢慢引導你前進。我們也會提供動手實例來幫助你加深對概念的理解,實踐
動手寫代碼。
在你讀完本書之后,你將對Chef和基礎架構自動化的基本概念有較好的理解。然后可
以繼續(xù)閱讀以下兩本對Chef更深入探討的書籍:Stephen Nelson-Smith寫的Test-Driven
Infrastructure with Chef(第2版)和Jon Cowie寫的Customizing Chef。
誰是此書的讀者群體
本書適合沒有Chef和基礎架構自動化經(jīng)驗的系統(tǒng)管理員和軟件工程師。讀者需要相對熟
悉命令行的使用及能夠完成基本的系統(tǒng)管理任務。
本書中所有的動手實例都可以在Linux、Mac OS X或Windows上操作。必要的時候,我
們會提供分別針對每個平臺的講解。由于目前并沒有針對Chef的易用的集成開發(fā)環(huán)境
(IDE),和Chef交互的主要界面是命令行。幸運的是,除了最開始的安裝過程之外,
Chef的命令行界面在各個平臺上幾乎相同,這使我們能夠在本書覆蓋上述三個操作系統(tǒng)
下Chef的使用而不至于過度干擾使用其中任何一個操作系統(tǒng)的讀者。
你不需要擁有自動化編程經(jīng)歷來閱讀此書,但你至少要寫過shell腳本、批處理文件或
PowerShell腳本。你應該在學習寫Chef代碼之前對寫任何一種腳本相對熟悉。
為什么都是廚房用語
在閱讀此書的時候,你也許會注意到Chef的發(fā)明者使用廚房用語來描述基礎架構自動化
工具和概念。Chef軟件公司(發(fā)明并維護Chef的公司)的工程師們在早期創(chuàng)建Chef的時
候發(fā)現(xiàn)類似菜譜或按照配方單做菜的說法是對一些諸如一個自動化腳本的集合或運行一
份永遠能一致重建一個基礎架構組件的代碼的抽象概念的很好的比喻。如此使用廚房用
語來做比喻,能讓初學者面對其他專業(yè)用語相對更容易接受基礎架構自動化的概念。除
此以外,從市場和品牌的角度也讓人更容易記得Chef。
本書采用的約定
本書采用以下排版約定。
斜體(italic)
用于表明新的術語、URL、電子郵件地址、文件名和文件擴展名。
等寬字體(Constant width)
用于程序清單,在正文段落中出現(xiàn)的程序元素(如變量或函數(shù)名)、數(shù)據(jù)庫、數(shù)據(jù)類
型、環(huán)境變量、語句和關鍵字也采用這樣的字體。
等寬粗體(Constant width bold)
用于顯示命令或應該由用戶鍵入的其他文本。
等寬斜體(Constant width italic)
表明這里的文本需要替換為用戶提供的值或其他由上下文確定的值。
提示:這個圖標表示小提示或建議。
說明:這個圖標表示通用的說明。
警告:這個圖標表示警告或需要注意。
示例代碼的使用
補充資料(案例代碼、練習等等) 可在此鏈接下載(英文):http://learningchef.com。
本書的目的是幫助讀者完成工作。通常情況下,可以在你的程序或文檔中使用本書中
給出的代碼。不必聯(lián)系我們獲得代碼使用授權,除非你需要使用大量的代碼。例如,
在寫程序的時候引用幾段代碼不需要向我們申請許可。但以光盤方式銷售或重新發(fā)行
O’Reilly書中的示例確需要獲得許可。引用本書或引用本書中的示例代碼來回答問題也
不需要申請許可。但是,如果要將本書中的大量范例代碼加入你的產(chǎn)品文檔,則需要申
請許可。
我們欣賞引用時注明出處的做法,但不強求。引用通常包括書名、作者、出版社和
ISBN,例如“Learning Chef by Mischa Taylor and Seth Vargo (O’Reilly). Copyright 2015
Mischa Taylor and Seth Vargo,978-1-491-94493-6”。
如果覺得使用示例代碼的情況不屬于前面列出的合理使用或許可范圍,請通過電子郵件
聯(lián)系我們,郵箱地址為permissions@oreilly.com。
Safari® Books Online
說明: Safari Books Online是一個按需定制的數(shù)字圖書館,以圖書和視頻的形式提供全球技術領域
和經(jīng)管領域內(nèi)知名作者的專業(yè)作品。
專業(yè)技術人員、軟件開發(fā)人員、網(wǎng)頁設計人員、商務人員和創(chuàng)意專家將Safari Books
Online用作自己開展研究、解決問題、學習和完成資格認證培訓的重要來源。
Safari Books Online為組織機構、政府部門、教育和個人提供廣泛、靈活的產(chǎn)品組合
和定價方式。在這里,訂閱者通過一個可以全文檢索的數(shù)據(jù)庫中就能夠訪問數(shù)千種圖
書、培訓視頻和正式出版之前的書稿,這些內(nèi)容提供商有O’Reilly Media、Prentice Hall
Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit
Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、
IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、
McGraw-Hill、Jones & Bartlett、Course Technology及其他幾百家出版社。歡迎訪問
Safari Books Online,了解更多詳情。
聯(lián)系我們
對于本書,如果有任何意見或疑問,請通過以下地址聯(lián)系出版商:
美國:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
本書也有相關的網(wǎng)頁,我們在上面列出了勘誤表、范例以及其他一些信息。網(wǎng)址如下:
http://shop.oreilly.com/product/9781491944936.do(英文版)。
對本書做出評論或者詢問技術問題,請發(fā)送E-mail至以下郵箱:bookquestions@oreilly.com。
如果希望獲得關于本書、會議、資源中心和O’Reilly的更多信息,請訪問以下網(wǎng)址:
http://www.oreilly.com。
致謝
來自Mischa:我要感謝所有對本書創(chuàng)作過程中給予反饋的人。感謝我的姐姐和Jane Maris
Sinagub博士給予我的精神支持和鼓勵。
我要真心地感謝所有對本書有所貢獻的人,包括但不限于: Alex Vi n y a r、Alyssa
Nabors、Anthony Stonebarger、Daniel DeLeo、Deluan Quintao、Eric Helgeson、Gene
Harris、Glenna Gorlick、Jason Steele、Jennifer Davis、Jo Rhett、John Keiser、Jennifer
Davis、John Fitzpatrick、Jon Cowie、Julian Dunn、Katherine Daniels、Kelly Setzer、
Kimberly Lanning、Landon Medlock、Lejo Varughese、Mandi Walls、Michael Goetz、
Michael Vitale、Nathen Harvey、Patricia Fernandes、Rhiannon Portwood、Sascha
Bates、Sean Carolan、Serdar Sutay、Shane Robinson、Steve Taylor和Thomas Petchel。
感謝Chef軟件公司把Chef基礎培訓資料授予Creative Commons Attribution Share Alike許
可。 本書中使用了其中的一些圖表和例子。同時感謝Courtney Nash、Brian Anderson和
所有O’Reilly同仁,你們的Atlas寫作系統(tǒng)使整個寫作過程變得愉快。
特別感謝:Mark Burgess做的理論開發(fā)讓Chef成為可能,John Keiser提供written in stone
示例,Jennifer Davis對如何組織本書最開始的章節(jié)提供了寶貴的反饋,John Fitzpatrick
測試了安裝的示例及提供反饋,Nathen Harvey幫助提供入門資料,Sascha Bates對于
Chef初學者需要從何學起提供了清晰的指導,Adam Jacob和Sean O'Meara給我的關于
Chef配置管理理論的指導,以及Steve Taylor和Mark Andersen給予機會在培訓中試用本
書的內(nèi)容。
最后,我要感謝我的共同作者Seth Vargo所給予的信任,使我可以一起完成此書。
來自Seth:我想感謝讓本書成為可能的所有人。我尤其要感謝Nathen Harvey、Ramez
Mourad和Jake Vanderdray,因為他們向我介紹了Chef和整個Chef社區(qū)。沒有他們的鼓勵
和幫助,我不可能完成此書。
除了要感謝所有Mischa已經(jīng)提到的人之外,我還要感謝我的團隊Seth Chisamore和
Yvonne Lam一直以來的支持和幫助;感謝我的室友和最好的朋友Joe Frick支持我整晚
都在電腦前敲鍵盤(而放棄其他娛樂活動); 感謝卡耐基·梅隆大學的Larry Heimann
教授和Jeria Quesenberry教授帶給我足以使我能成為一位教育者的經(jīng)歷和機會; 感謝
Stafford Brunk迫我跳出固有思維;感謝我的父母Richard Stormer、Robbin Stormer、
Robert Vargo和Dara Vargo的大量支持和對我完成此書的持續(xù)提醒。
同時要感謝Courtney、Brian、Sonia和整個O’Reilly團隊把整個寫作過程變得完美。我
同時希望特別感謝我的共同作者Mischa Taylor之卓越貢獻和為完成本書而付出的辛勤努
力,沒有你,我不可能做到。
Mischa Taylor是一名Chef咨詢師,這家位于西雅圖的高成長新創(chuàng)公司,主營業(yè)務為打造Chef平臺,快速實現(xiàn)自動化配置,并將業(yè)務過程移到云端。他的興趣聚焦于打造高質量的產(chǎn)品和提升組織內(nèi)部工程實踐的生產(chǎn)力。他能說會道且擅長指導,同時在軟件開發(fā)和神經(jīng)網(wǎng)絡計算方面也頗有專研和造詣。
Seth Vargo是HashiCorp的軟件工程師和開源倡導者。他先后任職于Chef (Opscode), CustomInk和匹茲堡的多家新創(chuàng)公司。他對技術和組織文化有很強烈的愛好。在寫代碼和開源相關工作之余,他喜歡參與本地用戶組和會議。他是匹茲堡DevOps Days的組織者。
閆諾,Chef創(chuàng)始工程師。在Chef軟件公司任職期間作為主要工程師研發(fā)了托管企業(yè)Chef服務。2011年離開Chef參與創(chuàng)辦消費者推薦搜索引擎公司Livestar,2013年并入以圖片為基礎的推薦、探索引擎公司Pinterest。在Pinterest任職期間,他參與構建綜合性實時認知及響應平臺,后者服務于Pinterest的自動化垃圾內(nèi)容處理、通知推送服務、廣告服務及內(nèi)容推薦服務等。2015年底,他離開Pinterest,目前正在為解決新的工程挑戰(zhàn)而忙得樂此不彼。
閆諾畢業(yè)于美國華盛頓大學(西雅圖),大學主修應用及計算數(shù)學。平時對世界各地的文化和各類藝術很感興趣。工作之余,時常為朋友圈內(nèi)有需要的創(chuàng)業(yè)公司提供幫助,積極參與鼓勵大學生學習科學、技術、工程及數(shù)學的公益項目。