Hi, 

it´s not about "hosts" filtering - in my case it´s always "hosts: cae".

I have some files in 
group_vars/cae-1.yml
group_vars/cae-2.yml
..
group_vars/cae-xx.yml


according to the group(s) defined in my /inventory/hosts file.

Inside these group_vars there´s a list of instances, running on that 
machine:

---
cae_instance: 
- 
    index: _1_a
    port: 8700
...
- 
    index: _1_k
    port: 12700



The question is now: how to filter that list ?

I know I can iterate the list using the "with_items" expression - but I 
want to "skip" or "filter" some items, lets say by using RegEx on one (or 
more) attributes of the list items.

Any solution for that ?

Regards, Torsten

Am Montag, 17. November 2014 22:13:54 UTC+1 schrieb Michael DeHaan:
>
> If you are attempting to talk to only certain instances, usage of the host 
> group specifier "hosts:" is the way to do it.
>
> To talk to all instances ending in that pattern
>
> - hosts: *_k
>
> The docs also show how to combine patterns and negate them.
>
> (The group_by module can also be used to create groups of arbitrary 
> criteria based on facts, but is not needed here)
>
>
>
>
>
> On Thu, Nov 13, 2014 at 6:12 AM, Torsten Reinhard <
> [email protected] <javascript:>> wrote:
>
>> Hi all, 
>>
>> like probably most of you, we have multiple servers with multiple 
>> application instances (Tomcat, Apache, ..) on it, for example structured 
>> like this:
>>
>> [cae:children]
>> cae-1
>> cae-2
>>
>> [cae-1]
>> pbdelsweb001.mydomain.com
>> [cae-2]
>> pbdelsweb002.mydomain.com
>>
>>
>> For each group we have a *.yml file at group_vars directoy in the 
>> inventory:
>>
>> cae-1.yml:
>> ---
>> cae_instance: 
>> - 
>>     index: _1_a
>>     port: 8700
>> - 
>>     index: _1_b
>>     port: 9700
>> - 
>>     index: _1_c
>>     port: 10700
>> - 
>>     index: _1_k
>>     port: 12700
>>
>> All these instances are setup by a simple playbook:
>>
>> - hosts: cae
>>   user: myuser
>>
>>   vars_files:
>>     - vars/stage-{{stage}}.yml  
>>
>>   roles:
>>     - { role: cae-tomcat, params: "{{ cae_instance }}" }
>>
>> This is all fine - but now I have to fullfill the requirement to be able 
>> to address only the "_k" instances - or only the "_a" instances - that 
>> meens one or more instances out of the complete list.
>>
>> Is there an option to "filter" the list of instances ? Something like 
>>
>>   with_items
>>    - filter: (".*_k" ) 
>>
>> Do I have to write my own Iterator(s) for this ?
>>
>> Thanx for any hints, Torsten
>>
>>
>>
>>
>>  -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/fbbdc812-3908-43a8-921b-f7705a6314cc%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/fbbdc812-3908-43a8-921b-f7705a6314cc%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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/c944da70-f272-4cd9-a584-db93a5f7b23b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to