[英]Change the hiera 5 environment layer hiera.yaml location
背景
我在來自單獨的git
repos的puppet
master上使用puppet5
& hiera5
。
使用分支到環境目錄的映射,使用r10k
將代碼部署到它們各自的位置。 由於r10k
的環境沖突限制(如果現在不再如此,則表示歉意),我為hieradata
使用了單獨的位置:
Puppet code - /etc/puppetlabs/code/envirnments/
Hiera code - /etc/puppetlabs/code/hieradata/
我在/etc/puppetlabs/puppet/hiera.yaml
有一個全局hiera.yaml
文件,在我的hiera
分支/環境位置中有一個特定於環境的hiera.yaml
文件。
例如/etc/puppetlabs/code/hieradata/production/hiera.yaml
問題
我的環境hiera.yaml
由於其位置而被忽略,它應該是我的hiera.yaml
<ENVIRONMENT>
代碼所在的位置:
/etc/puppetlabs/code/environments/production/hiera.yaml
取自https://docs.puppet.com/puppet/5.0/hiera_config_yaml_5.html#location
但是它是:
/etc/puppetlabs/code/hieradata/production/hiera.yaml
解
我唯一能找到的解決方案是在我的木偶代碼hiera.yaml
中找到一個hiera.yaml
,並將datadir設置為
datadir: ../../hieradata/%{::environment}/hieradata
{ datadir: ../../hieradata/%{::environment}/hieradata
(必須是相對的)
哪個可行,但不理想,因此我正在尋找其他解決方案。
即使我將全局hiera.yaml datadir
為:
/etc/puppetlabs/code/hieradata/%{::environment}/
(可以是完整路徑)
並且在我的木偶hiera.yaml
庫中沒有hiera.yaml
文件, hiera
可以運行,但是位於此處的環境hiera.yaml
被忽略。
另一個想法是交換位置,但隨后我的木偶代碼不起作用。
因此理想情況下,我需要做的是設置環境層hier.yaml
位置,因為它似乎被硬編碼為<ENVIRONMENT>
,這是我的木偶代碼所在的位置。
我仍然想使用r10k
並且要將我的環境hiera.yaml
在我的hiera存儲庫中。
我的工作代碼:
datadir: "/etc/puppetlabs/code/environments/%{environment}/hiera"
但是路徑應該是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.