Does anybody already use extends with variable in ansible ?

Le mardi 15 décembre 2015 17:04:09 UTC+1, Christophe Biguereau a écrit :
>
> Hi all,
>
> I try to simplify my Nginx template by using extends template. To do that, 
> I follow the Jinja2 doc 
> <http://jinja.pocoo.org/docs/dev/templates/#block-nesting-and-scope>
>
> I create a child template:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *{% extends "nginx_servers.j2" %}{% block listen %}        listen {{ 
> item.server.listen }};{% endblock %}{% block servername %}        
> server_name {{ item.server.server_name }};{% endblock %}{% block root 
> %}        # Root directory        root {{ item.server.root }};{% endblock 
> %}{% block ssl %}        # Ssl configuration        ssl on;        
> ssl_certificate {{ item.server.ssl_certificate }};        
> ssl_certificate_key {{ item.server.ssl_certificate_key }};{% endblock %}{% 
> block logs %}        # Logs        access_log {{ item.server.access_log 
> }};        error_log {{ item.server.error_log }};{% endblock %}{% block 
> location %}        location {{ loc.name <http://loc.name> }} { {% for k,v 
> in loc %}                    {{ k }} {{ v }};{% endfor %}        }{% 
> endblock %}*
>
> Then I create my vhosts template ( nginx_servers.j2 )
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *:server {{% block listen %}{% endblock %}{% if 'server_name' in 
> item.server %}{% block servername %}{% endblock %}{% endif %}{%if 'root' in 
> item.server %}{% block root %}{% endblock %}{% endif %}{% if 'ssl' in 
> item.server %}{% block ssl %}{% endblock %}{% endif %}{% if 'access_log' in 
> item.server %}{% block logs %}{% endblock %}{% endif %}{% for loc in item 
> %}{% if loc.find('location') != -1 %}{% block *
>
>
>
>
> *location scoped %}{{ loc }}{% endblock %}{% endif %}{% endfor %}}*My 
> variable file:
>
>
>
>
>
>
>
>
>
>
>
>
> *nginx_servers:  - server:      name: "site1"      listen: 80      
> server_name: "site1"      location1:        name: "/"        try_files: 
> "$uri $uri/ /index.php"      location2:        name: "bla"        
> auth_basic: "\"Restricted Area\""        auth_basic_user_file: 
> "xxxxxxxxxxx"*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *  - server:      name: "site2"      listen: 443      server_name: 
> "site2"      location1:        name: "/"        try_files: "$uri $uri/ 
> /index.php"      location2:        name: "~ \\.ini$"        deny: 
> "all"      location3:        name: "~ /\\.ht"        allow: "all"}*All 
> the simple block works fine ( servername, listen ... ), but when I run the 
> location block, I get this error :
>
> *fatal: [127.0.0.1] => {'msg': "KeyError: 'undefined variable: 0'", 
> 'failed': True}*
> I try to just print loc variable in the block, but I get the same error.
>
> Does this feature is available in Ansible ? 
>
> Thanks.
>

-- 
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/7d651013-6d36-4384-8130-f0d4e63f8387%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to