设置Chef / Rails / Ubuntu

时间:2015-11-24 09:02:25

标签: ruby-on-rails chef chef-solo

我在devOps中有点新功能 - 使用Rails。我已经成功创建了一个Vagrant / Chef配置来复制我的开发本地VM机器,但现在我正在尝试在数字海洋VPS上部署相同的设置,我通过ssh明显连接。

如何触发来自"内部"的厨师独奏有点令人困惑。 vm,无需外部服务器。我现在实际上有一个VPS。我将我的Chef文件推送到github,然后从远程开发VPS中克隆它们并运行chef-solo。

我跟随的步骤:

  • 已安装Chef-DK
  • 在Berksfile中添加了一些食谱
  • 是否安装了berks然后是berks供应商的烹饪书来创建内部的所有内容./cookbooks
  • 创建了一个solo.rb文件

    cookbook_path File.join(File.dirname(File.expand_path(__FILE__)), "cookbooks")
    json_attribs File.join(File.dirname(File.expand_path(__FILE__)), "node.json")
    
  • 然后是node.json文件:

    {
       "run_list": [
         "recipe[main]",
         "recipe[apt]",
         "recipe[nginx]",
         "recipe[postgresql]",
         "recipe[git]",
         "recipe[ruby_build]",
         "recipe[rvm]",
         "recipe[rails]",
         "recipe[bundler]",
         "recipe[nodejs]"
         ]
    }
    
  • 然后是我的树结构根目录中的metadata.rb文件:

    name             'test'
     maintainer       'Me Myself'
     maintainer_email 'me@myself.com'
     license          'All rights reserved'
     description      'Installs/Configures test'
     long_description 'Installs/Configures test'
     version          '0.1.0'
     depends 'apt', '~> 2.6.1'
     depends 'nginx', '~> 2.7.6'
     depends 'postgresql'
     depends 'git', '~> 4.3.3'
     depends 'build-essential'
     depends 'ruby_build', '~> 0.8.0'
     depends 'rvm', '~> 0.9.4'
     depends 'rails', '~> 0.9.2'
     depends 'bundler', '~> 0.2.0'
     depends 'nodejs', '~> 2.4.2'
    
  • 最后我执行了:

    sudo chef-solo -c solo.rb -j node.json

我的问题:

  • 这个程序对你来说怎么样?我错过了什么吗?任何好的/常见的做法?
  • 当我执行berks时,cookbooks文件夹被删除并重新生成..我做错了什么?如果没有,
  • 调整每个食谱中的default.rb文件进行自定义是什么意思?例如,我想用RVM安装Ruby 2.2.2。
  • depends似乎无法安装食谱。我需要在node.json中添加它们才能使它们正常工作,因为我遇到了一个“失败的依赖关系”。信息。为什么?

任何想法/意见将不胜感激:)

0 个答案:

没有答案