
- Puppet 教程
- Puppet - 首頁
- Puppet 基礎
- Puppet - 概述
- Puppet - 架構
- Puppet - 安裝
- Puppet - 配置
- Puppet - 環境配置
- Puppet - Master
- Puppet - Agent 設定
- 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 支援函式,就像任何其他程式語言一樣,因為 Puppet 的基礎開發語言是 Ruby。它支援兩種型別的函式,分別稱為語句和右值函式。
語句獨立存在,並且沒有返回值。它們用於執行獨立的任務,例如在新清單檔案中匯入其他 Puppet 模組。
右值返回數值,並且只能在語句需要數值時使用,例如賦值語句或 case 語句。
Puppet 中函式執行的關鍵在於,它只在 Puppet master 上執行,而不在客戶端或 Puppet agent 上執行。因此,它們只能訪問 Puppet master 上可用的命令和資料。已經存在不同型別的函式,使用者甚至有權根據需要建立自定義函式。下面列出了一些內建函式。
檔案函式
檔案資源的檔案函式用於在 Puppet 中載入模組,並以字串的形式返回所需輸出。它查詢的引數是 <模組名稱>/<檔案> 引用,這有助於從 Puppet 模組的檔案目錄載入模組。
例如,script/tesingscript.sh 將從 <模組名稱>/script/files/testingscript.sh 載入檔案。函式能夠讀取和接受絕對路徑,這有助於從磁碟上的任何位置載入檔案。
Include 函式
在 Puppet 中,include 函式與任何其他程式語言中的 include 函式非常相似。它用於宣告一個或多個類,這將導致評估這些類中存在的所有資源,並最終將它們新增到目錄中。它的工作方式是,include 函式接受類名、類列表或用逗號分隔的類名列表。
使用include語句時需要注意的一點是,它可以在一個類中多次使用,但只能包含單個類一次。如果包含的類接受引數,include 函式將自動使用<類名>::<引數名>作為查詢鍵來查詢它們的值。
include 函式不會導致類在宣告時包含在類中,為此我們需要使用包含函式。它甚至不會在已宣告的類及其周圍的類中建立依賴關係。
在 include 函式中,只允許使用類的全名,不允許使用相對名稱。
Defined 函式
在 Puppet 中,defined 函式有助於確定給定類或資源型別是在哪裡定義的,並返回布林值。還可以使用 define 來確定特定資源是否已定義或已定義的變數是否有值。使用 defined 函式時需要注意的關鍵點是,此函式至少接受一個字串引數,該引數可以是類名、型別名、資源引用或“$name”形式的變數引用。
Define 函式檢查本機和已定義的函式型別,包括模組提供的型別。型別和類按其名稱匹配。該函式透過使用資源引用來匹配資源宣告。
Define 函式匹配
# Matching resource types defined("file") defined("customtype") # Matching defines and classes defined("testing") defined("testing::java") # Matching variables defined('$name') # Matching declared resources defined(File['/tmp/file'])