Right, let me check I get the requirement -
so for example we're talking about say an 'apache' role and a 'kibana'
role that's going to need a vhost setup.

(with ansible 1.9 at least), if I set a vhost_conf_dir var in my
apache role (which is a path to a directory you can drop .vhost files
into to have them auto-included, nginx etc. has a similar feature) and
then have my kibana role list 'apache' as a dependency in its
meta/main.yml, it will be able to see that var and use it.

Another way is to explicitly set a 'global' (play wide or host wide,
point is its set external to the roles ) vhost_conf_dir and have each
role use it (that's less 'magical' so personally I prefer it, it's
easier to see what's going on).

One downside is the 'kibana' role needs handlers to restart the
webserver, which is a bit ugly.

Either way, you're going to have 2 roles that are co-dependant and not
too re-usable. That would
still be the case if you had the exact feature you describe, of course.

I'm of the opinion that 'role reuse' is a wild goose chase in CM
systems, so I'm fine with that :)

On 14 July 2016 at 21:19, Neubyr N <neu...@gmail.com> wrote:
>
> Thank you for the details. I am wondering how to pass file name in one role
> to another role as variable parameter.
>
> As mentioned in previous post, take example of configuring webserver for a
> particular application. webserver setup remains same for multiple
> applications except configuration file. So if we develop a webserver role
> that accepts file path parameter, then same webserver role could be reused
> by other application roles. Now it makes sense to keep application specific
> webserver configuration file inside application role and pass it's path to
> webserver role. This helps in keeping all application specific configuration
> files inside a single role.
>
> If Ansible had some roles path variable or special path 'role', then it
> would make above pattern easy. So we could say something like
> src=ROLES/myapp/files/testfile .
>
> It seems like that is not possible with Ansible.
>
> - N
>
>
> On Thursday, July 14, 2016 at 7:10:54 AM UTC-7, Dick Davies wrote:
>>
>> On 13 July 2016 at 22:09, Neubyr N <neu...@gmail.com> wrote:
>> >
>> >Right now file name
>> > passed to the webserver role is relative path from the playbook file. Is
>> > there any way to make this path independent of playbook location and
>> > reference it using role directory?
>>
>> Yes - if you have tasks in a role 'thingy' like this:
>>
>> - name: config
>>   copy: src=etc/file.conf
>>             dest=/etc/file.conf
>>
>> - name: more config
>>    template: src=etc/file2.conf.j2
>>                    dest=/etc/file2.conf
>>
>>
>> then
>>
>> * the copy task will load its source file from
>> roles/thingy/files/etc/file.conf
>> * the template task will load its template from
>> roles/thingy/templates/etc/file2.conf.j2

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAK5eLPT7_QMFf0OTqGo4BWU5g%3DwGnsa30yq7q28cTfex5cMJ2A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to