【问题标题】:Using multiple recipes in same cookbook在同一本食谱中使用多个食谱
【发布时间】:2017-07-11 17:05:48
【问题描述】:

我有一本包含四个食谱的厨师食谱。每个配方配置一个 Web 应用程序:

myCookbook
   |
   |_ _ recipes
       |_ _ default.rb
       |_ _ app1.rb
       |_ _ app2.rb
       |_ _ app3.rb
       |_ _ app4.rb

我已将此食谱配置为基于 default.rb 配方更新应用程序,该配方仅迭代其他 Web 应用程序配方并运行它们。该食谱由数据包中更新的 Web 应用程序版本启动。

因为我将所有应用程序都放在一本食谱中,所以如果我想更新一个应用程序,那么我必须将它们全部更新。我可以手动覆盖运行列表以仅部署一个应用程序,但是有没有办法 “刀 diff”默认配方(或类似内容)中的数据包以仅运行已更新的 Web 应用版本的相应配方?

【问题讨论】:

    标签: chef-infra chef-recipe databags


    【解决方案1】:

    您必须使用本地副本自己实现差异以进行幂等跟踪。总的来说,我建议您修改您的食谱,使其具有幂等性和收敛性。

    【讨论】:

      【解决方案2】:

      你应该编写自收敛的配方而不是这个。

      如果此处使用外部配方(默认配方)的主要原因是避免在所有配方(更新应用程序的代码)上一遍又一遍地编写相同的代码,那么您应该尝试编写 librarycustom resource 可供您的所有应用程序使用。

      在线厨师文档有足够的信息来做这件事,如果你有基本的 Ruby 知识,这也很容易。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 2019-01-29
        • 2016-09-22
        • 2017-04-27
        相关资源
        最近更新 更多