[chef] Re: Re: Re: Re: Re: Setting Hostname on EC2 Instance Spinup


Chronological Thread 
  • From: Rob Guttman < >
  • To: Thom May < >
  • Cc:
  • Subject: [chef] Re: Re: Re: Re: Re: Setting Hostname on EC2 Instance Spinup
  • Date: Tue, 5 Apr 2011 10:22:32 -0400
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; b=EMaNnu66hHTxLd2r+hH79ZSMuwWdrkwNuFfmqvmCezmQ8S/z1QghuCJFQUtVuJty4U seJio0Q3EpzrOea12hK/eXBVWcKB2s+Niutl9sKKe+0+cr5QaURLnKaAHwsvERpnWrZf ApWtzJekub6ddswGaeO1ebp6pDaRzmrlGpF8M=

Thanks for all of the examples so far, everyone.  They answer half of my question which is how best to set/change the hostname of an ec2 instance.  The other half is how best to set the hostname based on the node's roles.  I would like to use a host naming pattern something like this:

  <primary_role>NN-<environment>-<availability-zone>

So something like:

  web04-production-useast1a

So when a new ec2 instance is being launched, the recipe/definition would need to determine how many nodes already exist of this pattern and then increment the (left-padded) number and/or fill in number gaps if prior instances were terminated.  That's what I was hoping Dan's recipe would show.  Does anyone have something like this already coded up?  (I would think this would be a somewhat common need.)

- Rob


On Tue, Apr 5, 2011 at 8:41 AM, Thom May < "> > wrote:
There's an example of it in the dynect cookbook -
https://github.com/opscode/cookbooks/blob/master/dynect/recipes/ec2.rb

On Tue, Apr 5, 2011 at 13:04, Rob Guttman < "> > wrote:
>>
> This is what we do for our EC2 nodes, except we use the instance ID for the
> node name and generate the hostnames from the roles.
>
> Dan, where can I find how to do something like this for ec2 nodes?  Is the
> recipe available somewhere?
>
> Thanks.
> - Rob
>
>
> On Tue, Apr 5, 2011 at 12:58 AM, Daniel DeLeo < "> > wrote:
>>
>> On Monday, April 4, 2011 at 9:53 PM, Chris Streeter wrote:
>>
>> I ran knife with the -N option with the parameter set to 'www'. However,
>> the
>> hostname of the box (set on the box and in the opscode console) is set to
>> an
>> AWS internal IP (ip-10-XXX-XX-XX) while the nodename is set to www. So
>> this
>> doesn't quite do what I want it to do. I want the actual hostname of the
>> box to
>> be www.
>>
>> Otherwise, in a template, how do I get the node's name (for populating
>> /etc/hosts on all machines)?
>>
>> By setting the node name via -N, you should create the node and it's
>> client with the given id, and configure it to use those values instead of
>> the hostname. Then you're free to change the hostname without changing the
>> ID the node uses to identify itself with the server. So you could create a
>> cookbook to configure the hostname according to the node name. This is what
>> we do for our EC2 nodes, except we use the instance ID for the node name and
>> generate the hostnames from the roles. But the basic idea is the same.
>>
>> --
>> Dan DeLeo
>>
>
>




Archive powered by MHonArc 2.6.16.

§