From 6d85addf1edfe6ef11ca29af52e4ba6ac4f0b042 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 2 Nov 2026 22:48:21 -0500 Subject: [PATCH 1/4] ansible/roles/nomad: set plugin_dir --- ansible/roles/nomad/templates/25-base.hcl.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/roles/nomad/templates/25-base.hcl.j2 b/ansible/roles/nomad/templates/25-base.hcl.j2 index 3e0508bb..cdb08b1d 100644 --- a/ansible/roles/nomad/templates/25-base.hcl.j2 +++ b/ansible/roles/nomad/templates/25-base.hcl.j2 @@ -1,4 +1,5 @@ data_dir = "/var/lib/nomad" +plugin_dir = "/usr/libexec/nomad" advertise { http = "{{void_mesh[inventory_hostname]}}" From ceac181d0f30f3f6426508ad3e04b60ab22e07b9 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 2 Nov 2026 22:48:43 -0500 Subject: [PATCH 2/4] ansible/roles/nomad_client: install and configure nomad-driver-exec2 --- ansible/roles/nomad_client/tasks/main.yml | 6 ++++++ ansible/roles/nomad_client/templates/40-client.hcl | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/ansible/roles/nomad_client/tasks/main.yml b/ansible/roles/nomad_client/tasks/main.yml index 8687bcc3..07d053a9 100644 --- a/ansible/roles/nomad_client/tasks/main.yml +++ b/ansible/roles/nomad_client/tasks/main.yml @@ -1,4 +1,10 @@ --- +- name: Install plugins + community.general.xbps: + pkg: nomad-driver-exec2 + state: present + tags: [install_nomad] + - name: Install Configuration ansible.builtin.template: src: 40-client.hcl diff --git a/ansible/roles/nomad_client/templates/40-client.hcl b/ansible/roles/nomad_client/templates/40-client.hcl index f87adbc2..de1b040d 100644 --- a/ansible/roles/nomad_client/templates/40-client.hcl +++ b/ansible/roles/nomad_client/templates/40-client.hcl @@ -59,3 +59,9 @@ plugin "docker" { allow_caps = {{ ( nomad_default_caps + ( nomad_extra_caps | default([]) ) ) | to_json }} } } + +plugin "nomad-driver-exec2" { + config { + unveil_by_task = true + } +} From 658396d33113e712780ce70f424274fb057080c2 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 2 Nov 2026 22:49:09 -0500 Subject: [PATCH 3/4] services/nomad/monitoring/node_exporter: new service --- services/nomad/monitoring/node_exporter.nomad | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 services/nomad/monitoring/node_exporter.nomad diff --git a/services/nomad/monitoring/node_exporter.nomad b/services/nomad/monitoring/node_exporter.nomad new file mode 100644 index 00000000..81d34c08 --- /dev/null +++ b/services/nomad/monitoring/node_exporter.nomad @@ -0,0 +1,34 @@ +job "node_exporter" { + datacenters = [ + "VOID", + "VOID-MX", + "VOID-MIRROR", + "VOID-CONTROL", + ] + namespace = "monitoring" + type = "system" + priority = 99 + + group "app" { + network { + mode = "bridge" + port "metrics" { to = 9100 } + } + + task "vector" { + driver = "exec2" + + config { + command = "node_exporter" + args = ["--collector.runit", "--collector.runit.servicedir", "/var/service"] + } + + service { + provider = "nomad" + name = "node_exporter" + port = "metrics" + tags = ["prometheus_enable"] + } + } + } +} From d3ca89ffd967515e798d528e4a100eaac88ac37e Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 2 Nov 2026 22:56:42 -0500 Subject: [PATCH 4/4] services/nomad/monitoring/prometheus: disable node_exporter job now detected by generic nomad service discovery --- services/nomad/monitoring/prometheus.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/services/nomad/monitoring/prometheus.yml b/services/nomad/monitoring/prometheus.yml index 33211c1a..f0cd4e17 100644 --- a/services/nomad/monitoring/prometheus.yml +++ b/services/nomad/monitoring/prometheus.yml @@ -17,14 +17,6 @@ scrape_configs: static_configs: - targets: - localhost:9090 - - job_name: node - consul_sd_configs: - - server: '{{ env "NOMAD_HOST_IP_http" }}:8500' - datacenter: void - services: ['node-exporter'] - relabel_configs: - - source_labels: ['__meta_consul_node'] - target_label: instance # {{ range nomadService 1 $allocID "ssl-exporter?ns=monitoring" }} - job_name: 'ssl' metrics_path: /probe