为什么在Chef或Puppet中将更改配置文件中的行视为反模式?
据我了解,这是一种坏习惯。我假设此文件编辑以某种幂等的方式并使用高级工具(例如augeas)完成。
为什么使用ERB模板部署整个文件被认为是首选方法?
您可以找到很多示例,其中dev-ops建议使用模板而不是文件编辑。例如here,here,here等。
最佳答案
实际上,在DevOps社区中,有很大一部分看到接受配置文件的系统/软件包默认值,并且仅通过augeas
修改所需的内容作为首选方法,Github devops就是其中之一(如果您碰巧在Puppet Conf上找到了它们2012)。
我认为采用始终使用模板的默认模式会产生过高的维护负担,并且几乎总是需要针对堆栈中的所有内容锁定特定版本,否则您可能会冒用与该资源的较新版本不兼容的模板的风险。
两种选择都有用例,但总的来说,我赞成“尽可能少地拥有”实践,而不是“即使没有必要也要拥有一切”实践。
关于configuration - 为什么不应该使用Chef/Puppet逐行更改配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14885267/