我应该有多个chef-solo json配置文件吗?

时间:2011-10-04 23:27:31

标签: ruby-on-rails chef

我刚刚开始使用chef-solo。我已经开始使用chef-solo从头开始构建我的Ruby on Rails Web服务器。除了我的bootstrapping文件(deploy.rb和install.rb),我有两个配置文件(solo.json和solo.rb)。我已经设置了我的solo.json来运行一组将设置Web服务器的角色和配方。

现在我想使用chef-solo来构建一个带有我自己的自定义的mythtv盒子。我应该使用'web_server.json'和'mythtv.json'来列出创建这些服务器的不同配方/角色,而不是使用solo.json吗?

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

到目前为止,这是我的完整设置(因为它为Ruby on Rails构建了一个Web服务器);

https://github.com/map7/chef-solo

一种方法是复制我的整个chef-solo目录并自定义它以创建我的Mythtv框,但是我必须保留两套chef-solo bootstrappings和配置文件,并且一些cookbook将用于两者的情况。比如我想在Mythtv&我的网络服务器。

1 个答案:

答案 0 :(得分:6)

我已经倾倒了文档和一些厨师独奏教程,这就是我想出的。像几乎所有程序一样,有更多的方法可以做到这一点(TIMTOWTDI)。我正在考虑做自己的教程...

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

另外,我没有看到site-cookbooks文件夹。当我开始兼顾大厨时,我对此并不清楚。你需要这个。如果您更改了食谱(最终将使用),则将更改的文件放在site-cookbooks文件夹中,与原始食谱相同的目录结构中。假设您要编辑apache2模板,您可以将其放在site-cookbooks - > apache2 - > templates - > default - > apache2.conf.erb(例如)中。在运行时,厨师会查看您的模板而不是原始模板。这样可以轻松跟踪您的添加/更改,还可以轻松升级原始菜谱。所以,你只会有一个食谱tarball。如果你没有从json调用配方/角色,那么它将不会被执行。 在我的chef-solo repo中,为了创建我的tarball,我运行:

tar zcvf chef-solo.tar.gz ./cookbooks ./roles ./site-cookbooks ./data-bags

最后请注意,后来版本的chef-solo已经对使用数据包的能力产生了浓厚的兴趣,并且已经创建了一个可以进行搜索的食谱。两者都是客户端 - 服务器设置的重要组成部分,我认为它们不会被添加到chef-solo中。 Chef-solo FTW!

我的引导fwiw。 https://github.com/tripleonard/chef-solo-bootstrap

干杯!