我目前正在按照安装 Chef 服务器http://wiki.opscode.com/display/chef/Installing+Chef+Server+using+Chef+Solo适用于 CentOS 6.2。我想将所有内容打包到我自己的自定义 RPM 中,但我不知道打包它的最佳方法是什么。(我知道已经有可用的 RPM,但我想使用我自己的版本)。
我正在考虑将所有内容(包括二进制文件和配置文件)存储到 RPM 中,然后将其存储在我的 YUM 存储库中,并使其成为我的 kickstart 服务器中的默认包。
我想知道是否有更好的方法通过 git 自动执行此操作,或者我应该坚持使用文件/rpm?
答案1
首先,关于构建您自己的 Chef Server“完整堆栈”。
Opscode 即将发布一个包含开源 Chef Server 所需的一切的全栈软件包。该软件包已于上周在 ChefConf 上进行了演示,目前正在积极开发中,将于近期发布。
该演示是在 Chris Brown 和 Adam Jacob 的主题演讲中进行的。演示从这里开始,但整个过程很有趣,让我们可以一睹 Chef 在 2012 年即将推出的功能。
Chef 的新综合构建系统由几个存储库组成。首先是构建系统本身。然后,构建开源软件的存储库常用。最后,包含 Chef 构建说明的存储库本身,包括客户端和服务器。欢迎您查看这些内容并尝试一下。如果您需要进一步的帮助,Chef 开发人员邮件列表或 irc.freenode.net 上的 #chef-hacking 频道是最好的资源。
接下来是关于管理配置。
由于您使用的是 Chef,因此您应该使用 Chef 本身来管理配置。演示(以及来自上述综合项目的构建包)使用 Chef Solo 来配置服务器,尽管它本身也可以是 chef-client。如何处理取决于您,但请将您的 Chef 配置存储在源代码存储库中,无论是 git 还是其他系统。
答案2
Git 不是为设置和部署应用程序而构建的,您最好使用带有 kickstart 的 RPM。
RPM 构建过程应该不会太难,除非您定制现有的 SRPM,否则它只会花一些时间将文件复制到正确的位置。