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] > <javascript:>> 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] <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/1b5356d1-3ed7-4418-b2d7-051644b2942d%40googlegroups.com > > <https://groups.google.com/d/msgid/ansible-project/1b5356d1-3ed7-4418-b2d7-051644b2942d%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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] <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/540071A8.9090301%40gramble.com > > <https://groups.google.com/d/msgid/ansible-project/540071A8.9090301%40gramble.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/8afd0618-d774-4c39-ae87-477216dc2352%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
