From 3a6a0824a6cb530ca4b9dbcab7593fac0c61f8e2 Mon Sep 17 00:00:00 2001 From: Chris Cowley Date: Thu, 26 Oct 2017 17:10:34 +0200 Subject: [PATCH 1/4] Added a parameter for whether to manage the firewall --- defaults/main.yml | 2 ++ tasks/main.yml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index 54f2870..03ba112 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -29,3 +29,5 @@ PROMETHEUS_NODE_EXPORTER_MONITOR_STORCLI: false # The mv commands ensure atomicity PROMETHEUS_NODE_EXPORTER_STORCLI_STAT_COLLECTION_COMMAND: > {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_BINARIES_DIR }}/storcli.py > {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}/storcli.prom.$$ && mv {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}/storcli.prom.$$ {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}/storcli.prom && echo storcli_collection_time $(date +\%s) > {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}/storcli_collection_time.prom.$$ && mv {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}/storcli_collection_time.prom.$$ {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}/storcli_collection_time.prom + +PROMETHEUS_NODE_EXPORTER_MANAGE_FW: true diff --git a/tasks/main.yml b/tasks/main.yml index 4abdcdc..682d761 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -77,4 +77,4 @@ rule: 'allow' port: '{{ PROMETHEUS_NODE_EXPORTER_PORT }}' proto: 'tcp' - when: + when: 'PROMETHEUS_NODE_EXPORTER_MANAGE_FW == true' From 0beeb290266515b8b2b2338fe782f12febf06977 Mon Sep 17 00:00:00 2001 From: Chris Cowley Date: Thu, 26 Oct 2017 17:24:12 +0200 Subject: [PATCH 2/4] Fixed service template syntax --- templates/prometheus-node-exporter.service.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/prometheus-node-exporter.service.j2 b/templates/prometheus-node-exporter.service.j2 index 5a24421..a4bda5e 100644 --- a/templates/prometheus-node-exporter.service.j2 +++ b/templates/prometheus-node-exporter.service.j2 @@ -11,7 +11,7 @@ User={{ PROMETHEUS_NODE_EXPORTER_USER }} Group={{ PROMETHEUS_NODE_EXPORTER_GROUP }} ExecStart= {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_BINARIES_DIR }}/{{ PROMETHEUS_NODE_EXPORTER_DIR_NAME }}/node_exporter \ - -collector.textfile.directory {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }} {% if PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS is defined %}\ + --collector.textfile.directory {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }} {% if PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS is defined %}\ {{ PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS }} {% endif %} [Install] From 3973b883cbad1863b1852cc2e151d0b2d99344f2 Mon Sep 17 00:00:00 2001 From: Chris Cowley Date: Thu, 26 Oct 2017 17:33:44 +0200 Subject: [PATCH 3/4] Update default to 0.15.0 --- defaults/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 03ba112..dee8b44 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,8 +1,8 @@ --- # defaults file for ansible-prometheus-node-exporter -PROMETHEUS_NODE_EXPORTER_VERSION: '0.14.0' -PROMETHEUS_NODE_EXPORTER_PACKAGE_CHECKSUM: 'd5980bf5d0dc7214741b65d3771f08e6f8311c86531ae21c6ffec1d643549b2e' +PROMETHEUS_NODE_EXPORTER_VERSION: '0.15.0' +PROMETHEUS_NODE_EXPORTER_PACKAGE_CHECKSUM: '9413b3c94dbe9d4341ce85ea7e3f0e20abb8804135b8c236c4440c2c841551d7' PROMETHEUS_NODE_EXPORTER_OS: 'linux' PROMETHEUS_NODE_EXPORTER_ARCH: 'amd64' From d66c32442a8f44d0cfd40bbc0045df901d04cef5 Mon Sep 17 00:00:00 2001 From: Chris COWLEY Date: Wed, 22 Nov 2017 09:16:00 +0100 Subject: [PATCH 4/4] MAde some changes as to the way directories are parameterised --- defaults/main.yml | 5 +++ tasks/main.yml | 31 ++++++++++++++++--- templates/prometheus-node-exporter.conf.j2 | 4 +-- templates/prometheus-node-exporter.service.j2 | 4 +-- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index dee8b44..71ed23a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -17,6 +17,11 @@ PROMETHEUS_NODE_EXPORTER_DIRS: PROMETHEUS_LOGS_DIR: '/var/log/prometheus' PROMETHEUS_TEXTFILE_COLLECTOR_DIR: '/var/lib/prometheus/node_exporter/textfile_collector' +PROMETHEUS_NODE_EXPORTER_DIR: '/opt/node_exporter' +PROMETHEUS_NODE_EXPORTER_CONF_DIR: '/etc/node_exporter' +PROMETHEUS_NODE_EXPORTER_LOG_DIR: '/var/log/node_exporter' +PROMETHEUS_TEXTFILE_COLLECTOR_DIR: '/var/lib/prometheus/node_exporter/textfile_collector' + PROMETHEUS_NODE_EXPORTER_DIR_NAME: 'node_exporter-{{ PROMETHEUS_NODE_EXPORTER_VERSION }}.{{ PROMETHEUS_NODE_EXPORTER_OS }}-{{ PROMETHEUS_NODE_EXPORTER_ARCH }}' PROMETHEUS_CONFIG_FILE_NAME: 'prometheus.yml' diff --git a/tasks/main.yml b/tasks/main.yml index 682d761..6c2ead6 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -15,14 +15,37 @@ shell: '/sbin/nologin' state: 'present' -- name: Prometheus Node Exporter directories created +- name: Prometheus Node Exporter basedir file: - path: '{{ item }}' + path: '{{ PROMETHEUS_NODE_EXPORTER_DIR }}' + state: 'directory' + owner: '{{ PROMETHEUS_NODE_EXPORTER_USER }}' + group: '{{ PROMETHEUS_NODE_EXPORTER_GROUP }}' + mode: 'u=rwx,g=rx,o=' + +- name: Prometheus Node Exporter conf dir + file: + path: '{{ PROMETHEUS_NODE_EXPORTER_CONF_DIR }}' + state: 'directory' + owner: '{{ PROMETHEUS_NODE_EXPORTER_USER }}' + group: '{{ PROMETHEUS_NODE_EXPORTER_GROUP }}' + mode: 'u=rwx,g=rx,o=' + +- name: Prometheus Node Exporter log dir + file: + path: '{{ PROMETHEUS_NODE_EXPORTER_LOG_DIR }}' + state: 'directory' + owner: '{{ PROMETHEUS_NODE_EXPORTER_USER }}' + group: '{{ PROMETHEUS_NODE_EXPORTER_GROUP }}' + mode: 'u=rwx,g=rx,o=' + +- name: Prometheus Node Exporter textfile dir + file: + path: '{{ PROMETHEUS_TEXTFILE_COLLECTOR_DIR }}' state: 'directory' owner: '{{ PROMETHEUS_NODE_EXPORTER_USER }}' group: '{{ PROMETHEUS_NODE_EXPORTER_GROUP }}' mode: 'u=rwx,g=rx,o=' - with_items: '{{ PROMETHEUS_NODE_EXPORTER_DIRS.values() }}' - name: Configure RAID monitoring with StorCLI include: 'monitor_raid_storcli.yml' @@ -38,7 +61,7 @@ unarchive: src: '/tmp/{{ PROMETHEUS_NODE_EXPORTER_DIR_NAME }}.tar.gz' remote_src: true - dest: '{{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_BINARIES_DIR }}' + dest: '{{ PROMETHEUS_NODE_EXPORTER_DIR }}' - name: Prometheus Node Exporter systemd unit file templated template: diff --git a/templates/prometheus-node-exporter.conf.j2 b/templates/prometheus-node-exporter.conf.j2 index 8583571..86fd650 100644 --- a/templates/prometheus-node-exporter.conf.j2 +++ b/templates/prometheus-node-exporter.conf.j2 @@ -3,8 +3,8 @@ start on startup script - sudo -u {{ PROMETHEUS_NODE_EXPORTER_USER }} {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_BINARIES_DIR }}/{{ PROMETHEUS_NODE_EXPORTER_DIR_NAME }}/node_exporter \ - -collector.textfile.directory {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }} {% if PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS is defined %}\ + sudo -u {{ PROMETHEUS_NODE_EXPORTER_USER }} {{ PROMETHEUS_NODE_EXPORTER_DIR }}/{{ PROMETHEUS_NODE_EXPORTER_DIR_NAME }}/node_exporter \ + -collector.textfile.directory {{ PROMETHEUS_TEXTFILE_COLLECTOR_DIR }} {% if PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS is defined %}\ {{ PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS }} {% endif %} end script diff --git a/templates/prometheus-node-exporter.service.j2 b/templates/prometheus-node-exporter.service.j2 index a4bda5e..1b7936a 100644 --- a/templates/prometheus-node-exporter.service.j2 +++ b/templates/prometheus-node-exporter.service.j2 @@ -10,8 +10,8 @@ Restart=on-failure User={{ PROMETHEUS_NODE_EXPORTER_USER }} Group={{ PROMETHEUS_NODE_EXPORTER_GROUP }} -ExecStart= {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_BINARIES_DIR }}/{{ PROMETHEUS_NODE_EXPORTER_DIR_NAME }}/node_exporter \ - --collector.textfile.directory {{ PROMETHEUS_NODE_EXPORTER_DIRS.PROMETHEUS_TEXTFILE_COLLECTOR_DIR }} {% if PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS is defined %}\ +ExecStart= {{ PROMETHEUS_NODE_EXPORTER_DIR }}/{{ PROMETHEUS_NODE_EXPORTER_DIR_NAME }}/node_exporter \ + --collector.textfile.directory {{ PROMETHEUS_TEXTFILE_COLLECTOR_DIR }} {% if PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS is defined %}\ {{ PROMETHEUS_NODE_EXPORTER_CUSTOM_OPTS }} {% endif %} [Install]