In Chef, you can easily do this by using the
script resource. What is more challenging is to make such a
script resource idempotent.
In the following recipe, we will see how to do both.
Make sure that 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.
Retrieve the required cookbooks:
Add them to your
mma@laptop:~/chef-repo $ subl Berksfile
source 'https://supermarket.getchef.com' cookbook 'apt' cookbook 'build-essential'
Install it on your local workstation:
mma@laptop:~/chef-repo $ berks install
Resolving cookbook dependencies... Fetching cookbook index from https://supermarket.getchef.com... Installing build-essential (2.1.3) Installing apt (2.6.1)