0

我正在为基于 node.js 的 Web 应用程序编写厨师部署脚本。我是一个总厨师n00b。

到目前为止,进展顺利;我有一个“dependencies.rb”配方,它安装了我的应用程序所依赖的所有包。现在,我正在尝试编写“install.rb”,它实际上会继续安装我的应用程序。

我想要发生的是:

If the app install directory already exists then:
    Stop the server
    Delete the old install directory
Unpack the new version to the install directory
Start the service

嗯,这有点过于简化了,但这或多或少是我想要完成的。在食谱中这样做的最佳方法是什么?我有一种感觉,它将涉及“通知”。:P

4

1 回答 1

0

在大多数情况下,配方将与您在问题中定义的伪代码完全匹配。但是,您需要考虑的一件事是如何使配方具有幂等性。

Chef 的核心概念之一是,如果机器已经处于正确的状态(即您已经部署了正确版本的应用程序),那么您不应该执行任何工作。

虽然我没有使用它们,但您可能应该看一下应用程序application_nodejs说明书,它们公开了用于部署应用程序的 LWRP。

于 2013-06-26T17:42:14.310 回答