2

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

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

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

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

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

一种方法是复制我的整个 chef-solo 目录并对其进行自定义以创建我的 Mythtv 盒子,但是我必须维护两组 chef-solo 引导程序和配置文件,并且在这两种情况下都会使用一些食谱。例如我想要在 Mythtv 和我的网络服务器上的 apache2。

4

1 回答 1

6

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

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

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

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

最后要注意的是,后来版本的 chef-solo 已经对使用数据包的能力产生了一些喜爱,并且已经创建了一个食谱以允许搜索。两者都是客户端-服务器设置的重要组成部分,我认为它们不会被添加到 chef-solo。厨师独奏FTW!

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

干杯!

于 2011-10-31T18:00:08.393 回答