diff --git a/nginx/ng/config.sls b/nginx/ng/config.sls index 4d2ed1d..0bca27a 100644 --- a/nginx/ng/config.sls +++ b/nginx/ng/config.sls @@ -12,11 +12,18 @@ nginx_log_dir: - group: {{ nginx.server.config.user }} {% endif %} +{% if 'source_path' in nginx.server.config %} +{% set source_path = nginx.server.config.source_path %} +{% else %} +{% set source_path = 'salt://nginx/ng/files/nginx.conf' %} +{% endif %} nginx_config: file.managed: {{ sls_block(nginx.server.opts) }} - name: {{ nginx.lookup.conf_file }} - - source: salt://nginx/ng/files/nginx.conf + - source: {{ source_path }} - template: jinja +{% if 'source_path' not in nginx.server.config %} - context: config: {{ nginx.server.config|json() }} +{% endif %} diff --git a/nginx/ng/servers_config.sls b/nginx/ng/servers_config.sls index 75cf529..041e1db 100644 --- a/nginx/ng/servers_config.sls +++ b/nginx/ng/servers_config.sls @@ -85,15 +85,22 @@ nginx_server_available_dir: # Managed enabled/disabled state for servers {% for server, settings in nginx.servers.managed.items() %} {% if settings.config != None %} +{% if 'source_path' in settings.config %} +{% set source_path = settings.config.source_path %} +{% else %} +{% set source_path = 'salt://nginx/ng/files/server.conf' %} +{% endif %} {% set conf_state_id = 'server_conf_' ~ loop.index0 %} {{ conf_state_id }}: file.managed: {{ sls_block(nginx.servers.managed_opts) }} - name: {{ server_curpath(server) }} - - source: salt://nginx/ng/files/server.conf + - source: {{ source_path }} - template: jinja +{% if 'source_path' not in settings.config %} - context: config: {{ settings.config|json() }} +{% endif %} {% if 'overwrite' in settings and settings.overwrite == False %} - unless: - test -e {{ server_curpath(server) }} diff --git a/pillar.example b/pillar.example index 661b09b..3debc2a 100644 --- a/pillar.example +++ b/pillar.example @@ -77,6 +77,9 @@ nginx: # nginx.conf (main server) declarations # dictionaries map to blocks {} and lists cause the same declaration to repeat with different values config: + source_path: salt://path_to_nginx_conf_file/nginx.conf # IMPORTANT: This option is mutually exclusive with the rest of the + # options; if it is found other options (worker_processes: 4 and so + # on) are not processed and just upload the file from source worker_processes: 4 pid: /var/run/nginx.pid ### Directory location must exist events: @@ -138,6 +141,12 @@ nginx: # test something else; # } # } + mysite2: # Using source_path options to upload the file instead of templating all the file + enabled: True + available_dir: /etc/nginx/sites-available + enabled_dir: /etc/nginx/sites-enabled + config: + source_path: salt://path-to-site-file/mysite2 certificates_path: '/etc/nginx/ssl' # Use this if you need to deploy below certificates in a custom path. # If you're doing SSL termination, you can deploy certificates this way.