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.

Reply via email to