
- Puppet 教程
- Puppet - 首頁
- Puppet 基礎
- Puppet - 概述
- Puppet - 架構
- Puppet - 安裝
- Puppet - 配置
- Puppet - 環境配置
- Puppet - 主伺服器
- Puppet - 代理設定
- Puppet - SSL 證書設定
- r10K 的安裝與配置
- Puppet - 驗證設定
- Puppet - 編碼風格
- Puppet - 清單檔案
- Puppet - 模組
- Puppet - 檔案伺服器
- Puppet - Facter 和事實
- 高階 Puppet
- Puppet - 資源
- Puppet - 資源抽象層
- Puppet - 模板
- Puppet - 類
- Puppet - 函式
- Puppet - 自定義函式
- Puppet - 環境
- Puppet - 型別和提供程式
- Puppet - RESTful API
- Puppet - 即時專案
- Puppet 有用資源
- Puppet - 快速指南
- Puppet - 有用資源
- Puppet - 討論
Puppet - 清單檔案
在 Puppet 中,所有使用 Ruby 程式語言編寫並以 .pp 副檔名儲存的程式都稱為 清單(manifests)。一般來說,所有旨在建立或管理任何目標主機機的 Puppet 程式都稱為清單。所有用 Puppet 編寫的程式都遵循 Puppet 編碼風格。
Puppet 的核心是資源的宣告方式以及這些資源如何表示其狀態。在任何清單中,使用者都可以擁有各種資源的集合,這些資源使用類和定義組合在一起。
在某些情況下,Puppet 清單甚至可以包含條件語句以實現所需狀態。但是,最終一切都歸結為確保所有資源都以正確的方式定義和使用,並且在轉換為目錄後應用的已定義清單能夠執行其設計任務。
清單檔案工作流程
Puppet 清單包含以下元件:
檔案(這些是普通檔案,Puppet 與它們無關,只需將它們拾取並放置到目標位置)
資源
模板(這些可用於在節點上構建配置檔案)。
節點(此處定義了與客戶端節點相關的所有定義)
類
注意事項
在 Puppet 中,所有清單檔案都使用 Ruby 作為其編碼語言,並以 .pp 副檔名儲存。
許多清單中的“匯入”語句用於在 Puppet 啟動時載入檔案。
為了匯入目錄中包含的所有檔案,您可以以另一種方式使用 import 語句,例如 import 'clients/*'。這將匯入該目錄內所有 .pp 檔案。

編寫清單
使用變數
在編寫清單時,使用者可以在清單中的任何位置定義新變數或使用現有變數。Puppet 支援不同型別的變數,但其中一些常用變數例如字串和字串陣列。除此之外,還支援其他格式。
字串變數示例
$package = "vim" package { $package: ensure => "installed" }
使用迴圈
當希望對同一組程式碼進行多次迭代直到滿足定義的條件時,可以使用迴圈。它們還用於使用不同的值執行重複性任務。為 10 件不同的事情建立 10 個任務。可以建立一個單一任務並使用迴圈來重複該任務,其中包含想要安裝的不同軟體包。
最常用的方法是使用陣列來使用不同的值重複測試。
$packages = ['vim', 'git', 'curl'] package { $packages: ensure => "installed" }
使用條件語句
Puppet 支援傳統程式語言中大多數可找到的條件結構。條件可用於動態定義是否執行特定任務或應執行一組程式碼。例如 if/else 和 case 語句。此外,像 execute 這樣的條件還將支援類似於條件的屬性,但僅接受命令輸出作為條件。
if $OperatingSystem != 'Linux' { warning('This manifest is not supported on this other OS apart from linux.') } else { notify { 'the OS is Linux. We are good to go!': } }