It might take me a few days yet, but I will try to create a minimalist one 
that shows what I am talking about.

On Tuesday, July 29, 2014 4:04:14 PM UTC-5, Michael DeHaan wrote:
>
> I'm having trouble parsing this one, sorry.
>
> Would it be possible to see a git repo or something for this ticket that 
> minimally reproduces the question?
>
>
> On Tue, Jul 29, 2014 at 12:57 PM, Mike Ray <[email protected] 
> <javascript:>> wrote:
>
>> As of 1.6.2 (yes, not quite current, though I did not see anything in the 
>> changelog that addressed this), when using roles, each role is called 
>> relative to its own directory.
>>
>> E.g.
>>
>> playbook1.yml :
>> ---
>>  - hosts: '{{ hostlist }}'
>>    remote_user: root
>>    roles: 
>>     - role: apache2
>>     - role: mysql
>>
>>
>> Both apache2 and mysql roles will be called against the hosts defined by 
>> the host var 'hostlist'. This is all well and good; however, in our current 
>> setup, we have roles for generic functionality (e.g. apache, mysql, etc) 
>> and also server specific playbooks. These server specific playbooks have a 
>> few one-off tasks that do not apply to other roles. One of these might look 
>> like:
>>
>> server1.yml :
>> ---
>>  - hosts: '{{ hostlist }}'
>>    remote_user: root
>>    roles:
>>      - role: apache2
>>      - role: servers/myserver
>>
>> Currently with our apache playbook, we allow for overloading a variable 
>> in the top-level playbook to change with SSL certificate is used.
>>
>> server1.yml :
>> ---
>>  - hosts: '{{ hostlist }}'
>>    remote_user: root
>>    roles:
>>      - role: apache2
>>      - role: servers/myserver
>>
>>    vars: 
>>      - certificate: "not_default_cert.crt"
>>
>> However, this means when the apache2 playbook runs it will expand {{ 
>> certificate }} to "not_default_cert.crt" and the only way it would work is 
>> if that certificate exists in the apache2 folder directory (e.g. 
>> roles/apache2/files/not_default_cert.crt). 
>>
>> If there is only one such file, it won't ever be too bad, but if many 
>> servers needed to overload that file, we'd end up with many "extra" files 
>> in that directory that really don't apply to that role. It would be nicer 
>> if those files could reside in their own server specific directory (e.g. 
>> roles/servers/myserver/files/not_default_cert.crt). That way the "base" 
>> role would only have the absolutely necessary files and all specific files 
>> could reside within the server's playbook to which they belonged.
>>
>> To my understanding there is no such "search for files here and also 
>> here" directive, nor any sort of inheritance that currently accomplishes 
>> this.
>>
>> As stated before, I am running 1.6.2, so if this functionality is 
>> implemented, I apologize, and I will upgrade when I have the chance. 
>>
>> If others have come across this problem and have a different 
>> organizational implementation that avoids this issue, I'd love to hear it.
>>  
>> -- 
>> 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/62e923b1-f78a-4fc8-98a3-b5b2cebe8d81%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/62e923b1-f78a-4fc8-98a3-b5b2cebe8d81%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/a176d8b5-3b4e-422e-a94d-103a6386ec21%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to