mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add node_exporter ansible role
This commit is contained in:
committed by
Dan Christian Bogos
parent
76b7be1adc
commit
cc25eae687
7
data/ansible/roles/node_exporter/defaults/main.yaml
Normal file
7
data/ansible/roles/node_exporter/defaults/main.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
node_exporter_version: 1.8.2
|
||||
node_exporter_user: node_exporter
|
||||
node_exporter_install_dir: /opt/node_exporter
|
||||
node_exporter_web_listen_address: 0.0.0.0:9100
|
||||
node_exporter_service_enabled: false
|
||||
node_exporter_service_state: stopped
|
||||
8
data/ansible/roles/node_exporter/handlers/main.yaml
Normal file
8
data/ansible/roles/node_exporter/handlers/main.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Restart node_exporter
|
||||
become: true
|
||||
ansible.builtin.systemd_service:
|
||||
name: node_exporter
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
when: node_exporter_service_state == 'started'
|
||||
58
data/ansible/roles/node_exporter/tasks/main.yaml
Normal file
58
data/ansible/roles/node_exporter/tasks/main.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
- name: Create node_exporter user
|
||||
become: true
|
||||
ansible.builtin.user:
|
||||
name: '{{ node_exporter_user }}'
|
||||
state: present
|
||||
system: true
|
||||
createhome: no
|
||||
|
||||
- name: Check current node_exporter version
|
||||
ansible.builtin.command: '{{ node_exporter_install_dir }}/node_exporter --version'
|
||||
register: node_exporter_current_version
|
||||
ignore_errors: true
|
||||
changed_when: false
|
||||
|
||||
- name: Remove existing node_exporter installation if version differs
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: '{{ node_exporter_install_dir }}'
|
||||
state: absent
|
||||
when: node_exporter_current_version.rc == 0 and node_exporter_version not in node_exporter_current_version.stdout
|
||||
|
||||
- name: Create node_exporter installation directory
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: '{{ node_exporter_install_dir }}'
|
||||
state: directory
|
||||
owner: '{{ node_exporter_user }}'
|
||||
group: '{{ node_exporter_user }}'
|
||||
mode: '0755'
|
||||
|
||||
- name: Download and extract node_exporter
|
||||
become: true
|
||||
ansible.builtin.unarchive:
|
||||
src: 'https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz'
|
||||
dest: '{{ node_exporter_install_dir }}'
|
||||
remote_src: true
|
||||
owner: '{{ node_exporter_user }}'
|
||||
group: '{{ node_exporter_user }}'
|
||||
extra_opts: [--strip-components=1]
|
||||
notify: Restart node_exporter
|
||||
when: node_exporter_current_version.rc != 0 or node_exporter_version not in node_exporter_current_version.stdout
|
||||
|
||||
- name: Create node_exporter systemd service file
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: node_exporter.service.j2
|
||||
dest: /etc/systemd/system/node_exporter.service
|
||||
mode: '0644'
|
||||
notify: Restart node_exporter
|
||||
|
||||
- name: Ensure node_exporter service is in desired state
|
||||
become: true
|
||||
ansible.builtin.systemd_service:
|
||||
name: node_exporter
|
||||
state: '{{ node_exporter_service_state }}'
|
||||
enabled: '{{ node_exporter_service_enabled }}'
|
||||
when: node_exporter_service_state == 'stopped' or node_exporter_service_enabled == false
|
||||
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Node Exporter
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User={{ node_exporter_user }}
|
||||
Group={{ node_exporter_user }}
|
||||
Type=simple
|
||||
ExecStart={{ node_exporter_install_dir }}/node_exporter \
|
||||
--web.listen-address={{ node_exporter_web_listen_address }}
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user