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.

Reply via email to