- From: John Martinez <
>
- To:
- Subject: [chef] Re: Re: Re: Re: Using Chef to Configue Autoscaled EC2 Instances
- Date: Thu, 10 Nov 2011 10:13:21 -0800
Yup, that's what I do.
-john
On Nov 10, 2011, at 10:11 AM, Edward Sargisson wrote:
>
You don't need such complexity. You can just include the role the node
>
wants in the user-date you register for auto-scaling.
>
I believe Ubuntu Oneiric has accepted a patch which makes the
>
user-data thing work with Chef better. There was an email announcement
>
about that a few months ago.
>
>
Cheers,
>
Edward
>
>
On Thu, Nov 10, 2011 at 10:08 AM, Aaron Abramson
>
<
>
>
wrote:
>
> I've thought about this, but haven't put much work into implementing it
>
> yet. So this is more of a concept than anything.
>
>
>
> Set up a script listening on a server. It could be a simple php script,
>
> IE http://someurl/script.php
>
>
>
> Set up the user-data with a bash script that hits the listener. (wget -O
>
> /dev/null http://someurl/script.php?role=myrole)
>
>
>
> The script receives the request, and it knows 2 things, the public
>
> hostname of the server making the request, and the "role" it is
>
> requesting. The script makes certain assumptions (username, ssh-key, etc)
>
> and then executes a system command, calling "knife bootstrap *server* -r
>
> "role[myrole]"
>
>
>
> So, if you auto-scale official cannonical ubuntu AMI's, simply have the
>
> user-data "ping" your knife listener, and knife then bootstraps the server.
>
>
>
> Perhaps such a bootstrap request feature could be built into chef-server?
>
>
>
>
>
> Aaron
>
>
>
> On Nov 10, 2011, at 11:55 AM, John Martinez wrote:
>
>
>
>>
>
>> Hello,
>
>>
>
>> I agree with you, using knife to provision EC2 instances is not the best
>
>> way to do this in autoscaled environments. As a temporary solution, I've
>
>> done exactly what you suggest. I pass along a lot of things into
>
>> user-data, and specifically, a node's role is one of those. I read
>
>> user-data and tell Chef on the node what its role is (amongst other
>
>> things). It's a kludge. I'm going to be looking into integrating Chef
>
>> with CloudFormation, which plays nice(r) with ASGs.
>
>>
>
>> http://aws.amazon.com/cloudformation/aws-cloudformation-articles-and-tutorials/
>
>> (second link)
>
>> https://s3.amazonaws.com/cloudformation-examples/IntegratingAWSCloudFormationWithOpscodeChef.pdf
>
>>
>
>> -john
>
>>
>
>> On Nov 10, 2011, at 9:44 AM,
>
>> <
>
>
>>
>
>> <
>
>
>> wrote:
>
>>
>
>>> Hi all, I'd like to get some feedback on how people are doing this now.
>
>>> It
>
>>> seems that since .10, the preferred way of starting Amazon EC2 instances
>
>>> is via
>
>>> the 'knife ec2 server create' command, while the 'knife ec2 instance
>
>>> data' and
>
>>> chef preinstalled AMIs are deprecated. That's all fine and good for
>
>>> manually
>
>>> launching instances, but what about autoscaling? When a node comes up for
>
>>> autoscalling, I want it to update and configure itself according to its
>
>>> role(s)
>
>>> and environment. With the instance data method of doing thing deprecated,
>
>>> what's the alternative (aside from having a custom baked AMI that I need
>
>>> to
>
>>> manually update as is the normal way of doing this without chef)? If
>
>>> there is
>
>>> no alternative, and I have to use the deprecated method which would mean
>
>>> using
>
>>> 'knife ec2 instance data' to wire into the autoscaling group as
>
>>> UserData. When
>
>>> using this method how would I specify the environment that the server
>
>>> should be
>
>>> run as too? I don't see anyway to do this using the instance data.
>
>>> Running some
>
>>> command outside the server after the server it is started to set the
>
>>> environment is not an option as we won't know when a new server has been
>
>>> spun
>
>>> up (controlled by Amazon).
>
>>>
>
>>> I'm interested in what other people have found to be best practice for
>
>>> this
>
>>> scenario and any advice, tips or tricks that have been learned while
>
>>> trying to
>
>>> work with chef and autoscaled EC2 instances.
>
>>>
>
>>> Thanks for your thoughts!
>
>>
>
>
>
>
Archive powered by MHonArc 2.6.16.