[chef] Re: Re: passing attributes during runtime


Chronological Thread 
  • From: Ameya Savale < >
  • To:
  • Subject: [chef] Re: Re: passing attributes during runtime
  • Date: Thu, 6 Feb 2014 09:48:31 -0800

Thank you Joshua for this information, I will definitely try to use this approach in order to address my problem :)

-Ameya


On Wed, Feb 5, 2014 at 7:58 PM, Joshua Timberman < " target="_blank"> > wrote:
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.

§