Just to compare execution and inventory arragment:
I'm trying to get the same result based on tags (run task on limited 
hosts-set from current hosts-group) 

W dniu czwartek, 26 lutego 2015 13:05:35 UTC+1 użytkownik sirkubax napisał:
>
> Up to now I think the best would be generate "temporary" host list 
> (group_by).
> You may intersect them later with other groups
>
> However I do not like the idea of defining "hosts: xxxx" more than once in 
> a playbook.
>
>
> I did post the idea first in the topic:
> How to list all currently targeted hosts in an Ansible play
>
> http://stackoverflow.com/questions/28709501/how-to-list-all-currently-targeted-hosts-in-an-ansible-play
>
>
> Playbook:
>
> ---
> - hosts: all
>
>   tasks:
>     - name: Create a group of all hosts by app_type
>       group_by: key={{app_type}}
>
>     - debug: msg="groups={{groups}}"
>       run_once: true
>
> - hosts: web:&some_other_group
>
>   tasks:
>    - debug: msg="play_hosts={{play_hosts}}"
>      run_once: true
>
> would result in
>
> TASK: [Create a group of all hosts by app_type] 
> *******************************
> changed: [web1] => {"changed": true, "groups": {"web": ["web1", "web2"], 
> "load_balancer": ["web3"]}}
>
> TASK: [debug msg="play_hosts={{play_hosts}}"] 
> *********************************
> ok: [web1] => {
>     "msg": "play_hosts=['web1']"
> }
>
> inventory:
>
> [proxy]
> web1 app_type=web
> web2 app_type=web
> web3 app_type=load_balancer
>
> [some_other_group]
> web1
> web3
>
>
>
> W dniu niedziela, 22 lutego 2015 17:24:49 UTC+1 użytkownik sirkubax 
> napisał:
>>
>> *This is a question of good practise:*
>>
>> I do have logic "Lines" on a way from my LB to Backend
>>
>> [LineA]
>>> proxyA         app_type=proxy
>>> frontendA       app_type=frontend
>>> middlewareA       app_type=middleware
>>>
>>  
>>
>>> [LineB]
>>> proxyB         app_type=proxy
>>> ...
>>
>>
>>
>> Since the apps are more complex than simple apache start stop. i did 
>> write custom modules  with required logic to controll them:
>>
>>
>>> *proxysrv: with actions [suspend, activate]**restart: with actions 
>>> [start, stop, restart], and app_type arguments [frontend, middleware]*
>>
>>
>>
>> The tasks have to be played in certain order (suspend proxy, restart 
>> frontends and middleware, activate proxy)
>> Now I can have a play like:
>>
>> ---
>>> - hosts: LineA
>>> - tasks:
>>>    - name:
>>>      proxysrv: action=suspend, when app_type =='proxy'
>>>    - name:
>>>       restart: action=restart, app_type=frontend, when app_type 
>>> =='frontend'
>>>    - name:
>>>       restart: action=restart, app_type=middleware, when app_type 
>>> =='middleware'
>>>    - name:
>>>       proxysrv: action=activate, when app_type =='proxy'
>>
>>
>>
>>
>> I don't like the "skipped" message during the run of a playbook, and the 
>> numbers in the final play statistics, that count the skipped hosts (as not 
>> changed).
>>
>>
>> *This is a question of good practise:*
>> How would You create dependencies, that would apply specialized tasks on 
>> a subset of Your hosts group.
>>
>> I guess that better way to solve the problem would be the use of 
>> *delegate_to* (probably with "*with_items*" or "*tags*"). 
>> I could register the 'proxy_hosts', 'frontend_hosts', 'middleware_hosts' 
>> variables during an execution of the play and run tasks against them.
>> I do not see yet use of tags here, the example would be nice.
>> Any better idea?
>>
>> What about roles. I would like to have a roles (proxy, restart role) and 
>> run them against subset of a hosts.
>>  
>>
>

-- 
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/4aaeae26-8c98-4171-96a3-6a0b96156daa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to