使用Chef仅管理文件的一部分

时间:2017-03-23 01:13:49

标签: chef

我正在使用chef来管理tomcat应用程序。在这个应用程序中,有一个web.xml文件,我需要进行1次小改动。到目前为止,我一直在使用该文件的模板,但是应用程序的作者喜欢在每次更新时更改此文件的内容,这意味着我必须在每次更新时更改我的模板。在我看来,这就失败了。

我在文件中唯一关心的是这一点接近结尾:

<!--
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
-->

我只需要删除注释标记,并将自己的值插入session-timeout标记中。我想保留文件的其余部分,但是供应商会提供它,并保留更新版本软件所带来的任何更改。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

简短版本,请使用line食谱。

长版本,这很难做到,最佳的做法是让您的应用支持某种配置包含系统,以便您可以将片段作为template资源进行管理。

答案 1 :(得分:0)

从官方cookbook获取文件内容以编程方式添加内容,如果配置在xml中,您还可以尝试xml解析器,然后渲染模板运行时,然后部署该模板。