2017-02-21 133 views
1

我有一个有四个食谱的厨师食谱。每个配方配置的Web应用程序:在同一本食谱中使用多个食谱

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

我已经配置了这个食谱根据default.rb配方更新的应用程序,只是比其他Web应用程序的食谱进行迭代,并运行它们。数据包中的更新的Web应用程序版本将启动食谱。

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

回答

2

您将不得不使用局部副本自己实现差异以进行幂等追踪。总的来说,我会建议重新调整你的食谱,使它们自身具有幂等性和收敛性。

1

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

如果后面使用外用配方(默认的)主要的原因就在这里是为了避免编写相同的代码,并在所有的食谱(即更新应用程序的代码),你应该尝试写那么librarycustom resource这将可用于您的所有应用程序配方使用。

在线厨师文档有足够的信息来做到这一点,如果您拥有基本的Ruby知识,这也很容易。