assuming all roles are in the same directory, you could do relative paths to other roles' template directory.
On Tue, Oct 28, 2014 at 6:34 AM, Joe Adams <[email protected]> wrote: > So is there no way of including or extending templates from other roles? > It would seem that this is a really powerful feature of the templating > language that would make many configurations more versatile and powerful. > Is what I'm trying to do not possible with Ansible? > > On Monday, October 27, 2014 4:25:33 PM UTC-4, Brian Coca wrote: >> >> It looks for the file in the "base" directory or in the templates/ >> subdirectory. The "base" directory is the directory of the current play or >> role. >> >> On Mon, Oct 27, 2014 at 6:31 AM, Joe Adams <[email protected]> wrote: >> >>> Is there somewhere that documents what paths are searched when inside a >>> template or in include calls from within a template? I can't find much >>> information about this at all. >>> >>> On Wednesday, October 22, 2014 9:22:05 AM UTC-4, Joe Adams wrote: >>>> >>>> I originally though it might be permissions, but both templates are >>>> 0664 with my account being owner. >>>> >>>> I'm using ansible version 1.7.2 >>>> >>>> On Tuesday, October 21, 2014 11:51:08 PM UTC-4, Michael DeHaan wrote: >>>>> >>>>> For starters, what ansible version are you using? >>>>> >>>>> On Tue, Oct 21, 2014 at 6:02 PM, John Favorite <[email protected]> >>>>> wrote: >>>>> >>>>>> permissions issue? >>>>>> >>>>>> On Tue, Oct 21, 2014 at 5:35 PM, Joe Adams <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> I tried asking the IRC channel but I didn't get any responses so I >>>>>>> figure that the mailing list might be better suited to this question. >>>>>>> I'm >>>>>>> trying to build an extensible iptables template. All of my hosts will >>>>>>> need >>>>>>> some amount of custom rules to be added so I feel that extending a >>>>>>> template >>>>>>> would be a great way to achieve this. My base template looks like this: >>>>>>> >>>>>>> #roles/common/templates/iptables.j2 >>>>>>> {% block nat %} >>>>>>> {% endblock nat %} >>>>>>> *filter >>>>>>> :INPUT ACCEPT [0:0] >>>>>>> :FORWARD ACCEPT [0:0] >>>>>>> :OUTPUT ACCEPT [0:0] >>>>>>> -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT >>>>>>> -A INPUT -p icmp -j ACCEPT >>>>>>> -A INPUT -i lo -j ACCEPT >>>>>>> # SSH >>>>>>> -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT >>>>>>> {% block role_rules %} >>>>>>> {% endblock role_rules %} >>>>>>> # Drop All >>>>>>> -A INPUT -j REJECT --reject-with icmp-host-prohibited >>>>>>> -A FORWARD -j REJECT --reject-with icmp-host-prohibited >>>>>>> COMMIT >>>>>>> >>>>>>> >>>>>>> So then I created a template for another host to add it's role >>>>>>> specific information in. This template looks like this: >>>>>>> >>>>>>> {% extends "roles/common/templates/iptables.j2" %} >>>>>>> {% block role_rules %} >>>>>>> -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT >>>>>>> {% endblock role_rules %} >>>>>>> >>>>>>> This was working until I moved my playbooks into a folder to >>>>>>> organize them. Now I can't seem to fix the path to make the template >>>>>>> extends >>>>>>> tag work. I even tried an absolute path. >>>>>>> Here's my directory structure: >>>>>>> >>>>>>> ansible/ >>>>>>> ansible.cfg >>>>>>> hosts/ >>>>>>> dev >>>>>>> qa >>>>>>> groupvars/ >>>>>>> dev >>>>>>> qa >>>>>>> playbooks/ >>>>>>> roles/ >>>>>>> common.yml >>>>>>> roleA.yml >>>>>>> roleB.yml >>>>>>> roles/ >>>>>>> common/ >>>>>>> templates/ >>>>>>> iptables.j2 >>>>>>> tasks/ >>>>>>> main.yml >>>>>>> roleA/ >>>>>>> templates/ >>>>>>> iptables.j2 >>>>>>> tasks/ >>>>>>> main.yml >>>>>>> >>>>>>> >>>>>>> I keep getting this error when I get to the play that templates the >>>>>>> iptables file: >>>>>>> {'msg': 'AnsibleError: file: /path/to/ansible/roles/vickyva >>>>>>> le/templates/iptables.j2, error: Cannot find/not allowed to load >>>>>>> (include) template /path/to/ansible/roles/common/templates/iptables.j2', >>>>>>> 'failed': True} >>>>>>> >>>>>>> -- >>>>>>> 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/77a802c6- >>>>>>> b3a5-4895-8430-700f99daf0f1%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/ansible-project/77a802c6-b3a5-4895-8430-700f99daf0f1%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/CAKsMCETohhhtbr79k8cgqm%2B%3DqxM-Fjytc- >>>>>> Kz_jbnimxQ456cJg%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/ansible-project/CAKsMCETohhhtbr79k8cgqm%2B%3DqxM-Fjytc-Kz_jbnimxQ456cJg%40mail.gmail.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/c2534bbb-8eaa-4875-9168- >>> d1d6df1d57f1%40googlegroups.com >>> <https://groups.google.com/d/msgid/ansible-project/c2534bbb-8eaa-4875-9168-d1d6df1d57f1%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Brian Coca >> > -- > 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/a1db82ee-fd0d-4fb4-8bc8-6c488df27a7a%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/a1db82ee-fd0d-4fb4-8bc8-6c488df27a7a%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Brian Coca -- 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/CAJ5XC8mH%3DOzjgb2KPANeORDx95fYw4JCSDObqPSsCy2ciox94Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
