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/99c26e99-56f3-4455-88a0-4ad0cb2051fb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.