Hey,
So I want to access the tag name I set at initial ec2 creation to use it as
my hostname throughout the server. To set the tag_name, I use a dictionary
/ sub_list as such:
server_group_settings:
integ:
security_groups: ['sg-81398ee4', 'sg-a6398ec3']
image: ami-06116566
instance_type: t2.medium #needs to match the base image size
region: us-west-1
key_name: ansible_provisioning
termination_protection: yes
subnet_id: subnet-819f7cd8
server_groups:
- type: integ
servers:
- { name: integ-bob, private_ip: 10.101.1.182 }
- { name: staging-steve, private_ip: 10.101.1.30 }
- { name: staging-mike, private_ip: 10.101.1.31 }
prod:
- { name: staging-joey, private_ip: 10.101.1.34 }
Once the server has been created, I want to be able to access the tag_name
by gathering facts about the remote sever and pulling down the tag name.
Unfortunately, I cannot connect with the hosts through a dynamic inventory,
due to them being with a VPC. They do show up in the ec2.py --list, so if I
were able to somehow register the results of 'ec2.py --list' as a variable,
I would be able to find the tag_name by using the ip, which I can get
through ec2_facts (or a couple other modules, I believe).
Unfortunately with the way I nest the server_groups dictionary (which is
the only way i could get nesting so deep to work), the server name is not
nested below the private ip.
What is the best way to do this? should I keep a second list (very
redundant) with the server name nested below? Here is my ec2 playbook:
---
- name: Launch instances based on server list
ec2:
key_name: "{{ server_group_settings[item.0.type].key_name }}"
group_id: "{{ server_group_settings[item.0.type].security_groups }}"
instance_type: "{{ server_group_settings[item.0.type].instance_type }}"
image: "{{ server_group_settings[item.0.type].image }}"
termination_protection: "{{
server_group_settings[item.0.type].termination_protection }}"
wait: true
region: "{{ server_group_settings[item.0.type].region }}"
instance_tags:
Type: "{{ item.0.type}}"
Name: "{{ item.1.name }}"
exact_count: 1 ## !! CAREFUL. Increasing this will likely create
duplicates of all instances.
count_tag:
Name: "{{ item.1.name }}"
vpc_subnet_id: "{{ server_group_settings[item.0.type].subnet_id}}"
assign_public_ip: no
private_ip: "{{ item.1.private_ip }}"
register: ec2
with_subelements:
- server_groups
- servers
Sincere thanks for any help. It is greatly appreciated.
--
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/e6df78b1-558e-4647-820c-c43febf96108%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.