我是Chef的新手。我刚刚创建了一个可以部署node.js应用程序的菜谱,配置Nginx,然后将应用程序作为一个或多个由Nginx“负载平衡”的工作者启动。它很棒。我确保它非常通用,并且所有应用程序级配置都是通过属性完成的。
现在我正在考虑一个实例,我在同一台服务器上运行多个node.js应用程序。例如,主API应用程序,以及另一个将自己注册为Gearman worker的应用程序。
我该怎么做呢?我是否只需创建另一个特定于该应用程序的食谱,确保它包含通用食谱的配方,然后仅对该应用程序的食谱进行属性覆盖?
或者,如果我不再使用app config的属性,而是使用data_bags会更好吗?
感谢任何帮助。
答案 0 :(得分:1)
我会将nginx和node.js安装/配置分离到单独的cookbook中。
如果你必须在node.js上运行几个不同的应用程序,我认为可以为node.js cookbook中的每个应用程序添加一个配方,并确保每个应用程序都包含node.js本身的安装。
如果您必须有多个1和相同的应用程序/服务实例,那么最好使用一个具有不同属性或数据包的配方来引入实例之间的差异。
更具体的问题?
答案 1 :(得分:0)
您应该使用角色Roles来管理服务器上的多个cookbook。
我不完全确定你的情况,但根据你的描述,我会创建3本食谱。一个安装nginx,一个安装你的应用程序,一个安装特定于节点的配置和部署。将这些绑定到角色'app_server'并将角色放在run_list中。
这使您的应用程序更具可组合性,并且将来更容易更换任何部分。