84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
---
|
|
{%- from "nginx/map.jinja" import nginx with context -%}
|
|
{%- for configfile in nginx.config.files %}
|
|
nginx-config-{{ configfile }}:
|
|
file.managed:
|
|
- name: {{ nginx.config.dir }}/{{ configfile }}
|
|
- source: salt://nginx/templates/{{ configfile }}.j2
|
|
- template: jinja
|
|
- user: {{ nginx.config.user }}
|
|
- group: {{ nginx.config.group }}
|
|
- watch_in:
|
|
- service: nginx-service
|
|
#- watch:
|
|
# - pki: pki-fetched
|
|
#- require:
|
|
# - sls: acme.*
|
|
{%- endfor %}
|
|
|
|
nginx-default-index-file:
|
|
file.managed:
|
|
- name: /var/www/html/index.html
|
|
- user: root
|
|
- group: root
|
|
- contents: "<html><head></head><body></body></html>"
|
|
|
|
nginx-config-wipe-default:
|
|
file.absent:
|
|
- name: /etc/nginx/sites-enabled/default
|
|
|
|
{%- for subdir in nginx.config.subdirs %}
|
|
nginx-config-dir-{{ subdir }}:
|
|
file.directory:
|
|
- name: {{ nginx.config.dir }}/{{ subdir }}
|
|
- user: {{ nginx.config.user }}
|
|
- group: {{ nginx.config.group }}
|
|
- watch_in:
|
|
- service: nginx-service
|
|
{%- endfor %}
|
|
|
|
{%- for name, vhost in nginx.vhosts.items() %}
|
|
nginx-sites-available-{{ name }}:
|
|
file.managed:
|
|
- name: {{ nginx.config.dir }}/sites-available/{{ name }}
|
|
- source: salt://nginx/templates/types/{{ vhost.type }}.j2
|
|
- template: jinja
|
|
- user: {{ nginx.config.user }}
|
|
- group: {{ nginx.config.group }}
|
|
- require:
|
|
- file: nginx-config-dir-sites-available
|
|
- file: nginx-config-dir-sites-enabled
|
|
- watch_in:
|
|
- service: nginx-service
|
|
- context:
|
|
vhost_name: {{ name }}
|
|
sub: {{ vhost.sub|default([]) }}
|
|
config_dir: {{ nginx.config.dir }}
|
|
https: {{ vhost.https|default(true) }}
|
|
proxy: {{ vhost.proxy|default(false) }}
|
|
proxy_pass: {{ vhost.proxy_pass|default("") }}
|
|
cache: {{ vhost.cache|default(true) }}
|
|
autoindex: {{ vhost.autoindex|default(false) }}
|
|
root_dir: {{ vhost.root_dir|default(none) }}
|
|
internal_access: {{ vhost.internal_access|default(false) }}
|
|
auth: {{ vhost.auth|default(false) }}
|
|
dirs: {{ vhost.dirs|default([]) }}
|
|
headers: {{ vhost.headers|default({}) }}
|
|
php_socket_file: {{ nginx.config.php_socket_file }}
|
|
geoip: {{ nginx.config.geoip }}
|
|
|
|
nginx-site-enabled-{{ name }}:
|
|
file.symlink:
|
|
- name: {{ nginx.config.dir }}/sites-enabled/{{ name }}
|
|
- target: {{ nginx.config.dir }}/sites-available/{{ name }}
|
|
- template: jinja
|
|
- user: {{ nginx.config.user }}
|
|
- group: {{ nginx.config.group }}
|
|
- require:
|
|
- file: nginx-config-dir-sites-available
|
|
- file: nginx-config-dir-sites-enabled
|
|
- nginx-sites-available-{{ name }}
|
|
- watch_in:
|
|
- service: nginx-service
|
|
{%- endfor %}
|