我正在寻找一些关于如何对守卫进行编程以实现差异部署的示例。假设我有exe1,exe2,sql1,sql2作为我的整个应用程序。我创建了一个完整的cookbook,其中包含部署整个应用程序的步骤。将其部署在我的服务器上。
然后我在sql2中进行了更改。我在食谱中做了更改并上传了;完整的食谱上传到服务器。现在我希望厨师只为sql2做必要的部署步骤。厨师会自动处理吗?我看到写保护的例子,例如:检查数据库实例是否存在,如果没有安装等等。我是否必须编写类似的保护来检查文件更改并仅部署更改?什么是最佳实践?
答案 0 :(得分:0)
大多数Chef资源(以及其他现代CM工具中的类似构造)都是"幂等的"意味着他们只采取任何必要的行动来达到理想的最终状态。这意味着,如果您拥有template
资源且内容已经正确,则不会更新。有些资源本质上不具备幂等性,主要是execute
和朋友,因此您可以编写额外的检查以确保自己的幂等性。