Actually, I use Ansible to create, delete or update vhosts (apache, nginx, 
haproxy, php) on the infrastructure and sometimes I only want to talk with 
servers of a certain role, to update Apache config for example. This avoids 
executing unneeded tasks.


Le mercredi 25 décembre 2013 00:13:56 UTC+1, Michael DeHaan a écrit :
>
> So in that case, you still just have a play that says "for machines in 
> this group, these roles apply".
>
> This doesn't imply you would need to template the role names at all.
>
> - hosts: all_my_base
>   roles:
>      - are_belong_to_me
>      - common
>      - stuff
>
> etc
>
>
>
>
> On Tue, Dec 24, 2013 at 5:34 PM, Aaron Hunter 
> <[email protected]<javascript:>
> > wrote:
>
>> In general I agree that this isn't a great idea. However, I can see a 
>> case where one's infrastructure is more elastic, and shrinks and grows 
>> dynamically. VMs have made this case more likely. What do you think about 
>> passing a URL for the inventory and main playbook (site.yml) files? If you 
>> could pass say, http://repo.site.com/production.hosts to the Anisble 
>> command line then the files could be generated dynamically by the web 
>> server. With that approach you could keep your inventory and roles in an 
>> RDBMS and generate the inventory on the fly. 
>>
>> Just an idea...
>>
>>
>> On Friday, December 20, 2013 6:32:56 PM UTC-5, Michael DeHaan wrote:
>>
>>> Right now I'm guessing role names aren't being templated against extra 
>>> vars
>>>
>>> I agree the final one should work with your JSON example, and the first 
>>> one should work if JMODULES was the name of a single role.
>>>
>>> I would file a bug in github to track this.... though this is the first 
>>> time I've got the request.
>>>
>>> I would generally recommend structuring playbooks to record the desired 
>>> system configuration, so passing things in and not having them in source 
>>> control (what hosts get what roles) seems like a bit of an anti-pattern, 
>>> hence why this is not implemented... but yes, I agree this in principle 
>>> would be something you might expect to work (however unusual and 
>>> unexpected).
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Dec 20, 2013 at 9:30 AM, Nicolas Rodriguez <
>>> [email protected]> wrote:
>>>
>>>> Hi!
>>>>
>>>> I try to do dynamic role calling in playbook like that :
>>>>
>>>> ---
>>>> - hosts: "{{ HOST }}"
>>>>   user: root
>>>>
>>>>   roles:
>>>>     - "{{ JMODULES }}"
>>>>
>>>>
>>>> command : ansible-playbook test.yml --extra-vars 
>>>> '{"JMODULES":["apache","haproxy"]}'
>>>>
>>>> I get an error : AttributeError: 'list' object has no attribute 
>>>> 'startswith'
>>>>
>>>>
>>>> If I change to 
>>>>
>>>> ---
>>>> - hosts: "{{ HOST }}"
>>>>   user: root
>>>>
>>>>   roles: "{{ JMODULES }}"
>>>>
>>>> I get : ERROR: value of 'roles:' must be a list
>>>>
>>>>
>>>> Any help?
>>>> Thank you!
>>>>
>>>>  -- 
>>>> 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].
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>
>>>
>>> -- 
>>> Michael DeHaan <[email protected]>
>>>
>>> CTO, AnsibleWorks, Inc.
>>> http://www.ansibleworks.com/
>>>
>>>   -- 
>> 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:>
>> .
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> -- 
> Michael DeHaan <[email protected] <javascript:>>
> CTO, AnsibleWorks, Inc.
> http://www.ansibleworks.com/
>
> 

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to