That's the rub... the "just a matter of" is the piece that the custom module does. :-)
-scott On Sep 1, 2014, at 10:18 PM, Will Thames <[email protected]> wrote: > I don't think you need a custom launch config cleanup module - but I > understand you do need a way to tell it what launchconfigs to cleanup > > ec2_lc already has state=delete > https://github.com/ansible/ansible/blob/devel/library/cloud/ec2_lc#L225 > > then it's just a matter of determining the names of the launchconfigs that > need deleting. > > Will > > On Friday, August 29, 2014 10:34:13 PM UTC+10, Scott Anderson wrote: > Here's my cleanup script and the relevant part of a module I use to do this. > > If there's interest I can PR the module. > > def delete_launch_configs(asg_connection, ec2_connection, module): > changed = False > > launch_configs = asg_connection.get_all_launch_configurations() > > # Delete all launch configurations that no longer have an attendant AMI > for config in launch_configs: > image_id = config.image_id > images = ec2_connection.get_all_images(image_ids=[image_id]) > > if not images: > config.delete() > changed = True > > > tasks: > - name: Obtain list of existing backup AMIs > local_action: > module: ec2_ami_facts > description: "{{ ami_image_name }}-backup" > tags: > environment: "{{ app_environment }}" > sorts: > - "-name" > region: "{{ vpc_region }}" > aws_access_key: "{{ aws_access_key }}" > aws_secret_key: "{{ aws_secret_key }}" > register: ami_facts > ignore_errors: yes > > - name: Remove all but the most recent backup AMI > local_action: > module: ec2_ami > image_id: "{{ item.id }}" > state: absent > delete_snapshot: yes > region: "{{ vpc_region }}" > aws_access_key: "{{ aws_access_key }}" > aws_secret_key: "{{ aws_secret_key }}" > with_items: ami_facts.images[1:] > > - name: Remove all launch configurations whose AMIs no longer exist > local_action: > module: ec2_lc_cleanup > region: "{{ vpc_region }}" > aws_access_key: "{{ aws_access_key }}" > aws_secret_key: "{{ aws_secret_key }}" > > > ec2_ami_facts is used to enumerate the AMIs that I want to delete. It's in a > PR somewhere but was turned down for inclusion in core. > > Regards, > -scott > > On Aug 29, 2014, at 8:27 AM, Arangel Angov <[email protected]> wrote: > >> Thanks for the suggestion, that's what I ended up doing. >> >> Now to figure out how to delete all my old launch configurations. >> >> -Arangel >> >> On 08/15/2014 07:19 PM, Scott Anderson wrote: >>> Basically you just need to create a new launch configuration and then >>> update it in the autoscaling group. Any new instances created in the >>> autoscaling group will then use the new launch configuration. >>> >>> Regards, >>> -scott >>> >>> >>> On Friday, August 15, 2014 7:32:36 AM UTC-4, Arangel Angov wrote: >>> Hi, >>> >>> I've been playing with EC2 autoscaling for a while and my goal is to >>> start an instance update it and then save it to an AMI or use the >>> instance AMI id in a launch configuration tied to an auto scaling group >>> so that I have my instance up to date all the time and ready for scaling. >>> >>> So I wanted to update the launch configuration using ec2_lc so that I >>> either use the newly generated AMI image or the image_id of the running >>> instance. The first doesn't work cause if I want to update the lc I >>> actually need to delete both autoscaling group and lc (and this is not >>> acceptable cause I have production instances running in the auto scaling >>> group, so deleting it will terminate those instances). The second >>> approach doesn't really work also cause I guess the ec2_lc module >>> doesn't support updating the lc or using the instance_id of my updated >>> instance in the lc, which is something that ec2 supports >>> (http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/create-lc-with-instanceID.html). >>> >>> >>> I could use the ec2 tools inside ansible but just wanted to see if >>> anyone had this issue before and how you solved it - without using Tower >>> of course. :) >>> >>> Thanks. >>> >>> -Arangel >>> >>> -- >>> *Disclaimer* >>> >>> This email is really important (well, most of them are.). Also, hopefully >>> the message has been sent to the person it's intended for. If we stuffed up >>> by entering the wrong email address, we're very sorry for cluttering up >>> your inbox. But if we have done that, then please do us a favour and let us >>> know...and if you could keep the juicy bits to yourself, that would be >>> great >>> too. >>> >>> Also...stuff that's said in this message are the views of the person >>> writing >>> the email and do not actually represent the views of Gramble World >>> (although they might, but we're just hedging our bets here). Don't think >>> for one minute that anything in this message should be construed as >>> creating a contract. >>> >>> Gramble World owns the email infrastructure, including the contents. >>> >>> Finally...do the right thing by the environment and "think before you ink"! >>> >>> ********************************************************************** >>> -- >>> 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/1b5356d1-3ed7-4418-b2d7-051644b2942d%40googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >> >> >> -- >> Arangel Angov >> Systems Operations >> >> M: +31 61 77 48 210 >> >> <get_social.png> >> >> <http___s2.gramble.com_images_icons_email_social-media-icons_Gramble_32x3....png> >> >> <http___s2.gramble.com_images_icons_email_social-media-icons_twitter_32X3....png> >> >> <http___s2.gramble.com_images_icons_email_social-media-icons_facebook_32x....png> >> <social-media-icons_linkedin_32x32.png> >> <http___s2.gramble.com_images_icons_email_social-media-icons_instagram_32....png> >> >> <http___s2.gramble.com_images_icons_email_social-media-icons_googleplus_3....png> >> >> Disclaimer >> This email is really important (well, most of them are.). Also, hopefully >> the message has been sent to the person it's intended for. If we stuffed up >> by entering the wrong email address, we're very sorry for cluttering up your >> inbox. But if we have done that, then please do us a favour and let us >> know...and if you could keep the juicy bits to yourself, that would be great >> too. >> >> Also...stuff that's said in this message are the views of the person writing >> the email and do not actually represent the views of Gramble World (although >> they might, but we're just hedging our bets here). Don't think for one >> minute that anything in this message should be construed as creating a >> contract. >> >> Gramble World owns the email infrastructure, including the contents. >> >> Finally...do the right thing by the environment and "think before you ink"! >> >> >> ********************************************************************** >> >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Ansible Project" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/ansible-project/tZhIGnomN_g/unsubscribe. >> To unsubscribe from this group and all its topics, 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/540071A8.9090301%40gramble.com. >> For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to a topic in the Google > Groups "Ansible Project" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/ansible-project/tZhIGnomN_g/unsubscribe. > To unsubscribe from this group and all its topics, 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/8afd0618-d774-4c39-ae87-477216dc2352%40googlegroups.com. > 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/A3AECBE9-2C05-48F3-A06E-C4F84E8B0B9E%40gmail.com. For more options, visit https://groups.google.com/d/optout.
