Berks update fails with ‘Missing artifacts’ error message

When you add cookbooks as dependencies with the “depends” statement to the metadata.rb file of your Chef cookbook, to be able to test your cookbooks in Chef Test Kitchen, you also have to specify the location of those cookbooks in the Berksfile file. For all the cookbooks that are available on the Chef Supermarket, one line source […]

Chef file locations

The Chef file and folder locations are different on Linux and Windows machines. This article explains the purpose of each file and the location. Summary Linux Windows Cookbook location /var/chef/cache/cookbooks  C:\chef\cache\cookbooks Chef Client run log /var/log/chef.log First run only C:\chef\chef-client.log Subsequent Chef client runs C:\chef\log\client.log Error log /var/chef/cache/chef-stacktrace.out C:\chef\cache\chef-stacktrace.out Ohai output /var/chef/cache/failed-run-data.json C:\chef\cache\failed-run-data.json Recommended location for […]

Launch Windows instances locally with Chef Test Kitchen

Most Linux distributions are free, and do not require product keys to launch them. The steps below are based on the great article at I have summarized the steps below to create a free Virtual Box Windows Server 2012R2 image on your workstation, so Test Kitchen can use Vagrant and Virtual Box to launch Windows instances and test cookbooks […]

`block in filter_instances’: undefined method `empty?’ for nil:NilClass (NoMethodError)

When you try to execute any of the “kitchen” commands in Chef Test Kitchen you may get the following error message. lib/kitchen/config.rb:182:in `block in filter_instances’: undefined method `empty?’ for nil:NilClass (NoMethodError) This happened in my cookbook, when I have removed the value from the “excludes:” option in the .kitchen.yml file, but left the “excludes:” option […]

DevOps Engineering part 5. – Create an enterprise cookbook

In this exercise we will create a Chef cookbook for a corporation. It will be robust and include all the necessary elements to be used in a large enterprise. If your company already has established standards, as you progress with this tutorial, copy the appropriate file from an existing cookbook. If this is the first […]

Remove Policyfile.rb from your Chef cookbook

When you test your cookbook in Chef Test Kitchen and get the following error, delete the “Policyfile.rb” from your Chef cookbook directory. $$$$$$ You must set your run_list in your policyfile instead of kitchen config. The run_list your config will be ignored. $$$$$$ Ignored run_list: [“recipe[…::…]”] Preparing dna.json Exporting cookbook dependencies from Policyfile /tmp/… Error: Invalid […]

Unable to satisfy the following requirements error message in Chef Test Kitchen

When Berkshelf in the Chef Test Kitchen cannot resolve the cookbook dependencies, it displays the following error message during converge: Unable to satisfy the following requirements To help Berks to start a fresh calculation, delete the Berksfile.lock file and enter the following into the command window: berks install

DevOps Engineering part 2. – Create and test your first cookbook in 5 minutes

In the first part of the series, Beginner’s Guide to DevOps Engineering Part 1. we have already installed the DevOps development tools. Create and test your first cookbook in 5 minutes  Set up the Chef working folder Create a folder for the Chef development on Mac ~/Chef on Windows C:\Chef In the Chef folder create a sub-folder […]

SSL certificate is missing after installing ChefDK

When you install a new version of ChefDK and try to run Test Kitchen converge you may get the following error message >>>>>> ——Exception——- >>>>>> Class: Kitchen::ActionFailed >>>>>> Message: Failed to complete #create action: [SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed To solve the problem add the following to the Windows […]

Winrm is missing after installing ChefDK

When you install the new version of ChefDK you may get the following error message when you try to run Test Kitchen !!!!!! The `winrm` gem is missing and must be installed or cannot be properly activated. Run `gem install winrm –version ‘[“~> 1.6”]’` or add the following to your Gemfile if you are using […]