簡體   English   中英

在puppet清單中從yaml獲取變量

[英]Fetch variable from yaml in puppet manifest

我正在為木偶做一個項目,但目前只停留在一個邏輯中。

因此,想知道我們可以從puppet清單文件中的.yaml,.json或純文本文件中獲取變量。

例如,我的puppet清單想要創建用戶,但變量存在於.yaml或任何配置文件中,因此需要從外部文件中獲取varibale。 如果.yaml文件中存在多個用戶,則puppet清單也可以進行循環。

我讀了關於hiera,但是讓我們說我們沒有使用hiera是否有任何可行的方法。

使用內置函數和stdlib函數的組合可以通過多種方式實現此目的,至少對於YAML和JSON。

  • 使用內置文件函數和parseyamlparsejson 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}
  • 或者,使用loadyamlloadjson stdlib函數:
$myhash = loadyaml('/etc/puppet/data/myfile.yaml')
notice($myhash)

這種方法的問題是你需要知道Puppet master上的文件路徑。 或者,您可以使用Puppet 6 延遲函數並從代理節點上的文件中讀取數據。

(你是否應該這樣做完全是另一回事 - 提示:答案是你幾乎肯定應該使用Hiera - 但這不是你問的問題。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM