Завершил механизм генерации конфигурации для апстримов

This commit is contained in:
2019-07-30 12:54:35 +03:00
parent 019b0e2ca4
commit de1969339a
2 changed files with 59 additions and 8 deletions

View File

@@ -51,17 +51,23 @@
dest: "/tmp/nginx_upstreams.yml"
force: true
register: "nginx_upstreams_download_result"
tags:
- configs
- upstreams
- name: "Read upstreams config"
- name: "Read upstreams config for nginx"
slurp:
src: "/tmp/nginx_upstreams.yml"
register: slurp_upstreams
- name: Debug
debug:
msg: "{{ slurp_upstreams['content'] | b64decode | from_yaml }}"
register: upstreams_slurped
tags:
- configs
- upstreams
- name: "Generate nginx upstreams config"
template:
src: conf.d/upstreams.conf.j2
dest: /etc/nginx/conf.d/upstreams.conf
notify: Reload nginx
tags:
- configs
- upstreams

View File

@@ -1,5 +1,50 @@
{{ ansible_managed | comment }}
{% for upstream in slurp_upstreams['content'] | b64decode | from_yaml %}
{{ upstream.server_name }}
{% if nginx_resolver_string | default(false) %}
resolver {{ nginx_resolver_string }};
{% endif %}
{% set upstreams_encoded = upstreams_slurped['content'] | b64decode | from_yaml %}
## BEGIN upstreams set
{% for upstream in upstreams_encoded -%}
upstream {{ upstream.name }} {
{% for server in upstream.servers -%}
{% set additional_upstream_server_config -%}
{% if server.weight | default(false) %}weight={{ server.weight }}{% endif %}
{% if server.max_conns | default(false) %}max_conns={{ server.max_conns }}{% endif %}
{% if server.max_fails | default(false) %}max_fails={{ server.max_fails }}{% endif %}
{% if server.fail_timeout | default(false) %}fail_timeout={{ server.fail_timeout }}{% endif %}
{% if server.backup | default(false) %}backup{% endif %}
{% if server.down | default(false) %}down{% endif %}
{% endset %}
server {{ server.name }} {{ additional_upstream_server_config | replace("\n", " ") }};
{% endfor %}
}
{% endfor %}
## END upstreams set
## BEGIN servers set
{% for upstream in upstreams_encoded -%}
server {
listen {{ nginx_listen_addr }}:{{ nginx_listen_port }};
server_name {{ upstream.external_domains | join(" ") }};
location / {
proxy_pass http://{{ upstream.name }};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
{% if upstream.additional_location_config | default(false) -%}
{{ upstream.additional_location_config }}
{% endif %}
}
{% if upstream.additional_server_config | default(false) -%}
{{ upstream.additional_server_config }}
{% endif %}
}
{% endfor %}
## END servers set