diff options
Diffstat (limited to 'roles/prometheus')
| -rw-r--r-- | roles/prometheus/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/prometheus/handlers/main.yml | 6 | ||||
| -rw-r--r-- | roles/prometheus/meta/argument_specs.yml | 4 | ||||
| -rw-r--r-- | roles/prometheus/tasks/main.yml | 15 | ||||
| -rw-r--r-- | roles/prometheus/templates/prometheus.nginx.conf.j2 | 10 |
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 }}/; + } +} |
