我有一个自定义的傀儡模块来设置Apache服务器,并且我使用模板复制配置。我们有不同的环境,如生产,质量保证,集成测试。
每个环境都有一个或多个服务器。模板使用基于这些环境的变量,这将确保在所有环境中使用相同的模板文件,而不是使用不同的环境指定文件。
到目前为止,我已经知道我们可以在heira中使用{environment}.yaml类型文件,我不喜欢这种类型的文件,因为我不想为production.yaml和qa.yaml这样的环境维护两组文件
实现这种情况的最佳实践是什么?
是否有上述情况的工作示例。
发布于 2017-05-17 15:05:48
管理特定于环境的数据的正确方法是使用Hiera -Hiera的目的是分离配置数据(例如域、IP地址)和逻辑木偶代码。如果您有类似的环境,则需要重复配置。
您可以使用静态事实来确定环境,并在Hiera结构中使用%{::environment} (用于Puppet3)或%{facts.environment} (用于Puppet4)访问此环境。
您的模块应该使用参数化来允许Hiera将值传递给类。
要存储静态事实,请在/etc/facter/facts.d中创建一个文件(必要时创建目录),其中包含内容environment=production,例如:
odin ~ # echo 'environment=production' >> /etc/facter/facts.d/env.txt
odin ~ # facter -p environment
productionhttps://serverfault.com/questions/850181
复制相似问题