Anyone know if there is a way to do this same sort of discovery based on 
EC2 tags? i.e. Gather the IP associated with tag role: master and make use 
of it? 



On Thursday, April 30, 2015 at 10:08:37 AM UTC-7, MikeA wrote:
>
> That worked. Thanks!
>
> On Sunday, April 12, 2015 at 2:29:03 AM UTC-7, Tzach Livyatan wrote:
>>
>> Here is a similar example from my project
>>
>> Creating the instance on EC2:
>> ---
>> - name: Create a cluster nodes on EC2
>>   hosts: localhost
>>   connection: local
>>
>>   tasks:
>>     - name: Launch instances
>>       local_action:
>>         module: ec2
>>         region: "{{region}}"
>>         keypair: "{{key_name}}"
>>         group: "{{security_group}}"
>>         instance_type: "{{instance_type}}"
>>         image: "{{image}}"
>>             count: "{{cluster_nodes}}"
>>         wait: yes
>>       register: ec2_cluster
>>
>>         - name: Add instances to private ip group
>>       local_action: add_host name={{item.private_ip}} groupname=Private
>>       with_items: ec2_cluster.instances
>>
>> In the role vars/main.yaml:
>> seed: "{{groups.Private[0]}}"
>>
>> And using "seed" in the relevant template.
>>
>> On Friday, April 3, 2015 at 9:26:54 PM UTC+3, James Martin wrote:
>>>
>>> Mike,
>>>
>>> This may give you some insight:
>>>
>>>
>>> https://github.com/basho-labs/ansible-riak/blob/develop/examples/form_cluster.yml
>>>
>>> Particularly:   
>>>
>>> primary_node: "{{ 
>>> hostvars[groups['riak_cluster'][0]]['riak_outputs']['node_name'] }}"
>>>
>>> - James
>>>
>>>
>>>
>>> On Wednesday, April 1, 2015 at 5:16:12 PM UTC-4, MikeA wrote:
>>>>
>>>> I'm launching a cluster of ec2 instances and would like one (don't care 
>>>> which one) of them to become a head node and pass it's IP to the other 
>>>> cluster members. I've been looking for an easy way to do this but could 
>>>> not 
>>>> fine one so would appreciate any assistance.
>>>>
>>>> Here is what I've got.
>>>> from my main playbook I'm calling a sub playbook that launches the ec2 
>>>> instances. there i add the instances to the {{ group_name }} group. where 
>>>> group_name is a variable defined in a var file.
>>>>
>>>> later on the main playbook I'd like to pull one of the IP's and feed it 
>>>> into a startup script to be called on all the hosts.
>>>>
>>>> I could not find a way to extract element 0 from the group_name var 
>>>> array.I tried this: set_fact: headnode={{ groups[[{{ group_name }}][0]] }} 
>>>> but it did not work. I had to use the actual group_var value and then I 
>>>> got 
>>>> the IP but it was not a clean string rather it looked like this: 
>>>> [u'10.77.0.211', 
>>>>
>>>> Any idea how to get a clean IP from the group_name set? BDW in the sub 
>>>> playbook where I launch the instances I register the private ip's from the 
>>>> instances: set_fact: private_ips: "{{ ec2.tagged_instances|join(', ', 
>>>> attribute='private_ip') }}" but I cannot refer to this variable back in 
>>>> the 
>>>> main playbook.
>>>>
>>>> thanks in advance.
>>>>
>>>

-- 
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/275db4e9-bbfa-4f9d-8d6e-73c5d2d94458%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to