Overriding a node's run list to execute a single recipe
Even though we do not want to do a full Chef client run, we might need to run, for example, the users
cookbook, in order to add a new colleague to a server. This is where the Chef client's feature to override a run list in order to execute a single recipe comes in very handy.
Note
Only use this feature when you absolutely must! It is bad practice because it breaks the principles of desired state config
and single source of truth
.
Getting ready
To follow along with the following example, you'll need a node hooked up to your Chef server having multiple recipes and/or roles in its run list.
How to do it...
Let's see how to run a single recipe out of a bigger run list on your node:
Show the data for your node. In this example, the node has the role
base
in its run list. Depending on your setup, you'll find other data here:mma@laptop:~/chef-repo $ knife node show www.example.com ...TRUNCATED OUTPUT… Run List: role[base] Roles: base Recipes...