我已经阅读了 Chef 文档并了解了食谱、食谱和 run_lists 是什么,但仍然发现很难决定如何将项目组织成食谱、食谱和run_list
s。
这些之间的概念差异是什么?在什么情况下,我会使用除了 1 份食谱和 1 份食谱之外的东西?(我在网上找到的大多数示例/教程只有 1 个食谱和 1 个食谱)
例子
我正在尝试制作一个 Chef 项目来启动和运行 webapp。具体来说,我想:
- 安装 JDK 1.8、Tomcat 7 和 Postgres 9.3
- 使用特定的数据目录启动 Postgres
- 配置 Postgres(创建数据库、创建超级用户等...)
- 将
context.xml
文件放入Tomcat - 启动 Tomcat
这些都应该写进一本食谱吗?
这些步骤中的每一个都应该对应一个单独的配方吗?
如果它们都进入 1 个配方,那么为什么run_list
s 有用?
免责声明:我主要考虑将 Chef 与 一起使用knife-solo
,所以我的困惑可能是由于描述典型部署的文档(例如,具有许多节点的主节点),而我所关心的只是在特定机器上运行我的食谱。