Puppet 架構學習入門套件
Puppet 是一款配置管理和部署工具,當系統管理員團隊負擔過重時,它可以作為 IT 基礎設施的安全網。Puppet 能夠以人類難以匹敵的機器效率,安裝具有相同規格和閾值的多個伺服器,確保所有 IT 系統都得到一致維護。作為部署工具,Puppet 可以自主地在節點上安裝軟體、服務和應用程式。Puppet 實施“基礎設施即程式碼”,將 IT 公司的流程、指令和其他元素編纂成程式碼。對於快速發展的公司來說,該工具對於擴充套件 IT 團隊非常重要。
讓我們從討論為什麼您可能想要使用 Puppet 開始這節 Puppet 教程。
為什麼需要 Puppet?
國際化業務複雜且分散。負責維護組織 IT 基礎設施(資料中心、伺服器中心和相關係統)的任何系統管理員團隊最終都會達到臨界點。當業務的 IT 需求超過團隊的能力時,就會發生這種情況。這使得 IT 領導者在不調整資金和人員配備水平的情況下陷入困境。
Puppet 在這裡發揮作用,允許規模較小的團隊透過高階自動化完成更多工。資料和伺服器中心的更改可以在幾秒鐘內完成。Puppet 可以立即回滾到之前的正常狀態,從而減少伺服器故障的影響。透過按需部署伺服器和嚴格的安全措施,Puppet 減少了分發方面的麻煩。簡單的 Ruby 指令碼用於啟用所有內容。
Puppet 架構
多個客戶端可以使用由 Puppet-master 和 Puppet-client 組成的主從架構連線到 Puppet-master,在 Puppet-master 上編寫和儲存程式碼。如果客戶端需要配置程式碼,只需請求即可。
這體現了 Puppet 架構的組成部分:
Puppet 架構
清單是 Puppet-master 的子元件,在這裡建立 Ruby 程式碼。模組將清單、模板和檔案連線在一起。這些程式碼指定如何為客戶端執行不同的任務。
下一個元件是資料,它由模板組成。例如,使用者可以在清單中編寫程式碼,以在客戶端機器之一上生成名為 index.html 的檔案。模板包含檔案的文字。指向 Puppet。
Puppet master 的證書頒發機構 (CA) 是一個關鍵元件。當客戶端將證書傳輸到 master 時,CA 授權 master 簽署證書。Puppet-master 和 Puppet client 使用 SSL 證書交換進行互動。master 對證書的簽名驗證客戶端已註冊並授權資料傳輸。
master 和 client 之間的所有通訊都必須透過代理元件。代理元件收集有關客戶端當前狀態的所有資訊,然後將其傳送到 puppet master。客戶端將收到清單,用於與資料匹配(取決於比較結果)。
在這個 Puppet 教程中學習了 Puppet 之後,讓我們來看看 Puppet 的設計。
Puppet 的工作原理
在涉及 master 和三個客戶端的場景中,每個元件都向其他元件顯示自身,建立一個加密的通訊通道。所有在 master 和客戶端之間交換的資料都透過此通道移動。
此過程的核心是 SSL (安全套接字層) 證書。證書確保外部系統無法訪問透過加密通道傳輸的資料。
關於 Puppet 的必須瞭解的知識
Puppet 架構概述 − Puppet 是一種配置管理工具,有助於自動化 IT 基礎設施的部署、配置和管理。Puppet 的架構由三個主要元件組成:Master、Agent 和模組。
Puppet Master − Puppet Master 是中央控制系統,它管理所有配置資料和程式碼。它為管理員提供一個 Web 介面來管理其基礎設施的配置。Puppet Master 還管理配置更改到 Puppet Agent 的分發。
Puppet Agent − Puppet Agent 執行在基礎設施中的每個節點上,並與 Puppet Master 通訊以接收和應用配置更改。Puppet Agent 定期與 Puppet Master 檢查以檢索新的配置更改。
模組 − 模組是定義特定配置或功能的 Puppet 程式碼集合。模組可以由使用者編寫,也可以從 Puppet Forge 獲取,Puppet Forge 是一個社群貢獻的 Puppet 程式碼儲存庫。
Puppet DSL − Puppet 程式碼使用 Puppet 領域特定語言 (DSL) 編寫。DSL 是一種宣告式語言,它描述了基礎設施的期望狀態。Puppet 程式碼組織成清單,清單是定義特定節點或節點組的期望配置的檔案。
Puppet 清單 − Puppet 清單定義節點或節點組的期望配置。清單可以包含資源,資源是 Puppet 程式碼的構建塊。資源描述特定的配置項,例如檔案、包或服務。
Puppet 模組 − Puppet 模組是清單、模板和檔案的集合,它們定義特定的配置或功能。模組可以組織成環境,環境是包含同一模組的不同版本的目錄。
Puppet 類 − Puppet 類用於組織和分組清單或模組中的資源。類提供了一種封裝配置邏輯並使其可重用的方法。
Puppet 事實 − Puppet 事實是關於節點的資訊片段,例如其作業系統、網路設定或硬體配置。Puppet 事實可用於建立根據節點的特定特性定製的動態清單。
Puppet Forge − Puppet Forge 是一個社群貢獻的 Puppet 程式碼儲存庫。使用者可以從 Forge 下載模組並在其基礎設施中使用它們。
結論
IT 團隊可以使用配置管理和部署工具 Puppet 自動化其基礎設施的管理。對於擁有複雜和分散式 IT 系統的跨國公司來說,它尤其有用。Puppet 架構由三個主要元件組成:Puppet Master、Puppet Agent 和模組。Puppet Master 是所有配置資料和程式碼的主要管理平臺,它與 Puppet Agent 互動以實施配置更改。名為模組的 Puppet 程式碼集合定義特定配置或功能。Puppet 領域特定語言 (DSL) 用於建立清單,這些清單指定特定節點或節點組的預期配置。Puppet 類用於組織和分組清單或模組中的資源,而 Puppet 事實提供有關節點的資訊。Puppet Forge 是一個社群貢獻的 Puppet 程式碼儲存庫,可以下載並用於基礎設施中。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP