0
votes

I'm running a provisioning setup using vagrant and chef-solo to install the gitlab cookbook (however, this problem does not seem to be specific to the gitlab cookbook).

The run-list is simple:


    {
      "run_list": [
        "recipe[ohai::default]"
      ]
    }  


The chef-solo run (chef-solo -c solo.rb -j dna.json) results in the following error:

Error executing action create on resource 'cookbook_file[/etc/chef/ohai_plugins/README]'

The file IS there:


    # ls -l /tmp/vagrant-chef/e939c8a8cabcf9cdd72f5d7c3a98d728/cookbooks/ohai-2.0.1/files/default/plugins/README
        -rwxrwxrwx. 1 vagrant vagrant 49 Oct 21 13:16 /tmp/vagrant-chef/e939c8a8cabcf9cdd72f5d7c3a98d728/cookbooks/ohai-2.0.1/files/default/plugins/README

When I check the process with 'strace' it looks like I can see the error source:

    10444      0.000210 stat("/tmp/vagrant-chef/cookbooks/cookbooks/ohai/files/default/plugins/README", 0x7ffff0570bb0) = -1 ENOENT (No such file or directory)

If you notice, the cookbook is named 'ohai-2.0.1' however the process is trying to access the cookbook 'ohai' (i.e., without the version number).

Has anyone else encountered this before? I've seen one other post related to the issue that suggested putting ohai::default first in the run-list, which I've done (see dna.json above)

1
As a test, I created a symbolic link from ohai-2.0.1 to ohai in the cookbooks directory and the chef-solo run completed successfully.pearl

1 Answers

0
votes

This happened to me while using Berkshelf. It names all of the cookbooks name-version instead of just name. To solve this, I did berks vendor and added that directory to my cookbooks path. Now everything works!