With this one can now also write - include: - file1 - file2 Rather than only - include: file1 - include: file2tags/v0.55.0
{%- macro server_config(values, key='', ind=0, lb='\n', delim=';', operator=' ') -%} | {%- macro server_config(values, key='', ind=0, lb='\n', delim=';', operator=' ') -%} | ||||
{%- for value in values -%} | {%- for value in values -%} | ||||
{%- if value is number or value is string -%} | {%- if value is number or value is string -%} | ||||
{{ lb }}{{ key|indent(ind, True) }}{{ operator }}{{ value }}{{ delim }} | |||||
{{ key|indent(ind, True) }}{{ operator }}{{ value }}{{ delim }}{{ lb }} | |||||
{%- elif value is mapping -%} | {%- elif value is mapping -%} | ||||
{%- for k, v in value.items() -%} | {%- for k, v in value.items() -%} | ||||
{%- if v is number or v is string -%} | {%- if v is number or v is string -%} | ||||
{{ server_config([v], k, ind) }} | {{ server_config([v], k, ind) }} | ||||
{%- elif v|length() > 0 and (v[0] is number or v[0] is string) -%} | {%- elif v|length() > 0 and (v[0] is number or v[0] is string) -%} | ||||
{{ lb }}{{ k|indent(ind,True) }}{{ server_config(v,'', 0, '', '')}}{{ delim }} | |||||
{%- else %} | |||||
{{ server_config(v, k, ind) }} | |||||
{%- else -%} | |||||
{{ lb }}{{ k|indent(ind, True) }} {{ '{' }} | {{ lb }}{{ k|indent(ind, True) }} {{ '{' }} | ||||
{{- server_config(v, '', ind + ind_increment) }} | |||||
{{ '}'|indent(ind, True) }} | |||||
{{ server_config(v, '', ind + ind_increment) -}} | |||||
{{ '}'|indent(ind, True) }}{{ lb }} | |||||
{%- endif -%} | {%- endif -%} | ||||
{%- endfor -%} | {%- endfor -%} | ||||
{%- elif value is iterable -%} | {%- elif value is iterable -%} |
- server: | - server: | ||||
- server_name: localhost | - server_name: localhost | ||||
- listen: | - listen: | ||||
- 80 | |||||
- default_server | |||||
- index: | |||||
- index.html | |||||
- index.htm | |||||
- '80 default_server' | |||||
- listen: | |||||
- '443 ssl' | |||||
- index: 'index.html index.htm' | |||||
- location ~ .htm: | |||||
- try_files: '$uri $uri/ =404' | |||||
- test: something else | |||||
- include 'snippets/letsencrypt.conf' | |||||
# Or a slightly more compact alternative syntax: | |||||
- server: | |||||
- server_name: localhost | |||||
- listen: | |||||
- '80 default_server' | |||||
- '443 ssl' | |||||
- index: 'index.html index.htm' | |||||
- location ~ .htm: | - location ~ .htm: | ||||
- try_files: | |||||
- $uri | |||||
- $uri/ =404 | |||||
- try_files: '$uri $uri/ =404' | |||||
- test: something else | - test: something else | ||||
- include 'snippets/letsencrypt.conf' | - include 'snippets/letsencrypt.conf' | ||||
# The above outputs: | |||||
# both of those output: | |||||
# server { | # server { | ||||
# server_name localhost; | # server_name localhost; | ||||
# listen 80 default_server; | # listen 80 default_server; | ||||
# listen 443 ssl; | |||||
# index index.html index.htm; | # index index.html index.htm; | ||||
# location ~ .htm { | # location ~ .htm { | ||||
# try_files $uri $uri/ =404; | # try_files $uri $uri/ =404; | ||||
# test something else; | # test something else; | ||||
# } | # } | ||||
# } | # } | ||||
mysite2: # Using source_path options to upload the file instead of templating all the file | mysite2: # Using source_path options to upload the file instead of templating all the file | ||||
enabled: True | enabled: True | ||||
available_dir: /etc/nginx/sites-available | available_dir: /etc/nginx/sites-available |