I definitely would like to see the ec2 guide upgraded to teach more ec2 concepts.
It's largely a holdover from the very early days, and needs to show some basics like using add_host together with ec2 (as is shown elsewhere) but also some more idioms. I'd be quite welcome to see it mostly rewritten should you want to take a stab at improving it. On Thu, Sep 11, 2014 at 8:31 AM, Will Thames <[email protected]> wrote: > 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]> 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]> 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]> >>>> 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]> >>>>> 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]> >>>>>> 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]. >>>>>>> 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/ >>>>>>> 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 > <https://groups.google.com/d/msgid/ansible-project/0cbd0506-887c-4dbc-9bc9-57576a5b2005%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- 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/CA%2BnsWgycR_5rpVxov57krrT%2BBQPvf8HHVDZR0%3D4EOR-NV6sSmw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
