【问题标题】:Modify configuration files with Chef使用 Chef 修改配置文件
【发布时间】:2015-12-15 20:33:38
【问题描述】:

我正在编写一本说明书来安装和配置应用程序。 从我搜索的内容来看,修改配置的最佳方法是放置该配置文件的模板。但是一个应用程序可以有不同的版本,配置文件可能会有所不同。这里最好的解决方案是什么? 创建将就地修改文件的提供程序和资源或创建将处理更改的 ruby​​ 块? 谢谢。

【问题讨论】:

    标签: chef-infra cookbook lwrp


    【解决方案1】:

    我们所做的是将应用说明书版本同步到应用版本。

    本说明书负责部署和配置应用程序,因此模板会在版本更改时相应更新。

    您没有提供太多关于配置文件中可能发生的变化的信息,通常最好的选择是拥有一个详尽的配置,并根据属性值启用或不启用它的一部分,以根据所需的规定进行调整环境、角色、版本等。

    follow-up answer on the follow-up question

    【讨论】:

    • 感谢您的回答。请在下面查看我的评论。
    • @IgorZilberman 不清楚发生了什么变化,请在您的问题中制作一个案例示例,以便我们正确回答。
    • 对不起,现在我意识到我实际上是在问两个问题。假设我将同步版本 np ,第二部分是应用程序有一个文件,其中存储该应用程序的所有客户端(从属) - 这意味着安装此应用程序的每个节点都应将其主机名添加到该文件中。女巫存储在共享位置下。所以我创建了 LWRP 来添加主机名(如果它不存在) - 放置模板不会完成这项工作。
    • @igor 带有搜索结果的模板绝对可以完成这项工作。
    【解决方案2】:

    我假设您有一个 XML 或 JSON 或类似的配置文件,并且有配置参数和相应的值。

    如果配置文件变体是指配置参数值变体,那么您可以使用 ERB 模板来创建配置模板。在创建模板时,您会为不断变化的配置值添加变量。这些变量在运行时确定,变量值在您的配方中提供。

    配置参数/模板本身可能会随着应用程序的不同版本而改变。以我的经验,处理这个问题的一种方法是将食谱版本与您的应用程序版本结合起来。这样您就可以随着应用程序的发展更新配置模板。

    【讨论】:

    • 不,我有一个常规的文本配置文件,它存储在共享位置并由该应用程序的每个客户端更新。所以你的意思是我应该关注应用程序的每次更新并更新模板?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2013-05-28
    相关资源
    最近更新 更多