132 lines
3.9 KiB
YAML
132 lines
3.9 KiB
YAML
---
|
|
- name: Install packages
|
|
ansible.builtin.package:
|
|
name: >-
|
|
{% if ansible_distribution in ["Fedora", "OpenBSD"] -%}
|
|
{{ "node_exporter" -}}
|
|
{% else -%}
|
|
{{ "golang-github-prometheus-node-exporter" -}}
|
|
{% endif -%}
|
|
state: installed
|
|
|
|
- name: Allow prometheus user to read private key
|
|
ansible.builtin.user:
|
|
name: >-
|
|
{% if ansible_distribution == "OpenBSD" -%}
|
|
{{ "_nodeexporter" -}}
|
|
{% else -%}
|
|
{{ "prometheus" -}}
|
|
{% endif -%}
|
|
groups: hostkey
|
|
append: true
|
|
create_home: false
|
|
notify: Restart node_exporter
|
|
|
|
- name: Create config directory
|
|
ansible.builtin.file:
|
|
path: /etc/node_exporter
|
|
state: directory
|
|
mode: "0755"
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
|
|
- name: Create web-config
|
|
ansible.builtin.template:
|
|
dest: /etc/node_exporter/web-config.yml
|
|
src: web-config.yml.j2
|
|
mode: "0644"
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
notify: Restart node_exporter
|
|
|
|
- name: Create textfile collector directory
|
|
ansible.builtin.file:
|
|
path: /var/db/node-exporter
|
|
state: directory
|
|
mode: 0755
|
|
owner: _nodeexporter
|
|
group: _nodeexporter
|
|
when: ansible_os_family == "OpenBSD"
|
|
|
|
- name: Create directory for textfile collector scripts
|
|
ansible.builtin.file:
|
|
path: /usr/local/libexec/node-exporter
|
|
state: directory
|
|
mode: 0755
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
|
|
- name: Add script for running textfile collector scripts
|
|
ansible.builtin.copy:
|
|
dest: /usr/local/sbin/node-exporter-run-textfile-collector
|
|
src: node-exporter-run-textfile-collector.sh
|
|
mode: 0755
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
|
|
- name: Add cron job for running textfile collector scripts
|
|
ansible.builtin.cron:
|
|
name: node-exporter-run-textfile-collector
|
|
job: /usr/local/sbin/node-exporter-run-textfile-collector
|
|
minute: "*/10"
|
|
|
|
- name: Modify config (pre 1.5.0)
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/default/prometheus-node-exporter
|
|
regexp: "^ARGS="
|
|
line: >-
|
|
ARGS="--collector.filesystem.ignored-mount-points='^/(dev|proc|sys|run/(user|credentials/systemd-.+))($|/)'
|
|
--collector.netclass.ignored-devices='^(br-|docker|veth).+$'
|
|
--collector.netdev.device-exclude='^(br-|docker|veth).+$'
|
|
--web.config=/etc/node_exporter/web-config.yml
|
|
--collector.textfile.directory=/var/lib/prometheus/node-exporter"
|
|
notify: Restart node_exporter
|
|
when:
|
|
- ansible_os_family == "RedHat"
|
|
- ansible_distribution != "Fedora"
|
|
|
|
- name: Modify config
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/default/prometheus-node-exporter
|
|
regexp: "^ARGS="
|
|
line: >-
|
|
ARGS="--collector.filesystem.ignored-mount-points='^/(dev|proc|sys|run/(user|credentials/systemd-.+))($|/)'
|
|
--collector.netclass.ignored-devices='^(br-|docker|veth).+$'
|
|
--collector.netdev.device-exclude='^(br-|docker|veth).+$'
|
|
--web.config.file=/etc/node_exporter/web-config.yml
|
|
--collector.textfile.directory=/var/lib/prometheus/node-exporter"
|
|
notify: Restart node_exporter
|
|
when:
|
|
- ansible_distribution == "Fedora"
|
|
|
|
- name: Install disk and raid monitoring scripts
|
|
ansible.builtin.copy:
|
|
dest: "/usr/local/libexec/node-exporter/{{ item }}"
|
|
src: "{{ item }}"
|
|
mode: "0755"
|
|
owner: root
|
|
group: "{{ ansible_wheel }}"
|
|
with_items:
|
|
- md_info.sh
|
|
- smartmon.sh
|
|
when:
|
|
- ansible_virtualization_role == "host"
|
|
- ansible_os_family == "RedHat"
|
|
|
|
- name: Enable service
|
|
ansible.builtin.service:
|
|
name: node_exporter
|
|
state: started
|
|
enabled: true
|
|
arguments: >-
|
|
--web.config.file=/etc/node_exporter/web-config.yml
|
|
--collector.textfile.directory=/var/db/node-exporter
|
|
notify: Restart node_exporter
|
|
when: ansible_os_family == "OpenBSD"
|
|
|
|
- name: Enable service
|
|
ansible.builtin.service:
|
|
name: prometheus-node-exporter
|
|
state: started
|
|
enabled: true
|
|
when: ansible_os_family == "RedHat"
|