--- - name: create nginx document root directory file: path: "/var/www/landingpage" state: directory - name: copy index.html template: src: index.html.j2 dest: "/var/www/landingpage/index.html" - name: compute nginx vhost config vars: monitoring_landingpage_vhost_base: name: landingpage template: generic hostnames: "{{ monitoring_landingpage_hostnames }}" locations: '/': root: /var/www/landingpage monitoring_landingpage_vhost_override__yaml: | {% if monitoring_landingpage_tls is defined %} tls: {{ monitoring_landingpage_tls | to_nice_yaml(indent=2) | indent(2) }} {% endif %} locations: {% if 'prometheus' in monitoring_landingpage_services %} '/prometheus/': proxy_pass: "http://{{ prometheus_server_web_listen_address | default('127.0.0.1:9090') }}" {% endif %} {% if 'alertmanager' in monitoring_landingpage_services %} '/alertmanager/': proxy_pass: "http://{{ prometheus_alertmanager_web_listen_address | default('127.0.0.1:9093') }}" {% endif %} {% if 'grafana' in monitoring_landingpage_services %} '/grafana/': proxy_pass: "http://{{ grafana_config_server.http_addr | default('localhost') }}:{{ grafana_config_server.http_port | default(3000) }}" {% endif %} set_fact: monitoring_landingpage_vhost: "{{ monitoring_landingpage_vhost_base | combine(monitoring_landingpage_vhost_override__yaml | from_yaml, recursive=True) }}" - name: configure nginx vhost vars: nginx_vhost: "{{ monitoring_landingpage_vhost }}" include_role: name: nginx/vhost