背景厨师的菜谱组织
公司最近决定采用厨师和我一直负责实施这一我们的部署进程终于自动化。作为一名开发人员,我正在努力应对如何组织和构建方法和烹饪书的最佳方法,以便我们还可以在我们的开发环境中使用Vagrant。我们有10个应用程序,我们需要部署到几个环境(开发,分段,验收,生产,演示)。每个应用程序都运行在相同的基础技术栈和平台上。其中一些应用程序实际上是其他应用程序的子服务。
阅读一些教程后,学习厨师以及观看无尽的视频,我已经开始创建使用berkshelf几个食谱(每个食谱是在它自己的GIT回购):
- 1个菜谱设置基本的基础设施(设置管理员用户,安装基本系统工具,sudo,sshd等)
- 1 x食谱设置平台(在我们的例子中:LAMP与固定的PHP版本)
- 10 x食谱设置每个应用程序
问题
这是组织食谱的正确方法吗?尽管应用程序菜谱要求首先运行基础架构和平台菜谱以设置基本系统,但这些菜谱都不依赖于对方(现在)。每个应用程序现在都有相同的技术堆栈要求 - 因此在每个应用程序菜谱中添加相同的依赖关系似乎有点奇怪。应该明确提到应用程序的确切依赖性(对于通过平台食谱安装的软件包,例如apt)仍然明确提及?这一切如何结合在一起,将其部署到目标机器上?我是否需要另一个“容器”食谱(所有机器和食谱的单一厨师回购?),它们将特定的应用程序放在一起?我需要角色来完成这项工作吗?
这是否意味着“ELK Stack”食谱是一个坏主意?只需要3本食谱,并为“ELK”角色添加必要的食谱? – sixty4bit 2016-08-13 21:03:27
@ sixty4bit这意味着和ELK食谱,理想情况下,只会利用三个独立的食谱资源。因此,您可以使用Elastic Search,Logstash和Kibana食谱,以及一本ELK食谱,它使用这三本食谱中的资源来创建完整的堆栈。 – 2016-09-12 19:07:25