summaryrefslogtreecommitdiffstats
path: root/roles/prometheus
diff options
context:
space:
mode:
Diffstat (limited to 'roles/prometheus')
-rw-r--r--roles/prometheus/defaults/main.yml1
-rw-r--r--roles/prometheus/handlers/main.yml6
-rw-r--r--roles/prometheus/meta/argument_specs.yml4
-rw-r--r--roles/prometheus/tasks/main.yml15
-rw-r--r--roles/prometheus/templates/prometheus.nginx.conf.j210
5 files changed, 36 insertions, 0 deletions
diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml
index 7a231b5c..cd91dee6 100644
--- a/roles/prometheus/defaults/main.yml
+++ b/roles/prometheus/defaults/main.yml
@@ -8,3 +8,4 @@ prometheus_targets:
- "{{ prometheus_host }}:{{ prometheus_port }}"
prometheus_node_exporter_targets: []
+prometheus_hostname: "metrics.home.arpa"
diff --git a/roles/prometheus/handlers/main.yml b/roles/prometheus/handlers/main.yml
index d35a8531..b42a2391 100644
--- a/roles/prometheus/handlers/main.yml
+++ b/roles/prometheus/handlers/main.yml
@@ -4,3 +4,9 @@
ansible.builtin.systemd_service:
name: "prometheus"
state: "restarted"
+
+- name: "Restart nginx"
+ become: true
+ ansible.builtin.systemd_service:
+ name: "nginx"
+ state: "restarted"
diff --git a/roles/prometheus/meta/argument_specs.yml b/roles/prometheus/meta/argument_specs.yml
index e1a72307..5f908119 100644
--- a/roles/prometheus/meta/argument_specs.yml
+++ b/roles/prometheus/meta/argument_specs.yml
@@ -28,3 +28,7 @@ argument_specs:
type: "list"
elements: "str"
default: []
+ prometheus_hostname:
+ type: "str"
+ description: "FQDN for the prometheus nginx vhost (e.g. 'metrics.home.arpa')."
+ default: "metrics.home.arpa"
diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml
index 1f639c6d..8e315bec 100644
--- a/roles/prometheus/tasks/main.yml
+++ b/roles/prometheus/tasks/main.yml
@@ -61,3 +61,18 @@
name: "prometheus"
state: "started"
enabled: true
+
+- name: "Create prometheus nginx vhost configuration"
+ become: true
+ when: prometheus_hostname | length > 0
+ ansible.builtin.template:
+ src: "prometheus.nginx.conf.j2"
+ dest: "/etc/nginx/vhosts.d/prometheus.conf"
+ owner: "root"
+ group: "root"
+ mode: "0644"
+ backup: true
+ validate: >
+ bash -c 'echo "events { worker_connections 64; } http { include %s; }" > /tmp/nginx-vhost.conf;
+ sudo nginx -T -c /tmp/nginx-vhost.conf; ec=$?; rm -f /tmp/nginx-vhost.conf; exit $ec'
+ notify: "Restart nginx"
diff --git a/roles/prometheus/templates/prometheus.nginx.conf.j2 b/roles/prometheus/templates/prometheus.nginx.conf.j2
new file mode 100644
index 00000000..5ae9c20c
--- /dev/null
+++ b/roles/prometheus/templates/prometheus.nginx.conf.j2
@@ -0,0 +1,10 @@
+server {
+ listen 80;
+ listen [::]:80;
+
+ server_name {{ prometheus_hostname }};
+
+ location / {
+ proxy_pass http://127.0.0.1:{{ prometheus_port }}/;
+ }
+}