I have some relatively extensive documentation on ec2 - it might be a little too over the top for the user guide. http://willthames.github.io/2014/03/17/ansible-layered-configuration-for-aws.html
If you want me to incorporate any or all of it into the user guide, I'd be happy to do so. I haven't done enough with asgs to contribute much (and it seems like James' docs are pretty good to go anyway) Will On Tuesday, September 9, 2014 3:21:14 AM UTC+10, Michael DeHaan wrote: > > > > On Sun, Sep 7, 2014 at 5:48 PM, James Martin <[email protected] > <javascript:>> wrote: > >> Michael, >> >> The reason for having both was to spur this very discussion. :). Option >> 1 is a bit more complicated but more transparent, option 2 is much easier >> but less transparent. I'm more fond of option 2, and happy to make it the >> only one. BTW, are we talking about the docs or the actual feature? >> > > I'm not sure option 1 is transparent more so than more manual/explicit? > I guess if you mean "less abstracted", yes. I would prefer the one that > lets me forget more about how it works :) > > >> As far as what the instances are being replaced with-- the ASG is going >> to spin up new instances with the current launch configuration. With option >> 2, the module starts by building a list of which instances should be >> replaced. This list is made up of all instances that have not been >> launched with the current launch configuration. The module then bumps the >> size of the ASG by the replace_batch size. It then terminates >> replace_batch_size instances at a time, waits for the ASG to spin up new >> instances in their place and become healthy, then continues on down the >> list until there are no more left to replace. Then it sets the ASG size >> back to it's original value. >> > > Ok, so I'm thinking *MAYBE* in the examples, we show a call to ec2_lc to > show the launch config change prior to the invocation, so the user can see > this in context. > > Sidenote to all - our ec2 user guide in the docs are lacking, and I'm open > to having them mostly rewritten. Showing a more end to end tutorial, maybe > one ec2 simple one and another using ec2_lc/asg, would be really awesome > IMHO. > > >> James >> On Sep 7, 2014 3:26 PM, "Michael DeHaan" <[email protected] >> <javascript:>> wrote: >> >>> Hi James, >>> >>> Thanks! >>> >>> In reading the PR examples section, I'm curious why we might show Option >>> 1 if Option 2 is much cleaner and would be interested in details. >>> >>> Also, quick question - it's replacing all instances, but what's it >>> replacing them *with* ? >>> >>> Perhaps this is something we should show as well, where we indicate how >>> to specify what the new instance IDs would be. >>> >>> Can you help me grok additions? >>> >>> Thanks again! >>> >>> +## Option 2 +This does everything that Option 1 does, but is contained >>> inside the module. It's more opaque,+but the playbooks end up being >>> much clearer.+++- ec2_asg:+ name: myasg+ health_check_period: 60+ >>> health_check_type: ELB+ replace_all_instances: yes+ min_size: 5+ >>> max_size: 5+ desired_capacity: 5+ region: us-east-1++ >>> >>> On Sun, Sep 7, 2014 at 2:49 PM, James Martin <[email protected] >>> <javascript:>> wrote: >>> >>>> Dan, >>>> >>>> I've been tinkering with this process for quite a while and have made a >>>> pull request to ansible core that I believe does what you are looking for: >>>> >>>> https://github.com/ansible/ansible/pull/8901 >>>> >>>> As Michael stated, we will be releasing a blog post that's going to go >>>> more in depth in describing a few different ways to perform updates to >>>> ASG's that use pre-baked AMIs (this module approach being one of them). >>>> >>>> I appreciate any feedback/testing you can provide on that pull request >>>> of course. The documentation is inline in the module source. >>>> >>>> Thanks, >>>> >>>> >>>> - James >>>> >>>> >>>> On Sun, Sep 7, 2014 at 2:23 PM, Michael DeHaan <[email protected] >>>> <javascript:>> wrote: >>>> >>>>> Hi, >>>>> >>>>> James Martin is working on a 2-3 part blog post on *exactly* this >>>>> subject, which I believe we're going to be posting this week, which shows >>>>> a >>>>> couple of ways to do it. >>>>> >>>>> I've included him on this mailing list thread if he wants to share >>>>> some cliff-notes. >>>>> >>>>> --Michael >>>>> >>>>> >>>>> >>>>> >>>>> On Sun, Sep 7, 2014 at 2:08 PM, Daniel Langer <[email protected] >>>>> <javascript:>> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> I'm trying to use Ansible to do a rolling deploy against an ELB >>>>>> linked to an auto-scaling group (ASG), using a pre-baked AMI. My ideal >>>>>> process would go something like this >>>>>> >>>>>> 1. Get the current membership of the ASG >>>>>> 2. Update the launch configuration for the ASG >>>>>> 3. For each member: >>>>>> 3a. Create an instance using the new AMI >>>>>> 3b. Associate the instance with the ASG >>>>>> 3c. Terminate the original instance >>>>>> >>>>>> The other option I was considering was: >>>>>> >>>>>> 1. Get the current membership of the ASG >>>>>> 2. Update the launch configuration for the ASG >>>>>> 3. For each member: >>>>>> 3a. Terminate the instance >>>>>> 3b. Wait until the ASG has noticed and launched a new instance >>>>>> before continuing >>>>>> >>>>>> For the former, I don't see a way using the built-in EC2 modules to >>>>>> associate an instance with an ASG. For the latter, I'm not clear how I'd >>>>>> wait until the ASG has launched a new instance to catch up with the one >>>>>> I >>>>>> terminated. >>>>>> >>>>>> Any suggestions on how to do either one, or if that's not possible, >>>>>> what the best-practice for what I'm trying to do it? >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Dan >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Ansible Project" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected] <javascript:>. >>>>>> To post to this group, send email to [email protected] >>>>>> <javascript:>. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/ansible-project/42240c16-c2a5-4dac-b6f9-a30fc6e5b8d2%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/ansible-project/42240c16-c2a5-4dac-b6f9-a30fc6e5b8d2%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> James Martin >>>> Solutions Architect >>>> Ansible, Inc. >>>> >>> >>> > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/0cbd0506-887c-4dbc-9bc9-57576a5b2005%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
