|
- # nginx.snippet
- #
- # Manages creation of snippets
-
- {%- set tplroot = tpldir.split('/')[0] %}
- {%- from tplroot ~ '/map.jinja' import nginx, sls_block with context %}
- {%- from tplroot ~ '/libtofs.jinja' import files_switch with context %}
-
- {#- _nginx is a lightened copy of nginx map intended to passed in templates #}
- {%- set _nginx = nginx.copy() %}
- {%- do _nginx.pop('snippets') if nginx.snippets is defined %}
- {%- do _nginx.pop('servers') if nginx.servers is defined %}
-
- nginx_snippets_dir:
- file.directory:
- {{ sls_block(nginx.servers.dir_opts) }}
- - name: {{ nginx.lookup.snippets_dir }}
-
- {% for snippet, config in nginx.snippets.items() %}
- nginx_snippet_{{ snippet }}:
- file.managed:
- - name: {{ nginx.lookup.snippets_dir ~ '/' ~ snippet }}
- - source: {{ files_switch([ snippet, 'server.conf' ],
- 'nginx_snippet_file_managed'
- )
- }}
- - template: jinja
- - context:
- config: {{ config|json() }}
- nginx: {{ _nginx|json() }}
- - require:
- - file: nginx_snippets_dir
- - require_in:
- - file: nginx_config
- - sls: nginx.servers
- - sls: nginx.servers_config
- - service: nginx_service
- {% endfor %}
|