我在devOps中有点新功能 - 使用Rails。我已经成功创建了一个Vagrant / Chef配置来复制我的开发本地VM机器,但现在我正在尝试在数字海洋VPS上部署相同的设置,我通过ssh明显连接。
如何触发来自"内部"的厨师独奏有点令人困惑。 vm,无需外部服务器。我现在实际上有一个VPS。我将我的Chef文件推送到github,然后从远程开发VPS中克隆它们并运行chef-solo。
我跟随的步骤:
创建了一个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
我的问题:
depends
似乎无法安装食谱。我需要在node.json
中添加它们才能使它们正常工作,因为我遇到了一个“失败的依赖关系”。信息。为什么?任何想法/意见将不胜感激:)