Chef is similar to Puppet, an open source server configuration manager thing.

  1. Getting started with Chef (excellent tutorial)
  2. librarian-chef (manage Cheffiles rather than manually managing a repository of download cookbooks)

File /var/www exists, but is a directory

You can get this error if you are trying to load something from COOKBOOK/files/default/phpinfo.php into /var/www/phpinfo.php using cookbook_file:

cookbook_file "phpinfo.php" do
  path "/var/www"

The problem is that you are trying to replace a directory with a file. You should be using path "/var/www/phpinfo.php" instead, that way it will just replace the file.

had an error: LoadError: cannot load such file – mysql

could not find recipe ruby for cookbook mysql

If you are getting this while trying to execute mysql_database(), then you may not be loading the database::mysql recipe in your recipe.

getgrnam': can't find group for admin (ArgumentError) when using composer_package`

If you are using chef-composer, the composer_package uses the defaults from the block arguments user and group to execute, which on some systems may be a group admin which does not exist. Add user and group attributes directly:

composer_package node['myapp']['path'] do
  user "root"
  group "root"
  action :install