Here's a quick sample playbook that should do what you are trying to do.
Keep in mind that the ec2.py dynamic inventory script will gather the
private IPs for you, you shouldn't need an explicit task.
- hosts: localhost
tasks:
- debug: msg="{{ hostvars[item].ec2_private_ip_address }}"
with_items: groups.tag_Name_ClusterNodes
register: output
- debug: msg="{{ output.results|map(attribute='msg')|join(' ') }}"
You could also write a custom jinja2 filter to make this a single task.
- James
On Tuesday, January 20, 2015 at 8:14:57 AM UTC-5, Tzach Livyatan wrote:
>
> Posted a similar question a few days ago, got the right answer.
> Now I can better explain what I'm looking for.
>
> I'm building a EC2 system from two types of servers:
> - cluster nodes
> - loader nodes
> Each loader is generating traffic to ALL cluster nodes.
>
> My goal is a playbook which collect private-ip from each the first group,
> and use it as part of a command to be executed on the second group.
> I assume it should look something like:
>
> ---
> - name: Collect private IPs
> hosts: tag_Name_ClusterNodes
> gather_facts: false
> tasks:
> - name: Create group
> # Pseudo Code Warning:
> all_cluster_ips += {{ ec2_private_ip_address }}}
>
> - name: Run stress
> hosts: tag_Name_Cloader
> user: ec2-user
> tasks:
> - command: benchmark {{ all_cluster_ips }}
>
> But I cant make this works.
> Suggestions will be appreciated!
>
> Thanks
>
--
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/f8b736ac-ff39-4915-b3a9-0f1ab345b350%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.