mirror of
https://github.com/natelandau/ansible-homelab-config.git
synced 2025-11-18 09:53:41 -05:00
Initial commit
This commit is contained in:
93
tasks/service_prometheus_nodeExporter.yml
Normal file
93
tasks/service_prometheus_nodeExporter.yml
Normal file
@@ -0,0 +1,93 @@
|
||||
---
|
||||
# TASK DESCRIPTION:
|
||||
# Downloads, installs, and configures Prometheus Node Exporter.
|
||||
#
|
||||
# NOTE: This is depreciated, I no longer use Prometheus and have migrated to Telegraf
|
||||
|
||||
- name: populate service facts
|
||||
service_facts:
|
||||
|
||||
- name: stop node_exporter
|
||||
become: true
|
||||
ansible.builtin.systemd:
|
||||
name: node_exporter
|
||||
state: stopped
|
||||
when: ansible_facts.services["node_exporter.service"] is defined
|
||||
|
||||
- name: Ensure group "prometheus" exists
|
||||
become: true
|
||||
ansible.builtin.group:
|
||||
name: prometheus
|
||||
state: present
|
||||
|
||||
- name: Add the user 'prometheus' with group 'prometheus'
|
||||
become: true
|
||||
ansible.builtin.user:
|
||||
name: prometheus
|
||||
group: prometheus
|
||||
groups: docker
|
||||
append: true
|
||||
|
||||
# --------------- Install or Update Prometheus
|
||||
- name: "set fact: need to install Prometheus?"
|
||||
set_fact:
|
||||
need_prometheus_install: false
|
||||
|
||||
- name: Check if node_exporter is installed
|
||||
ansible.builtin.stat:
|
||||
path: /usr/local/bin/node_exporter
|
||||
register: prometheus_binary_file_location
|
||||
|
||||
- name: "set fact: need to install Prometheus?"
|
||||
set_fact:
|
||||
need_prometheus_install: true
|
||||
when:
|
||||
- not prometheus_binary_file_location.stat.exists
|
||||
|
||||
- name: Check current version of Prometheus
|
||||
ansible.builtin.shell: /usr/local/bin/node_exporter --version 3>&1 1>&2 2>&3 | head -n1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
|
||||
ignore_errors: true
|
||||
register: current_prometheus_version
|
||||
check_mode: false
|
||||
when:
|
||||
- need_prometheus_install is false
|
||||
|
||||
- name: "set fact: need to install Prometheus?"
|
||||
set_fact:
|
||||
need_prometheus_install: true
|
||||
when:
|
||||
- need_prometheus_install is false
|
||||
- current_prometheus_version.stdout != prometheus_verssion
|
||||
|
||||
- name: install node_exporter
|
||||
become: true
|
||||
ansible.builtin.unarchive:
|
||||
src: "https://github.com/prometheus/node_exporter/releases/download/v{{ prometheus_verssion }}/node_exporter-{{ prometheus_verssion }}.linux-armv7.tar.gz"
|
||||
dest: /usr/local/bin
|
||||
group: prometheus
|
||||
owner: prometheus
|
||||
# reference for extra_opts: https://github.com/ansible/ansible/issues/27081
|
||||
extra_opts:
|
||||
- --strip=1
|
||||
- --no-anchored
|
||||
- "node_exporter"
|
||||
remote_src: true
|
||||
when:
|
||||
- need_prometheus_install is true
|
||||
|
||||
- name: create node_exporter service
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: node_exporter.service.j2
|
||||
dest: /etc/systemd/system/node_exporter.service
|
||||
mode: 0644
|
||||
|
||||
- name: start node_exporter
|
||||
become: true
|
||||
ansible.builtin.systemd:
|
||||
name: node_exporter
|
||||
daemon_reload: true
|
||||
enabled: true
|
||||
state: started
|
||||
when:
|
||||
- "'nostart' not in ansible_run_tags"
|
||||
Reference in New Issue
Block a user