Ruby on rails 我应该有多个json配置文件吗?

Ruby on rails 我应该有多个json配置文件吗?,ruby-on-rails,chef-infra,Ruby On Rails,Chef Infra,我刚开始使用厨师独奏。我已经开始使用chef solo从头开始构建Ruby on Rails web服务器。除了我的引导文件(deploy.rb和install.rb),我还有两个配置文件(solo.json和solo.rb)。我已经将我的solo.json设置为运行一组角色和食谱,以设置web服务器 现在我想用chef solo制作一个有我自己定制的mythtv电视盒。我应该使用“web_server.json”和“mythtv.json”来列出创建这些服务器的不同方法/角色,而不是使用sol

我刚开始使用厨师独奏。我已经开始使用chef solo从头开始构建Ruby on Rails web服务器。除了我的引导文件(deploy.rb和install.rb),我还有两个配置文件(solo.json和solo.rb)。我已经将我的solo.json设置为运行一组角色和食谱,以设置web服务器

现在我想用chef solo制作一个有我自己定制的mythtv电视盒。我应该使用“web_server.json”和“mythtv.json”来列出创建这些服务器的不同方法/角色,而不是使用solo.json吗

从逻辑上讲,它应该有效,但有更好的方法吗?/这是正确的方法吗

这是我目前为止的完整设置(目前它为RubyonRails构建了一个web服务器)


一种方法是复制我的整个chef solo目录并定制它以创建Mythtv box,但随后我必须维护两组chef solo引导和配置文件,并且一些烹饪书将在这两种情况下使用。例如apache2,我想在Mythtv和我的web服务器上都使用它。

我已经仔细阅读了文档和一些厨师独奏教程,下面是我的想法。像几乎所有的程序一样,有不止一种方法(TIMTOWTDI)。我正在考虑做我自己的教程

创建一个base.json作为您的主要配置选项:用户帐户,可能是只访问ssh的iptables,用户的sudo,等等。在两台(所有)机器上都是一样的。然后为神话机器创建一个角色,并将其放入角色文件夹中。创建新角色时,只需编辑base.json并将该角色添加到运行列表中

另外,我没有看到站点cookbooks文件夹。当我开始与主厨索洛合作时,我也不清楚这一点。你需要这个。如果你修改了一本烹饪书(你最终会修改),你会把修改过的文件放在site cookbooks文件夹中,和原来的烹饪书放在同一个目录结构中。假设您想要编辑apache2模板,您可以将其放入站点食谱-->apache2-->模板-->默认-->apache2.conf.erb(例如)。在运行时,chef将查看您的模板,而不是原始模板。这使得跟踪您的添加/更改变得很容易,还允许轻松升级原始食谱。所以,你只有一本烹饪书。如果不从json调用recipe/role,则不会执行它。 在我的厨师solo repo中,为了创建我的tarball,我运行:

tar zcvf chef-solo.tar.gz ./cookbooks ./roles ./site-cookbooks ./data-bags
最后一点要注意的是,chef solo的更高版本由于能够使用数据包而受到一些喜爱,并且已经创建了一本食谱,允许搜索。两者都是客户机-服务器设置的重要组成部分,我不认为它们会被添加到chef solo中。厨师独奏FTW

我的引导程序fwiw。

干杯