collectively querying/combining results of the setup and ec2_facts modules

37 views
Skip to first unread message

Dan Vaida

unread,
Nov 11, 2014, 10:39:00 AM11/11/14
to ansible...@googlegroups.com
Greetings everyone!

For a given reason, I need to handle some Route53 records for my EC2's EIPs. 
The instances are part of the [all] group in my hosts file.

Obviously, the 'setup' module is not aware of EIPs. But the ec2_facts module is.

Right now, I'm trying to wrap my head around this design, although there will soon be a VPN tunnel that's gonna simply render Ansible to interact with a Bind server, thus making this whole playbook obsolete, but nevertheless, something nice to have around.

I know I could probably achieve what I want with an external inventory tool like ec2.py but I want to see first if I can do it the "normal" way.

I only need to touch one zone in Route53, essentially by creating/updating an A record like so:

- name: updating Route53 records
  hosts: localhost
  connection: local
  gather_facts: False
  tasks:
      # if we have the records, replace them if they do not match. if we don't have them, just create them.
    - local_action: route53 command=create zone=domain.com record={{ ??ansible_hostname?? }}.zone.com type=A value={{ ??item.ansible_ec2_public_ipv4?? }} overwrite=yes ttl=300 
      with_items: facts 
      register: dnsrec_update
    
    - name: showing the results of the create task
      debug: var=dnsrec_update

The above would be included by the following:
---
- name: list all ec2 instances
  hosts: all:!localhost
    tasks:

    - name: gather facts
      action: ec2_facts
      register: facts

         -  debug: var=facts

    - name: get the hostname
      action: setup

        -  debug: var={{ ansible_hostname }}


    ###here's where I'm stuck   

    - include: route53.yml

You can see that all I was doing is to simply play around with no direction in mind.
Ansible will not like the include because of the gather_facts and so on and so forth.

Maybe someone can share some tips. If it's not desirable like intended, I will just go for ec2.py

Thanks!

Dan Vaida

unread,
Nov 11, 2014, 10:45:53 AM11/11/14
to ansible...@googlegroups.com
Never mind that erroneous include. It's now properly aligned and Ansible doesn't get surprised anymore by what I'm including :) 
Reply all
Reply to author
Forward
0 new messages