From e68920c0e287f32e92e4ade186db4a45ee8ee31a Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Mon, 5 May 2025 18:02:14 +0300 Subject: [PATCH] Netdata as playbook --- playbook-netdata.yml | 46 ++++++++++++++++++++++++++++----- roles/netdata/defaults/main.yml | 4 --- roles/netdata/tasks/main.yml | 36 -------------------------- roles/owner/tasks/main.yml | 3 +-- 4 files changed, 40 insertions(+), 49 deletions(-) delete mode 100644 roles/netdata/defaults/main.yml delete mode 100644 roles/netdata/tasks/main.yml diff --git a/playbook-netdata.yml b/playbook-netdata.yml index aa46980..4c67550 100644 --- a/playbook-netdata.yml +++ b/playbook-netdata.yml @@ -6,12 +6,44 @@ - vars/ports.yml - vars/vars.yml + vars: + netdata_version: 'v2.4.0' + netdata_image: 'netdata/netdata:{{ netdata_version }}' + netdata_exposed_port: '{{ netdata_port }}' + tasks: - - name: "Install Netdata from role" - ansible.builtin.import_role: + - name: 'Grab docker group id.' + ansible.builtin.shell: + cmd: | + set -o pipefail + grep docker /etc/group | cut -d ':' -f 3 + executable: /bin/bash + register: netdata_docker_group_output + changed_when: netdata_docker_group_output.rc != 0 + + - name: 'Create NetData container from {{ netdata_image }}' + community.docker.docker_container: name: netdata - vars: - netdata_version: "v2.4.0" - netdata_exposed_port: "{{ netdata_port }}" - tags: - - monitoring + image: '{{ netdata_image }}' + image_name_mismatch: 'recreate' + restart_policy: 'unless-stopped' + published_ports: + - '127.0.0.1:{{ netdata_exposed_port }}:19999' + volumes: + - '/:/host/root:ro,rslave' + - '/etc/group:/host/etc/group:ro' + - '/etc/localtime:/etc/localtime:ro' + - '/etc/os-release:/host/etc/os-release:ro' + - '/etc/passwd:/host/etc/passwd:ro' + - '/proc:/host/proc:ro' + - '/run/dbus:/run/dbus:ro' + - '/sys:/host/sys:ro' + - '/var/log:/host/var/log:ro' + - '/var/run/docker.sock:/var/run/docker.sock:ro' + capabilities: + - 'SYS_PTRACE' + - 'SYS_ADMIN' + security_opts: + - 'apparmor:unconfined' + env: + PGID: '{{ netdata_docker_group_output.stdout | default(999) }}' diff --git a/roles/netdata/defaults/main.yml b/roles/netdata/defaults/main.yml deleted file mode 100644 index 67dd3ef..0000000 --- a/roles/netdata/defaults/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -netdata_version: 'v2.0.0' -netdata_image: 'netdata/netdata:{{ netdata_version }}' -netdata_exposed_port: '19999' diff --git a/roles/netdata/tasks/main.yml b/roles/netdata/tasks/main.yml deleted file mode 100644 index a709aac..0000000 --- a/roles/netdata/tasks/main.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -- name: 'Grab docker group id.' - ansible.builtin.shell: - cmd: | - set -o pipefail - grep docker /etc/group | cut -d ':' -f 3 - executable: /bin/bash - register: netdata_docker_group_output - changed_when: netdata_docker_group_output.rc != 0 - -- name: 'Create NetData container from {{ netdata_image }}' - community.docker.docker_container: - name: netdata - image: '{{ netdata_image }}' - image_name_mismatch: 'recreate' - restart_policy: 'always' - published_ports: - - '127.0.0.1:{{ netdata_exposed_port }}:19999' - volumes: - - '/:/host/root:ro,rslave' - - '/etc/group:/host/etc/group:ro' - - '/etc/localtime:/etc/localtime:ro' - - '/etc/os-release:/host/etc/os-release:ro' - - '/etc/passwd:/host/etc/passwd:ro' - - '/proc:/host/proc:ro' - - '/run/dbus:/run/dbus:ro' - - '/sys:/host/sys:ro' - - '/var/log:/host/var/log:ro' - - '/var/run/docker.sock:/var/run/docker.sock:ro' - capabilities: - - 'SYS_PTRACE' - - 'SYS_ADMIN' - security_opts: - - 'apparmor:unconfined' - env: - PGID: '{{ netdata_docker_group_output.stdout | default(999) }}' diff --git a/roles/owner/tasks/main.yml b/roles/owner/tasks/main.yml index 27b854d..9bcbae2 100644 --- a/roles/owner/tasks/main.yml +++ b/roles/owner/tasks/main.yml @@ -27,8 +27,7 @@ - name: "Prepare env variables." ansible.builtin.set_fact: - env_dict: '{{ owner_env | combine({ "CURRENT_UID": user_create_result.uid | default(owner_name), "CURRENT_GID": user_create_result.group | default(owner_group) - }) }}' + env_dict: '{{ owner_env | combine({"CURRENT_UID": user_create_result.uid | default(owner_name), "CURRENT_GID": user_create_result.group | default(owner_group)}) }}' - name: 'Set up environment variables for user "{{ owner_name }}".' ansible.builtin.template: