You might have experienced this: you try out a command on your node's shell and it works perfectly. Now, you try to execute the very same command from within your Chef recipe but it fails. One reason may be that there are certain environment variables set in your shell, which are not set during the Chef run. You might have set them manually or in your shell start up scripts—it does not really matter. You'll need to set them again in your recipe.
In this section, you will see how to set environment variables needed during a Chef run.
Make sure you have a cookbook called
my_cookbook, and that the
run_list of your node includes
my_cookbook, as described in the Creating and using cookbooks recipe in Chapter 1, Chef Infrastructure.