Passing arguments to shell commands

The Chef client enables you to run shell commands by using the execute resource. However, how can you pass arguments to such shell commands? Let's assume you want to calculate a value you need to pass to the shell command in your recipe. How can you do that? Let's find out...

Getting ready

Make sure you have a cookbook called my_cookbook, and the run_list of your node includes my_cookbook, as described in the Creating and using cookbooks recipe in Chapter 1, Chef Infrastructure.

How to do it...

Let's see how we can pass Ruby variables into shell commands:

  1. Edit your default recipe. You'll pass an argument to a shell command by using an execute resource:
    mma@laptop:~/chef-repo $ subl cookbooks/my_cookbook/recipes/default.rb ...

Get Chef Infrastructure Automation Cookbook - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.