[chef] Re: Re: Re: Re: How do you set node-level attributes?


Chronological Thread 
  • From: Jesse Nelson < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: How do you set node-level attributes?
  • Date: Thu, 11 Feb 2010 10:35:58 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; b=Iw6RcJZFPYCvpMfUYzsC56uj8+eSeShoRTnfxqlX+75/Ajbz2okfZPlVKMZjJZUbAW z63/QGNB69i93bFoq7ejLA2dkoew8Aah1YcY+J5CRdh9fBeX/viX8I64R7/bSJEFUgEI F59vFwRnioldjyjPY/E2x18SCwP2buVIIw9yo=

Seems like your particular case could be handled with a search, and a special 
node attribute in the recipe.  collect on the attribute and subtract values 
that match the current host. This is assuming that mongo wants to know about 
all the other mongos out there. 

If its the pair then you set it as a case  statement. 

Or you do it in a role attribute override.  In the role you can just set an 
attribute that has the hosts name. 

You could also use a role and a search to limit it to only members in the 
role that have the attribute.  

Yet another way to do it would be to use the built in template specificity 
for your templates and hardcode the neighbor in each hosts template.

timtowtdi!

personally i favor making the recipes as intelligent as possible, and when 
that fails using role attributes for this sorta stuff.  think this all 
depends your implementation/site and goals.  

On Feb 10, 2010, at 9:32 AM, Jacobo García wrote:

> I don't think there's a best practice at all in setting values, what
> I'd do in your case is setting these values as default, then changing
> then in the UI per machine basis.
> 
> Other option is setting them based on fqdn on atributtes defined.
> Something like this:
> 
> case fqdn
> when "host1.foo.com"
> default[:mongodb][attr1]="foo"
> when "host2.foo.com"
> default[:mongodb][attr1]="bar"
> end
> 
> Hope this helps.
> 
> Jacobo García López de Araujo
> blog: http://robotplaysguitar.com
> http://workingwithrails.com/person/13395-jacobo-garc-a
> 
> 
> 
> 
> On Wed, Feb 10, 2010 at 4:54 PM, Ruby Newbie 
> < >
>  wrote:
>> Hey, Jacobo.
>
>> On Feb 10, 2010, at 5:43 AM, Jacobo García wrote:
>>> What are you using to set the value (set or default) in the attributes
>>> file? I guess that you are using set
>
>> All attributes are set with 'default', like so...
>>  default[:mongodb][:platform] = 'linux'
>>  default[:mongodb][:arch] = 'x86_64'
>>  default[:mongodb][:version] = '1.2.2'
>
>> Do you know of any way *besides* the web GUI to set node-level attributes? 
>> The fact that I am not managing to set them from the web interface is not 
>> as concerning as the fact that there seems to be no "best practice" for 
>> defining a node -- that is, defining both its role(s), and the particular 
>> attribute values it *doesn't* share with other nodes that play the same 
>> role.
>
>> Thanks for responding,
>> Ruby newbie.
>
>
>




Archive powered by MHonArc 2.6.16.

§