第一課:Puppet 入門介紹
目前存在多個不同的配置管理軟件,各有優(yōu)劣,本屆課程做簡要介紹對比,講解puppet基本原理和入門知識。
課程內(nèi)容:
運維自動化軟件簡要介紹和對比
Puppet安裝(master/agent,standalone模式),升級,主要配置選項簡要介紹,支持系統(tǒng)和平臺,Ruby環(huán)境依賴(RVM簡要介紹)。
基本工作原理,編譯和catalogs。
核心配置文件。
puppet的第一個基本配置文件。
第二課:Puppet基本命令和語法
puppet實現(xiàn)了自己的DSL,本節(jié)課講解puppet的語法。
課程內(nèi)容:
puppet基本命令
語法風(fēng)格。
保留關(guān)鍵字,命名規(guī)范
變量(作用域),數(shù)據(jù)類型
表達式,條件語句
functions(函數(shù)/方法)
檢查puppet配置的命令。
第三課:資源和資源類型
puppet的資源是整個puppet配置更為核心的地方,puppet對整個系統(tǒng)的管理主要依賴于資源實現(xiàn)。本節(jié)課程講解puppet資源和資源類型。
課程內(nèi)容:
介紹RAL(Puppet’s resource abstraction layer),types和providers。
講解puppet資源和資源類型,核心資源類型。
獲取當前系統(tǒng)的存在資源和資源類型,manifest,并創(chuàng)建自己的puppet資源配置文件。
資源順序 ordering(元參數(shù),order關(guān)鍵字, stage,auto-order)。
資源默認值。
資源標簽。
虛擬資源,導(dǎo)出資源。
第四課:Puppet 類,模塊,模版
puppet通過一定的抽象實現(xiàn)來對某一類特定資源進行管理,比如ssh,會包括配置管理和服務(wù)管理,軟件包管理幾個部分,如何抽象出成為一個‘組合’(module),如何適應(yīng)不同的操作系統(tǒng),如何抽象配置文件,實現(xiàn)代碼重用。
課程內(nèi)容:
無參數(shù)類,有參數(shù)類,命名空間。
資源收集器。
puppet模塊。
文件和ERB模版,ERB模版語法。
defined types。
第五課:Facts和Hiera
facts為puppet提供了節(jié)點級別的metadata,使得puppet可以根據(jù) facts進行個性化的配置,比如是否是云服務(wù)器,就可以針對性的對主機進行配置變更優(yōu)化和升級等等操作。除了puppet自帶核心facts,也會涉及到如何自定義facts,來進一步增強puppet的功能。
如何重用已有的Puppet代碼,如何隔離敏感數(shù)據(jù)和配置(Hiera)。
課程內(nèi)容:
facts(內(nèi)置變量)
自定義facts
hiera介紹和使用
結(jié)合hire和facts以及環(huán)境變量。
第六課:節(jié)點管理
日常工作中會有不同類型的服務(wù)器,有的是物理服務(wù)器,有的是云服務(wù)器;有的是db服務(wù)器,有的是web服務(wù)器;那么如何進行有效節(jié)點管理/分類也成為我們眼前的一個難題,本節(jié)課講解節(jié)點分類的常見方法。如何有效的進行不同維度的節(jié)點管理。 比如,如何巧用環(huán)境變量來區(qū)分開發(fā)和測試環(huán)境,不同服務(wù)器的角色。
課程內(nèi)容:
fqdn節(jié)點匹配,正則表達式匹配
外部節(jié)點分類器(ENC)
結(jié)合puppet環(huán)境變量和hiera,custom facts,自定義節(jié)點分類器(self-classifier)
第七課:大規(guī)模部署 和 版本控制
實際工作中可能有成百上千,成千上萬臺服務(wù)器需要管理維護,比如由于安全漏洞,要升級openssl到特定版本,本節(jié)課如何大規(guī)模部署puppet,同時在大規(guī)模集群環(huán)境下如何提高puppet的性能,puppet的架構(gòu)如何擴展。
課程內(nèi)容:
如何結(jié)合版本控制,環(huán)境變量,管理puppet的代碼。
puppet master節(jié)點瓶頸和擴展。
自動簽名。
文件資源管理優(yōu)化。
第八課:Puppet 其它組件介紹
有些時候我們并不需要每一個模塊都自己編寫,我們也可以借鑒已有的代碼,如何迅速高效高質(zhì)量完成工作是我們的目標,本節(jié)課講解如何借助已有的代碼迅速增加自己的puppet模塊。
有些時候我們需要不同agent節(jié)點共享其它節(jié)點的數(shù)據(jù),比如db服務(wù)器的需要添加web節(jié)點ip作為白名單。
有些時候我們需要一些額外的功能,比如facts里面的某些配置是true 或者 false,但是是字符串變量,如何轉(zhuǎn)換成為boolean類型呢?
課程內(nèi)容:
Puppet DB 和導(dǎo)出資源。
Puppet Dashboard。
Puppet Forge。
Puppet stdlib。
第九課:puppet整合實戰(zhàn)
以具體業(yè)務(wù)系統(tǒng)講解實際環(huán)境puppet配置管理。本節(jié)課內(nèi)容會包含多個模塊設(shè)計和編碼。
第十課:Mcollective
并行作業(yè)執(zhí)行系統(tǒng),運維工程需要經(jīng)常臨時執(zhí)行一些命令以便檢查所有服務(wù)器特定文件內(nèi)容,或者特定運行指標,甚至是下載特定文件等等,使用mco可以根據(jù)預(yù)定義的factor甚至是自定的特征批量執(zhí)行任務(wù)命令。
課程內(nèi)容:
mco 配置和使用。
|