From c6ffcfdef305c39273e7ab13bea69374c92eb171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Krupa?= <pawel@krupa.net.pl> Date: Fri, 31 Jan 2020 19:15:51 +0100 Subject: [PATCH] remove system user management and convert variables to internal ones (#142) * remove system user management and convert variables to internal ones * molecule: remove testing for user creation as it is not easily possible due to ansible variable precedence [minor] release --- README.md | 2 -- defaults/main.yml | 3 --- molecule/alternative/playbook.yml | 2 -- molecule/alternative/tests/test_alternative.py | 5 ----- tasks/configure.yml | 4 ++-- tasks/install.yml | 10 +++++----- templates/node_exporter.service.j2 | 4 ++-- vars/main.yml | 2 ++ 8 files changed, 11 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index ab3e482..6a261fd 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ All variables which can be overridden are stored in [defaults/main.yml](defaults | `node_exporter_version` | 0.18.1 | Node exporter package version. Also accepts latest as parameter. | | `node_exporter_binary_local_dir` | "" | Allows to use local packages instead of ones distributed on github. As parameter it takes a directory where `node_exporter` binary is stored on host on which ansible is ran. This overrides `node_exporter_version` parameter | | `node_exporter_web_listen_address` | "0.0.0.0:9100" | Address on which node exporter will listen | -| `node_exporter_system_group` | "node-exp" | System group used to run node_exporter | -| `node_exporter_system_user` | "node-exp" | System user used to run node_exporter | | `node_exporter_enabled_collectors` | [ systemd, textfile ] | List of additionally enabled collectors. It adds collectors to [those enabled by default](https://github.com/prometheus/node_exporter#enabled-by-default) | | `node_exporter_disabled_collectors` | [] | List of disabled collectors. By default node_exporter disables collectors listed [here](https://github.com/prometheus/node_exporter#disabled-by-default). | | `node_exporter_textfile_dir` | "/var/lib/node_exporter" | Directory used by the [Textfile Collector](https://github.com/prometheus/node_exporter#textfile-collector). To get permissions to write metrics in this directory, users must be in `node-exp` system group. diff --git a/defaults/main.yml b/defaults/main.yml index 723ffff..f6f549a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -3,9 +3,6 @@ node_exporter_version: 0.18.1 node_exporter_binary_local_dir: "" node_exporter_web_listen_address: "0.0.0.0:9100" -node_exporter_system_group: "node-exp" -node_exporter_system_user: "{{ node_exporter_system_group }}" - node_exporter_textfile_dir: "/var/lib/node_exporter" node_exporter_enabled_collectors: diff --git a/molecule/alternative/playbook.yml b/molecule/alternative/playbook.yml index 238fbbd..ce51111 100644 --- a/molecule/alternative/playbook.yml +++ b/molecule/alternative/playbook.yml @@ -6,8 +6,6 @@ - ansible-node-exporter vars: node_exporter_binary_local_dir: "/tmp/node_exporter-linux-amd64" - node_exporter_system_group: "root" - node_exporter_system_user: "root" node_exporter_textfile_dir: "" node_exporter_enabled_collectors: - entropy diff --git a/molecule/alternative/tests/test_alternative.py b/molecule/alternative/tests/test_alternative.py index 8b6237f..87cfc15 100644 --- a/molecule/alternative/tests/test_alternative.py +++ b/molecule/alternative/tests/test_alternative.py @@ -14,11 +14,6 @@ def test_directories(host): assert not d.exists -def test_user(host): - assert not host.group("node-exp").exists - assert not host.user("node-exp").exists - - def test_service(host): s = host.service("node_exporter") # assert s.is_enabled diff --git a/tasks/configure.yml b/tasks/configure.yml index a77b19e..71b0de4 100644 --- a/tasks/configure.yml +++ b/tasks/configure.yml @@ -12,8 +12,8 @@ file: path: "{{ node_exporter_textfile_dir }}" state: directory - owner: "{{ node_exporter_system_user }}" - group: "{{ node_exporter_system_group }}" + owner: "{{ _node_exporter_system_user }}" + group: "{{ _node_exporter_system_group }}" recurse: true mode: 0775 when: node_exporter_textfile_dir | length > 0 diff --git a/tasks/install.yml b/tasks/install.yml index d640ad1..195553f 100644 --- a/tasks/install.yml +++ b/tasks/install.yml @@ -1,21 +1,21 @@ --- - name: Create the node_exporter group group: - name: "{{ node_exporter_system_group }}" + name: "{{ _node_exporter_system_group }}" state: present system: true - when: node_exporter_system_group != "root" + when: _node_exporter_system_group != "root" - name: Create the node_exporter user user: - name: "{{ node_exporter_system_user }}" - groups: "{{ node_exporter_system_group }}" + name: "{{ _node_exporter_system_user }}" + groups: "{{ _node_exporter_system_group }}" append: true shell: /usr/sbin/nologin system: true create_home: false home: / - when: node_exporter_system_user != "root" + when: _node_exporter_system_user != "root" - block: - name: Download node_exporter binary to local folder diff --git a/templates/node_exporter.service.j2 b/templates/node_exporter.service.j2 index 7773c3f..559c409 100644 --- a/templates/node_exporter.service.j2 +++ b/templates/node_exporter.service.j2 @@ -7,8 +7,8 @@ StartLimitInterval=0 [Service] Type=simple -User={{ node_exporter_system_user }} -Group={{ node_exporter_system_group }} +User={{ _node_exporter_system_user }} +Group={{ _node_exporter_system_group }} ExecStart={{ _node_exporter_binary_install_dir }}/node_exporter \ {% for collector in node_exporter_enabled_collectors -%} {% if not collector is mapping %} diff --git a/vars/main.yml b/vars/main.yml index 945db28..9758af1 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -9,3 +9,5 @@ go_arch_map: go_arch: "{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}" _node_exporter_binary_install_dir: "/usr/local/bin" +_node_exporter_system_group: "node-exp" +_node_exporter_system_user: "{{ _node_exporter_system_group }}" -- GitLab