[英]Fetch variable from yaml in puppet manifest
我正在為木偶做一個項目,但目前只停留在一個邏輯中。
因此,想知道我們可以從puppet清單文件中的.yaml,.json或純文本文件中獲取變量。
例如,我的puppet清單想要創建用戶,但變量存在於.yaml或任何配置文件中,因此需要從外部文件中獲取varibale。 如果.yaml文件中存在多個用戶,則puppet清單也可以進行循環。
我讀了關於hiera,但是讓我們說我們沒有使用hiera是否有任何可行的方法。
使用內置函數和stdlib函數的組合可以通過多種方式實現此目的,至少對於YAML和JSON。
parseyaml
或parsejson
stdlib函數: 在mymodule / files / myfile.yaml創建一個文件:
▶ cat files/myfile.yaml
---
foo: bar
然后在您的清單中將其讀入字符串並解析它:
$myhash = parseyaml(file('mymodule/myfile.yaml'))
notice($myhash)
這將輸出:
Notice: Scope(Class[mymodule]): {foo => bar}
loadyaml
或loadjson
stdlib函數: $myhash = loadyaml('/etc/puppet/data/myfile.yaml')
notice($myhash)
這種方法的問題是你需要知道Puppet master上的文件路徑。 或者,您可以使用Puppet 6 延遲函數並從代理節點上的文件中讀取數據。
(你是否應該這樣做完全是另一回事 - 提示:答案是你幾乎肯定應該使用Hiera - 但這不是你問的問題。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.