Puppet
如何從層次結構的其他地方引用 hiera 變數?
因此,假設在一個非常具體的 hiera YAML 文件中,我定義了一個變數,例如“env_name”。
env_name:“開發不穩定”
現在在一個更通用的 hiera 文件中,我想將該變數插入一個字元串。
server_name: “服務-%{env_name}.%{::domain}”
我的測試似乎暗示層次結構中其他地方的 hiera 變數在一般情況下不可用於插值。不幸的是,這是真的嗎?
您可以在 Hiera 中使用 Hiera 查找函式。此處的文件:https ://docs.puppetlabs.com/hiera/1/variables.html#using-lookup-functions
在您的情況下,您將使用:
server_name: "service-%{hiera('env_name')}.%{::domain}"
這是一個優先級查找,將從找到鍵
env_name
的最高(最具體)層次結構級別獲取鍵的值。這需要 Hiera 1.3 或更高版本。
對於 Puppet 5 中使用的 Hiera 5,請使用以下語法:
server_name: "service-%{lookup('env_name')}.%{::domain}"
…
%{lookup('env_name')}
從其他層次鍵獲取數據的部分在哪裡。(來源)