動作中の Vagrant インスタンスがあり、Chef/Vagrant で「アプリケーション」クックブックを使用して、git からデプロイし、次のエラー メッセージを取得できるようにしようとしています。
FATAL: NoMethodError: undefined method `path' for
Chef::Resource::Application
当然、「パス」は「アプリケーション」レシピの不可欠な部分です。コメントアウトすると、次の属性に対して同じメッセージが表示されます。
metadata.rb に次の行が含まれていることを確認しました。
depends 'application'
また、vagrant インスタンスをリロードして、すべての変更が反映され、「berks update」が実行されたことを確認しました。このエラーの原因をどの方向に探せばよいでしょうか?
Vagrantfile は非常に標準的で、主に次のもので構成されています。
config.vm.provision :chef_solo do |chef|
chef.json = {
:mysql => {
:server_root_password => 'rootpass',
:server_debian_password => 'debpass',
:server_repl_password => 'replpass'
},
:postgresql => {
:password => {
:postgres => "rootpass"
}
},
}
chef.run_list = [
"recipe[iw-app::default]",
"recipe[iw-app::db]",
"recipe[iw-app::deploy]"
]
end
デプロイレシピが含まれている間
user "#{node[:ii][:user]}" do
system true
end
application node[:ii][:app_name] do
path node[:ii][:deploy_to]
owner node[:ii][:user]
group node[:ii][:group]
repository node[:ii][:repo][:url]
revision node[:ii][:repo][:branch]
deploy_key node[:ii][:repo][:deploy_key]
packages ["git"]
end
metadata.rb は次のとおりです。
depends 'apt'
depends 'python'
depends 'application'
depends 'application_python'
depends 'postgresql'