
- 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 模組和清單檔案的強大功能。
編寫自定義函式
在編寫函式之前,需要牢記以下幾點。
在 Puppet 中,函式由編譯器執行,這意味著所有函式都在 Puppet master 上執行,並且它們不需要處理任何 Puppet 客戶端。函式只能與代理互動,前提是資訊以事實的形式提供。
Puppet master 會捕獲自定義函式,這意味著如果對 Puppet 函式進行了一些更改,則需要重新啟動 Puppet master。
函式將在伺服器上執行,這意味著函式需要的任何檔案都應該存在於伺服器上,並且如果函式需要直接訪問客戶端機器,則無法執行任何操作。
總共有兩種不同型別的函式可用,一種是返回值的 Rvalue 函式,另一種是不返回任何值的語句函式。
包含函式的檔名應與檔案中的函式名相同。否則,它將不會自動載入。
放置自定義函式的位置
所有自定義函式都作為單獨的.rb檔案實現,並在模組之間分發。需要將自定義函式放在 lib/puppet/parser/function 中。可以從以下位置的.rb檔案載入函式。
- $libdir/puppet/parser/functions
- Ruby $LOAD_PATH 中的 puppet/parser/functions 子目錄
建立新函式
新函式是使用puppet::parser::Functions模組內的newfunction方法建立或定義的。需要將函式名稱作為符號傳遞給newfunction方法,並將要執行的程式碼作為塊傳遞。以下示例是一個函式,用於將字串寫入 /user 目錄內的檔案。
module Puppet::Parser::Functions newfunction(:write_line_to_file) do |args| filename = args[0] str = args[1] File.open(filename, 'a') {|fd| fd.puts str } end end
一旦使用者聲明瞭函式,就可以在清單檔案中使用它,如下所示。
write_line_to_file('/user/vipin.txt, "Hello vipin!")
廣告