我们使用Chef来设置我们的服务器,但是我正在寻找一种方法来将我们的服务器依赖关系整合到一个驻留在源代码控制中的configuration文件中。
我们使用capistrano进行部署,为持续集成定制构build脚本,现在我们需要一个Nagios轮询来检查是否存在所有的依赖关系(已安装rvm,正确的ruby版本,已安装的gem等)
这意味着我们将在3个地方复制依赖configuration,我想重构这个。 我希望能够使用我的部署脚本和构build脚本中的相同代码来处理软件包的安装和设置环境。 我们正在考虑在构build脚本中使用我们的capistrano脚本,但似乎太复杂。 我还在寻找可以检查环境的代码,并检查它是否符合应用程序的要求。
我认为这个configuration应该是应用程序根目录下的.environment.yml。 脚本可以是'./script/environment setup'和'./script/environment check'。
我发布这个问题,因为我不想重新发明轮子。 我想问一下是否已经有一个公约,或者有什么更好的build议。
对于你提到的事情,在我的回购中维护一个configuration,我使用木偶http://puppetlabs.com/理想,因为木偶configuration不像卡皮斯特拉诺,在那里你说如何在傀儡,你说什么,木偶做的工作。
您可能(也可能应该)在您的Ruby应用程序中使用include配方语句。
如果你正在谈论强制性的gem,你可以在你的应用程序中包含一个gemfile。
厨师(也可能是Puppet)的问题之一就是有很多“正确”的做事方式,而且很难知道哪个“最适合”你的情况。