我刚开始使用chef-solo。我已经开始使用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?
从逻辑上讲,它应该可以工作,但有没有更好的方法?/这是正确的方法吗?
这是我到目前为止的完整设置(因为它为Ruby on Rails构建了一个web服务器);
https://github.com/map7/chef-solo
一种方法是复制我的整个chef-solo目录,并对其进行自定义以创建我的Mythtv box,但然后我必须维护两套chef-solo引导和配置文件,其中一些食谱将在这两种情况下使用。比如我想在Mythtv和我的web服务器上使用的apache2。
发布于 2011-11-01 02:00:08
我已经倾注了大量的文档和一些厨师个人教程,下面是我想出来的。像几乎所有的程序一样,有多种方法可以做到这一点(TIMTOWTDI)。我正在考虑做我自己的教程……
创建一个base.json作为您的主要配置选项:用户帐户,可能只有访问ssh的iptables,您的用户的sudo等。在两台(所有)机器上相同的内容。然后为您的myth机器创建一个角色,并将其放入roles文件夹中。创建新角色时,只需编辑base.json并将该角色添加到运行列表中。
而且,我没有看到site-cookbook文件夹。当我开始使用chef-solo时,我也不清楚这一点。你需要这个。如果您更改了一本食谱(您最终会这样做),您可以将修改后的文件放在site- cookbook文件夹中,该文件夹与原始食谱的目录结构相同。假设您想要编辑一个apache2模板,您可以将其放入site-cookbooks-->apache2-->templates-->default-->apache2.conf.erb中(例如)。在运行时,chef将查看您的模板,而不是原始模板。这使得跟踪您的添加/更改很容易,还允许轻松升级原始食谱。因此,您将永远只有一本食谱tarball。如果您不从json调用配方/角色,那么它将不会被执行。在我的chef-solo代码库中,为了创建我的tarball,我运行:
tar zcvf chef-solo.tar.gz ./cookbooks ./roles ./site-cookbooks ./data-bags最后要注意的是,后来的chef-solo版本已经得到了一些人的喜爱,可以使用数据包,并且已经创建了一本允许搜索的食谱。两者都是客户端-服务器设置的重要组成部分,我认为它们不会被添加到chef-solo中。厨师-单人FTW!
我的bootstrap fwiwhttps://github.com/tripleonard/chef-solo-bootstrap
干杯!
https://stackoverflow.com/questions/7655175
复制相似问题