Browse Source

Merge pull request #154 from M2Mobi/server_config_lists

Fix multiple values for the same key (include/listen) in server config file
tags/v0.55.0
Niels Abspoel 5 years ago
parent
commit
5006a2a8aa
No account linked to committer's email address
2 changed files with 26 additions and 14 deletions
  1. +5
    -5
      nginx/ng/files/server.conf
  2. +21
    -9
      pillar.example

+ 5
- 5
nginx/ng/files/server.conf View File

{%- 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 -%}

+ 21
- 9
pillar.example View File

- 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

Loading…
Cancel
Save