1

我有一本厨师食谱,里面有四个食谱。每个配方配置一个 Web 应用程序:

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

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

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

4

2 回答 2

2

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

于 2017-02-22T00:13:36.130 回答
1

你应该写自我收敛的食谱而不是这个。

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

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

于 2017-02-22T11:08:35.987 回答