diff options
Diffstat (limited to 'roles')
-rw-r--r-- | roles/monitoring/landingpage/defaults/main.yml | 5 | ||||
-rw-r--r-- | roles/monitoring/landingpage/tasks/main.yml | 28 | ||||
-rw-r--r-- | roles/monitoring/landingpage/templates/index.html.j2 | 6 |
3 files changed, 34 insertions, 5 deletions
diff --git a/roles/monitoring/landingpage/defaults/main.yml b/roles/monitoring/landingpage/defaults/main.yml index 88e1b133..8cdaba86 100644 --- a/roles/monitoring/landingpage/defaults/main.yml +++ b/roles/monitoring/landingpage/defaults/main.yml @@ -6,3 +6,8 @@ # certificate_provider: "{{ acme_client }}" #monitoring_landingpage_title: "Example Monitoring Host" + +monitoring_landingpage_services: + - prometheus + - alertmanager + - grafana diff --git a/roles/monitoring/landingpage/tasks/main.yml b/roles/monitoring/landingpage/tasks/main.yml index 225cab10..5d2c6695 100644 --- a/roles/monitoring/landingpage/tasks/main.yml +++ b/roles/monitoring/landingpage/tasks/main.yml @@ -9,22 +9,40 @@ src: index.html.j2 dest: "/var/www/landingpage/index.html" -- name: configure nginx vhost - vars: - nginx_vhost: +- name: compute base vhost config + set_fact: + monitoring_landingpage_vhost_base: name: landingpage template: generic hostnames: "{{ monitoring_landingpage_hostnames }}" - ### make tls settings optional? - #tls: "{{ monitoring_landingpage_tls }}" locations: '/': root: /var/www/landingpage + +- name: compute additional vhost config + vars: + monitoring_landingpage_vhost_override__yaml: | + {% if monitoring_landingpage_tls is defined %} + tls: "{{ monitoring_landingpage_tls }}" + {% 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 diff --git a/roles/monitoring/landingpage/templates/index.html.j2 b/roles/monitoring/landingpage/templates/index.html.j2 index a340f1db..a9bb8aca 100644 --- a/roles/monitoring/landingpage/templates/index.html.j2 +++ b/roles/monitoring/landingpage/templates/index.html.j2 @@ -8,9 +8,15 @@ <div style="text-align:center; margin-left:auto; margin-right:auto;"> <h1>{{ monitoring_landingpage_title }}</h1> <ul style="list-style-type: none;"> +{% if 'prometheus' in monitoring_landingpage_services %} <li><a target='_blank' href='/prometheus/'>Prometheus</a></li> +{% endif %} +{% if 'alertmanager' in monitoring_landingpage_services %} <li><a target='_blank' href='/alertmanager/'>Prometheus Alertmanager</a></li> +{% endif %} +{% if 'grafana' in monitoring_landingpage_services %} <li><a target='_blank' href='/grafana/'>Grafana</a></li> +{% endif %} </ul> </div> </body> |