Ansible - adding multiple ec2 ip's to a dns record in route53

Mar 20, 2015   #ansible  #ec2  #route53 

When creating multiple instances using the ec2 module, it returns a dict of instances. If you then want to add those instances to route53, you need to somehow access the nested attributes to get the IP’s and then return them in a comma separated string.

Voila!

---
- hosts: localhost
  connection: local
  tasks:
    - name: create some instances
      ec2:
        ...
      register: ec2

    - name: add all the instance ip addresses to route53
      route53:
        ...
        value: "{{ ec2.instances|map(attribute='public_ip')|join(',') }}"

I thought this was brilliant, as it was my first introduction to the wonderful world that is the jinja2 map filter. My thanks go to @no1peanut for replying with the example in #ansible.