簡體   English   中英

更改hiera 5環境層hiera.yaml的位置

[英]Change the hiera 5 environment layer hiera.yaml location

背景
我在來自單獨的git repos的puppet master上使用puppet5hiera5
使用分支到環境目錄的映射,使用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.

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