我试图找出构建自动配置新Rails App服务器的解决方案的正确方法。
我看过chef-rails食谱,看起来有点冗长。在我们的例子中,我们总是以某种方式部署Nginx,总是以某种方式执行备份等,因此从一个节点定义到下一个节点定义的配置将是多余的。
我的目标是通过定义以下信息来创建新的Rails应用服务器。
wh_webhead "test_app" do
ssl :enable
backups :enable
passenger :enable
ruby_version 2.0.0
db_type :mysql
db_user "testuser"
db_pass "3207496r9w6"
nagios_ssl_string_match "login"
end
然后我希望Chef执行以下操作:
我已经在使用Nginx,Nagios,Ufw等社区食谱,并在自定义食谱中创建配方以配置Mysql和Nginx。从一个应用程序的Nginx / Mysql菜谱到下一个菜单中只有很多重复的代码。
我正在努力解决的问题是在哪里使用Cookbook,Recipes,LWRPs和Definitions来正确抽象。
我应该在定义中放入Nginx和Mysql的默认配置,然后在配方中使用它们或使用默认值创建自定义包装器烹饪书吗?
答案 0 :(得分:2)
首先,请查看 application_ruby 和 artifact 食谱,两者都可以为您自动执行这些工作流程。
我特别喜欢使用神器食谱,因为它提供了很大的灵活性,但 application_ruby 食谱内置了对乘客,独角兽和其他工具的支持。 #39; d通常在Rails应用程序要求中找到。
关于食谱,食谱,LWRP和定义的问题,我肯定会在https://stackoverflow.com/a/21733093/747032查看@ sethvargo的回答。它为Opscode(现在称为Chef(公司))的员工以及经常参与Chef社区并因此具有该主题知识的人提供了一个很好的指导。
就我的建议而言(我将简明扼要):