132 lines
4 KiB
YAML
Executable file
132 lines
4 KiB
YAML
Executable file
---
|
|
- name: Check current node exporter version.
|
|
ansible.builtin.command: "{{ node_exporter_install_node_exporter_bin_path }} --version"
|
|
failed_when: false
|
|
changed_when: false
|
|
register: node_exporter_version_check
|
|
|
|
- name: Download and unarchive node exporter into temporary location.
|
|
ansible.builtin.unarchive:
|
|
src: "{{ node_exporter_install_node_exporter_download_url }}"
|
|
dest: /tmp
|
|
remote_src: true
|
|
mode: '0755'
|
|
when: node_exporter_version_check.stdout is not defined or node_exporter_version_check.stdout | length == 0
|
|
register: node_exporter_download_check
|
|
|
|
- name: Move node exporter binary into place.
|
|
ansible.builtin.copy:
|
|
src: "/tmp/node_exporter-{{ node_exporter_install_node_exporter_version }}.linux-amd64/node_exporter"
|
|
dest: "{{ node_exporter_install_node_exporter_bin_path }}"
|
|
mode: '0755'
|
|
remote_src: true
|
|
when: node_exporter_download_check is changed or node_exporter_version_check.stdout | length == 0
|
|
ignore_errors: "{{ ansible_check_mode }}"
|
|
|
|
- name: Create node_exporter group (optional fixed GID)
|
|
ansible.builtin.group:
|
|
name: node_exporter
|
|
gid: "{{ node_exporter_install_node_exporter_gid | default(omit) }}"
|
|
state: present
|
|
when: "node_exporter_install_node_exporter_gid is defined"
|
|
|
|
- name: Create node_exporter user (optional fixed UID)
|
|
ansible.builtin.user:
|
|
name: node_exporter
|
|
shell: /sbin/nologin
|
|
create_home: false
|
|
uid: "{{ node_exporter_install_node_exporter_uid | default(omit) }}"
|
|
group: "{{ (node_exporter_install_node_exporter_gid is defined) | ternary('node_exporter', omit) }}"
|
|
state: present
|
|
|
|
- name: Copy the node exporter systemd unit file.
|
|
ansible.builtin.template:
|
|
src: node_exporter.service.j2
|
|
dest: /etc/systemd/system/node_exporter.service
|
|
mode: '0644'
|
|
register: node_exporter_service
|
|
|
|
- name: Create direcory for textfile collector
|
|
ansible.builtin.file:
|
|
path: /var/lib/node_exporter/textfile_collector
|
|
state: directory
|
|
mode: '0755'
|
|
owner: node_exporter
|
|
group: node_exporter
|
|
recurse: true
|
|
|
|
- name: Copy script for docker state check
|
|
ansible.builtin.copy:
|
|
src: files/docker-ps-metrics.sh
|
|
dest: /usr/local/bin/docker-ps-metrics.sh
|
|
owner: root
|
|
group: root
|
|
mode: '0744'
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Create cron job for docker state check
|
|
ansible.builtin.cron:
|
|
name: "Collect Docker state check"
|
|
minute: "*/1"
|
|
job: "/usr/local/bin/docker-ps-metrics.sh"
|
|
user: root
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Copy script shared memory check
|
|
ansible.builtin.copy:
|
|
src: files/collect-shm-metrics.sh
|
|
dest: /usr/local/bin/collect-shm-metrics.sh
|
|
owner: root
|
|
group: root
|
|
mode: '0744'
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Create cron job for shared memory check
|
|
ansible.builtin.cron:
|
|
name: "Collect Docker shared memory check"
|
|
minute: "*/1"
|
|
job: "/usr/local/bin/collect-shm-metrics.sh"
|
|
user: root
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Copy script for docker CPU check
|
|
ansible.builtin.copy:
|
|
src: files/docker-cpu-metrics.sh
|
|
dest: /usr/local/bin/docker-cpu-metrics.sh
|
|
owner: root
|
|
group: root
|
|
mode: '0744'
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Add first cron job
|
|
ansible.builtin.cron:
|
|
name: "Docker CPU Metrics (every minute)"
|
|
minute: "*"
|
|
hour: "*"
|
|
day: "*"
|
|
month: "*"
|
|
weekday: "*"
|
|
job: "/usr/local/bin/docker-cpu-metrics.sh"
|
|
user: "root"
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Add second cron jobcron
|
|
ansible.builtin.cron:
|
|
name: "Docker CPU Metrics (with 30s delay)"
|
|
minute: "*"
|
|
hour: "*"
|
|
day: "*"
|
|
month: "*"
|
|
weekday: "*"
|
|
job: "( sleep 30 && /usr/local/bin/docker-cpu-metrics.sh )"
|
|
user: "root"
|
|
when: inventory_hostname is match("^PTAF")
|
|
|
|
- name: Systemd restarted, enable node_exporter and restart node_exporter
|
|
ansible.builtin.systemd:
|
|
name: node_exporter
|
|
state: restarted
|
|
enabled: true
|
|
daemon_reload: true
|
|
when: node_exporter_service is changed
|
|
...
|