我正在为基于node.js的网络应用编写一个主厨部署脚本。我是一名厨师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
答案 0 :(得分:0)
在大多数情况下,配方将完全匹配您在问题中定义的伪代码。但是,您需要考虑的一件事是如何使配方具有幂等性。
Chef的核心概念之一是,如果机器已经处于正确状态(即您已经部署了正确版本的应用程序),那么您不应该执行任何工作。
虽然我没有使用它们,但您应该查看公开LWRP以部署应用程序的application和application_nodejs烹饪书。