diff --git a/README.md b/README.md index 3e7ace3bb46dad2b393a4da71b518f3d14eefa00..5014e40ff1494b64d7674fac02b475da110ada3b 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ Configuration repository for MDX as a service pilot ## Configuration ```inventory/inventory``` - * contains all the machines alt-mdx should be deployed to grouped by function + * contains all the machines alt-mdx should be deployed to, grouped by function ```inventory/group_vars/all.yml``` - * contains the tlds and dns/server/proxy configuration for those machines + * contains the tld and dns/server/proxy configuration for those machines ```files/[tld].yaml``` diff --git a/files/srv.mdx.incubator.geant.org.yaml b/files/srv.mdx.incubator.geant.org.yaml index 625e43bf1f8f94d2fc80844cf62639f15f1f1603..3d0731e5af11996eeafdc9f8b77a93dc5ad4c325 100644 --- a/files/srv.mdx.incubator.geant.org.yaml +++ b/files/srv.mdx.incubator.geant.org.yaml @@ -58,12 +58,12 @@ data: - [ "193.224.22.78" ] - [ "145.100.180.185" ] - [ "62.217.72.109" ] - "proxy-eg": + "proxy-edugain": "a": - [ "193.224.22.78" ] - [ "145.100.180.185" ] - [ "62.217.72.109" ] - "proxy-tst": + "proxy-test": "a": - [ "193.224.22.78" ] - [ "145.100.180.185" ] diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml index 2e3c8fc69ba6c1dfdb4491cc809b8894a1309957..08c27f1bd5d4ccbcb4d59dd40f4e03bf8fdb3edf 100644 --- a/inventory/group_vars/all.yml +++ b/inventory/group_vars/all.yml @@ -1,29 +1,33 @@ --- -tlds: - - srv.mdx.incubator.geant.org +tld: srv.mdx.incubator.geant.org hosts: et2.gndev.hexaa.eu: hostname: srv1 tld: srv.mdx.incubator.geant.org mdserver: + altname: 'server-md2.et2.com' test: signer: hsm_signer metadir: metadata/test mdproxy: test: signer: 'http://localhost:5001' + altname: 'test-md.et2.com' edugain: signer: 'http://srv2-signer.srv.mdx.incubator.geant.org' + altname: 'edugain-md.et2.com' mdxcdn.pt-38.utr.surfcloud.nl: hostname: srv2 tld: srv.mdx.incubator.geant.org mdserver: + altname: 'server-md2.et2.com' edugain: signer: hsm_signer metadir: metadata/edugain mdproxy: test: signer: 'http://srv1-signer.srv.mdx.incubator.geant.org' + altname: 'test-md.foobar.com' edugain: signer: 'http://localhost:5001' 62.217.72.109: @@ -32,15 +36,21 @@ hosts: mdproxy: test: signer: 'http://srv1-signer.srv.mdx.incubator.geant.org' + altname: 'test-md.barfoo.com' edugain: signer: 'http://srv2-signer.srv.mdx.incubator.geant.org' alternative-mdx.pt-76.utr.surfcloud.nl: hostname: srv4 tld: srv.mdx.incubator.geant.org mdserver: + altname: 'server-md.example.com' test: signer: normal_signer metadir: metadata/test mdproxy: test: signer: 'http://localhost:5001' + altname: 'test-md.blabla.com' + edugain: + signer: 'http://srv2-signer.srv.mdx.incubator.geant.org' + altname: 'edugain-md.blabla.com' diff --git a/roles/apache/templates/md.conf.j2 b/roles/apache/templates/md.conf.j2 index 9daf02d7111493d69d509f2bcada682aba451683..f4ad694c3bd429d8487a413af746bae482b02a87 100644 --- a/roles/apache/templates/md.conf.j2 +++ b/roles/apache/templates/md.conf.j2 @@ -1,16 +1,38 @@ +{% if hosts[inventory_hostname].get('mdserver') %} <VirtualHost *:80> ServerName {{ hosts[inventory_hostname]['hostname'] }}-signer.{{ hosts[inventory_hostname]['tld'] }} - ServerAlias signer.srv.mdx.incubator.geant.org +{% if hosts[inventory_hostname]['mdserver'].get('altname') %} + ServerAlias {{ hosts[inventory_hostname]['mdserver']['altname'] }} +{% endif %} DocumentRoot /var/www/html AllowEncodedSlashes NoDecode ProxyPass "/" "http://127.0.0.1:5001/" nocanon ProxyPassReverse "/" "http://127.0.0.1:5001/" </VirtualHost> +{% endif %} + +{% if hosts[inventory_hostname].get('mdproxy') %} <VirtualHost *:80> ServerName {{ hosts[inventory_hostname]['hostname'] }}-proxy.{{ hosts[inventory_hostname]['tld'] }} - ServerAlias proxy.srv.mdx.incubator.geant.org DocumentRoot /var/www/html AllowEncodedSlashes NoDecode ProxyPass "/" "http://127.0.0.1:5002/" nocanon ProxyPassReverse "/" "http://127.0.0.1:5002/" </VirtualHost> +{% endif %} + +{% if hosts[inventory_hostname].get('mdproxy') %} +{% set mdproxy = hosts[inventory_hostname]['mdproxy'] %} +{% for realm, values in mdproxy.items() %} +<VirtualHost *:80> + ServerName proxy-{{ realm }}.{{ hosts[inventory_hostname]['tld'] }} +{% if values.get('altname') %} + ServerAlias {{ values['altname'] }} +{% endif %} + DocumentRoot /var/www/html + AllowEncodedSlashes NoDecode + ProxyPass "/" "http://127.0.0.1:5002/{{ realm }}" nocanon + ProxyPassReverse "/" "http://127.0.0.1:5002/{{ realm }}" +</VirtualHost> +{% endfor %} +{% endif %} diff --git a/roles/geodns/tasks/main.yml b/roles/geodns/tasks/main.yml index f9e0181a7b83b5c276abd9c8de51535f65a56bab..9833c636a0f876387e0cc53c9c4d17c028ad3d2e 100644 --- a/roles/geodns/tasks/main.yml +++ b/roles/geodns/tasks/main.yml @@ -43,12 +43,11 @@ - name: Copy geoDNS config ansible.builtin.copy: - content: "{{ lookup('file', item + '.yaml') | from_yaml | to_nice_json }}" - dest: "{{ geo_dns_config }}/{{ item }}.json" + content: "{{ lookup('file', tld + '.yaml') | from_yaml | to_nice_json }}" + dest: "{{ geo_dns_config }}/{{ tld }}.json" mode: '0644' notify: - "enable geodns job" - with_list: "{{ tlds }}" - name: Copy GeoLite2DB's ansible.builtin.copy: