I'm doing this by registering the results of the ec2 provisioning task and 
then cycle through the hosts in a subsequent task for creating the dns 
records.

On Monday, 29 December 2014 17:09:03 UTC+1, Navid Paya wrote:
>
> Hi
> I'm trying to automate creating and destroying our staging environment. So 
> far, I have a playbook to create the cluster:
>
> ---
> - name: Launch an EC2 instance from our our latest AMI in staging
>   hosts: localhost
>   connection: local
>   gather_facts: no
>   tasks:
>   - name: Start the new EC2 instance
>     ec2:
>       image:  ami-xxxxxxxx
>       region: ap-southeast-1
>       zone:   ap-southeast-1b
>       instance_type: m3.medium
>       vpc_subnet_id: subnet-xxxxxxxx
>       group_id: ['sg-xxxxxxxx', 'sg-xxxxxxxx']
>       key_name: blahblah-deploy
>       instance_tags:
>         Cluster:  grabqa01
>         Name:     "{{ item}}.grabqa01.net"
>         Env:      staging
>         Role:     "{{ item }}"
>     with_items:
>       - redis
>       - postgresql
>       - frontend
>       - dispatcher-athena
>       - dispatcher-hermes
>       - dispatcher-listener
>       - dispatcher-processor
>       - poi
>
> Now since EC2 instances take forever to initialize, I give it 20 minutes 
> and then run another playbook to create DNS records for the created 
> instances using Route53. I wanted to do this which would be so nice if it 
> worked:
>
> - name: Set DNS Records
>   hosts: 'tag_Cluster_grabqa01:&tag_Role_{{ item }}'
>   tasks:
>   - route53:
>       aws_access_key: xxxxxxxxxxxxxxx
>       aws_secret_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>       command: create
>       zone: grabqa01.net
>       record: {{ item }}.grabqa01.net
>       type: A
>       ttl: 600
>       value: "{{ ansible_all_ipv4_addresses }}"
>     delegate_to: localhost
>   with_items:
>     - redis
>     - postgresql
>     - frontend
>     - dispatcher-athena
>     - dispatcher-hermes
>     - dispatcher-listener
>     - dispatcher-processor
>     - poi
>
> Basically, I want to find the hosts matching a search and then create a 
> DNS record pointing at them. What would be the best way to do that? I'd 
> rather not have to write a block for every single role I have.
>

-- 
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/6cb9be9e-41a0-47b7-9568-45d2794c7a06%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to