摘要:為什么要開發系統管理員都喜歡自己寫點小工具來讓自己的工作完成的更快或者更好不管是在大企業管理大量的服務器還是只管理兩三臺機器但是很少人會把他們的工具發布出來也就是是說極少有工具能被重用或者說很多工具就只能在所在的組織內部有用拷貝給別的組織他
為什么要開發puppet
系統管理員都喜歡自己寫點小工具來讓自己的工作完成的更快或者更好, 不管是在大企業管理大量的服務器還是只管理兩三臺機器. 但是很少人會把他們的工具發布出來. 也就是是說極少有工具能被重用,或者說很多工具就只能在所在的組織內部有用.拷貝給別的組織,他們也用不上. 也就是說,每個系統管理員,在一個新的公司,都會另起爐灶開發一套基于ssh,for循環的"系統"來幫助自己完成系統管理任務.
開發puppet是為了讓系統管理員社區可以相互交流和共享成熟的工具,避免重復的勞動. 通過以下兩個特性來實現這一目標:
提供一個簡潔的但是強大的框架來完成系統管理任務
系統管理任務可以描述成puppet語言,因此可以相互分享代碼,就像分享其他語言的代碼一樣,比如python, c等
因此,作為系統管理員的你可以更快的完成工作,因為你可以用puppet來處理所有的管理細節. 甚至你還可以下載其他管理員的puppet代碼來讓你的工作完成的更快.
作為工具的 puppetpuppet是一個配置管理工具, 典型的, puppet是一個C/S結構, 當然,這里的C可以有很多,因此,也可以說是一個星型結構. 所有的puppet客戶端同一個服務器端的puppet通訊. 每個puppet客戶端每半小時(可以設置)連接一次服務器端, 下載最新的配置文件,并且嚴格按照配置文件來配置服務器. 配置完成以后,puppet客戶端可以反饋給服務器端一個消息. 如果出錯,也會給服務器端反饋一個消息. 下圖展示了一個典型的puppet配置的數據流動情況.
puppet與其他手工操作工具有一個最大的區別就是 puppet的配置具有穩定性,因此你可以多次執行puppet, 一旦你更新了你的配置文件,puppet就會根據配置文件來更改你的機器配置,通常每30分鐘檢查一次. puppet會讓你的系統狀態同配置文件所要求的狀態保持一致. 比如你配置文件里面要求ssh服務必須開啟. 假如不小心ssh服務被關閉了,那么下一次執行puppet的時候,puppet會發現這個異常,然后會開啟 ssh 服務. 以使系統狀態和配置文件保持一致.puppet就象一個魔術師,會讓你的混亂的系統收斂到puppet配置文件所想要的狀態.
可以使用puppet管理服務器的整個生命周期,從初始化到退役.不同于傳統的例如sun的Jumpstart或者redhat的Kickstart, puppet可以長年讓服務器保持最新狀態.只要一開始就正確的配置他們,然后再也不用去管他們.通常puppet用戶只需要給機器安裝好puppet并讓他們運行,然后剩余的工作都由puppet來完成.
puppet的細節和原理puppet的目的是讓你只集中于你要管理的目標,而忽略實現的細節,例如命令名,參數或者文件格式. puppet把系統里面的用戶,軟件包,服務 看作是"資源", puppet的作用就是管理這些資源以及資源之間的相互聯系.
底層支撐工具 Providerspuppet有很多的資源類型,例如文件,用戶,軟件包,服務, 不同的操作系統上對資源的管理命令是不一樣的,例如debian下面用apt-get安裝軟件,redhat下面用yum安裝軟件.
因此 puppet 對同一資源的管理可以有多個實現,配置資源的時候,可以明確的指定用什么provider. 例如在redhat上配置一個package資源的時候,可以指定provide是yum.
puppet 通過管理資源的方式來管理系統, 例如管理某個軟件是否要安裝,是安裝最新的還是安裝了就行. 管理某個服務是否開啟, 管理某個文件的屬性,內容等等. 所有的資源都有對應的幾個屬性可以設置. 通過設置屬性的方式來管理資源. 有一種特殊的屬性可以用在所有的資源上面,這種屬性叫做 metaparams ( 元參數或者元屬性).
資源之間的關系支持資源之間的關系配置是puppet的關鍵特性之一. 一個資源的變更可以對另一個資源產生一個動作.例如 /etc/apache.conf這個資源有改動,可以讓/etc/init.d/apache 這個資源 reload一下.
假如一個資源依賴另一個資源,那么puppet會優先配置被依賴的資源,因此如果你的配置文件沒有準備好,對應的 服務是不會先啟動的.
有時候,沒有合適的資源來管理服務器上的配置, 為了處理這個情況,puppet 提供一個叫做 exec的資源類型. 利用這個資源,你可以執行外部命令. 例如你可以用svnadmin命令來創建一個svn庫.
puppet 語言 資源puppet的全部就是管理資源,因此puppet語言的焦點就是處理這些資源,下面是一個基本的管理單個資源的例子.
file {"/etc/hosts": owner = root, group = root, mode = 644 }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7886.html
摘要:視覺感知測試視覺回歸測試為了解決上面提到的各種問題,視覺感知測試孕育而生。第三種方式,無法進行視覺感知測試結果只能進行視覺回歸測試和上一版的繼續比較差異。 前端自動化測試 之 視覺測試 showImg(https://segmentfault.com/img/remote/1460000014720180); 前端測試分類 showImg(https://segmentfault.co...
摘要:視覺感知測試視覺回歸測試為了解決上面提到的各種問題,視覺感知測試孕育而生。第三種方式,無法進行視覺感知測試結果只能進行視覺回歸測試和上一版的繼續比較差異。 前端自動化測試 之 視覺測試 showImg(https://segmentfault.com/img/remote/1460000014720180); 前端測試分類 showImg(https://segmentfault.co...
閱讀 964·2021-11-24 10:42
閱讀 3475·2021-11-19 11:34
閱讀 2605·2021-09-29 09:35
閱讀 2525·2021-09-09 09:33
閱讀 641·2021-07-26 23:38
閱讀 2515·2019-08-30 10:48
閱讀 1385·2019-08-28 18:07
閱讀 422·2019-08-26 13:44