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.
