diff --git a/filter_plugins/nginx.py b/filter_plugins/nginx.py index d6cb204..4692c3a 100644 --- a/filter_plugins/nginx.py +++ b/filter_plugins/nginx.py @@ -41,9 +41,14 @@ def nginx_all_site_names(site): return all_sites def nginx_search_by_ssl_name(sites, ssl_name): + if isinstance(ssl_name, list): + comp_ssl_name = ssl_name[0] + else: + comp_ssl_name = ssl_name + res = None for site in sites: - if site.has_key('ssl_name') and site['ssl_name'] == ssl_name: + if site.has_key('ssl_name') and site['ssl_name'] == comp_ssl_name: res = site break return res diff --git a/templates/etc/nginx/sites-available/_base.j2 b/templates/etc/nginx/sites-available/_base.j2 index e753cd6..1f03fe6 100644 --- a/templates/etc/nginx/sites-available/_base.j2 +++ b/templates/etc/nginx/sites-available/_base.j2 @@ -43,7 +43,7 @@ {%- endif %} {%- endmacro %} {% macro ssl(ssl_name) %} -{% for sn in nginx_ssl_pairs if (sn.name is defined and sn.name == ssl_name) %} +{% for sn in nginx_ssl_pairs if (sn.name is defined and (sn | nginx_site_name) == ssl_name) %} ssl_certificate {{ sn | nginx_cert_path(nginx_ssl_dir) }}; ssl_certificate_key {{ sn | nginx_key_path(nginx_ssl_dir) }}; {% endfor %} diff --git a/tests/test.yml b/tests/test.yml index dbb6887..563ecf6 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -83,7 +83,9 @@ - name: 'test-ssl-selfsigned.local' self_signed: true force: false - - name: 'test-ssl-predeployed.local' + - name: + - 'test-ssl-predeployed.local' + - 'test-multiple-name.local' # Hack: tests for acme with multiple name, without using acme dest_key: "{{ int_ansible_ssl_dir }}/test.key" dest_cert: "{{ int_ansible_ssl_dir }}/test.crt" - name: 'test-ssl.local'