Check what “/etc/chef/solo.rb” says. It should point to a designated cookbook directory, AFTER berkshlf has run and resolved dependencies.
I like to put all my chef-solo in a working directory, say “/var/chef-solo/”, run “berks install; berks vendor” in that directory to make a local “/var/chef-solo/berks-cookbooks” directory with the Berkshelf selected versions of all cookbooks. Then point “/etc/chef/node.json” to that designated directory.
This gets you out of trying to resolve and manually merge local, remote, etc. cookbooks. You just use whatever your local Berkshelf decided are the correct versions, rather than going through the “frozen” and cookbook update problems on a centralized chef server, and avoid mixing cookbook versions on a central chef server.
Lead DevOps Engineer
From: David Montgomery [mailto:firstname.lastname@example.org]
Sent: Thursday, March 19, 2015 2:09 AM
Subject: [chef] Why will chef not find my recipe?
Chef will not find my recipe despite existing on the server where I am running chef-solo.
Recipe Compile Error
could not find recipe redis-queue-monitor for cookbook feed-servers
I simple ls proves it exits
default.rb mab_monitor.rb monit.rb pixel.rb redis-queue-monitor.rb riak_redis_pusher_monitor.rb
And this is is in my rolo -> “recipe[feed-servers::redis-queue-monitor]”,
So what am I missing?