[chef] Re: passing attributes during runtime


Chronological Thread 
  • From: Joshua Timberman < >
  • To: Chef users < >
  • Subject: [chef] Re: passing attributes during runtime
  • Date: Wed, 5 Feb 2014 20:58:51 -0700

This is a great use case for a definition[0]. A definition, quite
simply, is a "recipe macro." It looks like a resource when used in a
recipe, but it contains other resources that you want to repeat with
slightly different parameters. Here's a totally made up example.

define :host_porter, :port => 4000, :hostname => nil do
  params[:hostname] ||= params[:name]

  directory "/etc/#{params[:hostname]}" do
    recursive true
  end

  file "/etc/#{params[:hostname]}/#{params[:port]}" do
    content "some content"
  end
end

# in a recipe you write something like this:

host_porter node['hostname'] do
  port 4000
end

host_porter "www1" do
  port 4001
end

There are more definition examples in our apache2 and chef-splunk 
cookbooks[1].

Cheers,
Joshua

[0]: http://docs.opscode.com/chef/essentials_cookbook_definitions.html
[1]: http://ckbk.it/apache2 http://ckbk.it/chef-splunk

On Tue, Feb 4, 2014 at 11:19 AM, Ameya Ameya Savale
< >
 wrote:
> Hi Guys,
>
> I had a question, which I couldn't seem to find an answer for in earlier 
> posts.
> I might have been searching the wrong keywords, but here it is. Is it 
> possible
> to run the chef-client command and pass in custom attributes inline. I need 
> to
> write a recipe which takes in a name and a port number and creates certain
> directories and files and setups up configuration on the host using the name
> and the port number.
>
> I recently started using chef so everything is quite new to me. I read in
> multiple places that you can do it using a json file. If I understood it
> correctly then it seems I would need to create a separate json file for 
> every
> different name and post number that I want to pass in or update the same 
> json
> file before running the recipe with the new name and port, this seems very
> tedious.
>
> What would be the correct way of approaching this problem?
>
> - Thanks
> Ameya



-- 
Joshua Timberman, Chef.



Archive powered by MHonArc 2.6.16.

§