我有一个puppet模块所在的木偶大师。
我想使用相同的代码和单个puppet master来部署不同环境的代码以用于不同的项目。要存储我正在使用hiera的数据。挑战是有一些项目特定数据,代码是相同的。
有没有办法在运行时在hiera层次结构中使用项目特定文件。如果我正在为项目A运行木偶,它将在项目层次中拾取项目特定变量,对于项目B,它将获取项目B特定数据。
通过设置多个木偶大师,我们可以实现这一目标。我们如何使用单个木偶大师来做到这一点?
答案 0 :(得分:2)
完全有可能!在hiera.yaml
文件中,您可以根据事实设置自定义层次结构,例如:
---
:hierarchy:
- "%{module_name}/%{::fqdn}"
- "%{module_name}/%{::domain}"
- "%{module_name}/global"
- "global"
在这种情况下,如果您要为您的环境提供不同的域名(例如dev.site
,prod.site
,test.site
等),则会查找不同的hiera文件。它适用于任何可能有用的事实(例如,network
或environment
事实)。