Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Configuration 为什么配置文件应该';不能和厨师/木偶一行一行地改变吗?_Configuration_Chef Infra_Puppet - Fatal编程技术网

Configuration 为什么配置文件应该';不能和厨师/木偶一行一行地改变吗?

Configuration 为什么配置文件应该';不能和厨师/木偶一行一行地改变吗?,configuration,chef-infra,puppet,Configuration,Chef Infra,Puppet,为什么在配置文件中更改行被认为是Chef或Puppet中的反模式? 据我所知,这有点像坏习惯。我假设此文件编辑是以某种幂等方式并使用高级工具(例如augeas)完成的 为什么将使用ERB模板部署整个文件视为首选方法 您可以找到许多示例,其中dev ops建议使用模板而不是文件编辑。例如,,,等等。在将系统设置为已知状态方面,部署整个文件比编辑要好,因为您确信完成后文件完全符合预期 如果您正在修补寻找问题的潜在解决方案并手动编辑一些配置文件,那么您就不必担心手动编辑会成为环境中不受控制的一部分。下

为什么在配置文件中更改行被认为是Chef或Puppet中的反模式? 据我所知,这有点像坏习惯。我假设此文件编辑是以某种幂等方式并使用高级工具(例如augeas)完成的

为什么将使用ERB模板部署整个文件视为首选方法


您可以找到许多示例,其中dev ops建议使用模板而不是文件编辑。例如,,,等等。

在将系统设置为已知状态方面,部署整个文件比编辑要好,因为您确信完成后文件完全符合预期

如果您正在修补寻找问题的潜在解决方案并手动编辑一些配置文件,那么您就不必担心手动编辑会成为环境中不受控制的一部分。下次运行chef client时,您知道状态将完全与chef recipe中指定的状态相同,并且不会包括您的编辑

而且,一般来说,稳健地编辑一个文件比仅仅生成一个文件更困难、更复杂。在基本情况下,您可以编写幂等的内容,但如果文件包含语法错误或无效内容,则编辑将不再有效


与往常一样,有时候你没有选择,编辑是唯一的选择。

事实上,DevOps社区中有很大一部分人认为接受配置文件的系统/包默认值,并且只通过
augeas
修改所需内容是首选方法,Github DevOps就是其中之一(如果你碰巧在2012年木偶展上抓住了他们)

我认为始终使用模板的默认模式会造成太高的维护负载,并且几乎总是需要为堆栈中的所有内容锁定特定版本,否则就有可能使用与该资源的较新版本不兼容的模板


这两个选项都有使用案例,但总的来说,我倾向于“尽可能少地拥有”实践,而不是“即使你不必拥有一切”实践。

FYI chef支持逐行操作,这是一个很好的答案。只是一个附带问题-是否有像chef这样的工具,其开发人员来自“修改你需要的东西”阵营?