This commit is contained in:
Илья Макаров 2025-06-01 13:57:18 +03:00
parent 5675083f40
commit 8382531737
8 changed files with 58 additions and 21 deletions

14
.ansible-lint Normal file
View File

@ -0,0 +1,14 @@
---
exclude_paths:
- "**/meta/preferences.yml"
- "**/molecule/**"
- "**/.tox/**"
- "**/.cache/**"
- "**/.github/**"
- "**/tests/**"
enable_list:
- name[prefix]
- fqcn[builtins]
- key-order
- metadata

23
.ymllint Normal file
View File

@ -0,0 +1,23 @@
---
extends: default
rules:
braces:
max-spaces-inside: 1
level: error
brackets:
max-spaces-inside: 1
level: error
line-length: disable
truthy:
check-keys: false
comments-indentation: disable
ignore: |
**/.tox/**
**/.cache/**
**/molecule/**
**/default/**
**/vars/**
**/group_vars/**
**/host_vars/**

View File

@ -1,8 +1,7 @@
#SPDX-License-Identifier: MIT-0 #SPDX-License-Identifier: MIT-0
--- ---
- name: Update Systemd and restart Node Exporter - name: Update Systemd and restart Node Exporter
ansible.builtin.systemd: ansible.builtin.systemd:
name: node_exporter name: node_exporter
state: restarted state: restarted
daemon-reload: yes daemon-reload: true

View File

@ -1,3 +1,4 @@
---
#SPDX-License-Identifier: MIT-0 #SPDX-License-Identifier: MIT-0
galaxy_info: galaxy_info:
role_name: node_exporter role_name: node_exporter

View File

@ -1,9 +1,10 @@
---
- name: Stop and disable node_exporter service - name: Stop and disable node_exporter service
ansible.builtin.systemd: ansible.builtin.systemd:
name: node_exporter name: node_exporter
state: stopped state: stopped
enabled: no enabled: false
ignore_errors: yes ignore_errors: true
- name: Remove systemd unit file for node_exporter - name: Remove systemd unit file for node_exporter
ansible.builtin.file: ansible.builtin.file:
@ -24,7 +25,7 @@
ansible.builtin.user: ansible.builtin.user:
name: "{{ node_exporter_user }}" name: "{{ node_exporter_user }}"
state: absent state: absent
remove: yes remove: true
- name: Remove group "{{ node_exporter_group }}" - name: Remove group "{{ node_exporter_group }}"
ansible.builtin.group: ansible.builtin.group:

View File

@ -3,14 +3,14 @@
- name: Create group - name: Create group
ansible.builtin.group: ansible.builtin.group:
name: "{{ node_exporter_user }}" name: "{{ node_exporter_user }}"
system: yes system: true
state: present state: present
- name: Create user - name: Create user
ansible.builtin.user: ansible.builtin.user:
name: "{{ node_exporter_user }}" name: "{{ node_exporter_user }}"
group: "{{ node_exporter_group }}" group: "{{ node_exporter_group }}"
system: yes system: true
shell: /sbin/nologin shell: /sbin/nologin
- name: Create installation directory - name: Create installation directory
@ -19,7 +19,7 @@
state: directory state: directory
owner: "{{ node_exporter_user }}" owner: "{{ node_exporter_user }}"
group: "{{ node_exporter_group }}" group: "{{ node_exporter_group }}"
mode: '0755' mode: "0755"
- name: Check if node_exporter archive exists locally - name: Check if node_exporter archive exists locally
ansible.builtin.stat: ansible.builtin.stat:
@ -30,7 +30,7 @@
ansible.builtin.get_url: ansible.builtin.get_url:
url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz" url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz"
dest: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz" dest: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz"
mode: '0644' mode: "0644"
when: not node_archive.stat.exists when: not node_archive.stat.exists
changed_when: false changed_when: false
@ -38,7 +38,7 @@
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz" src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz"
dest: "{{ node_exporter_install_dir }}" dest: "{{ node_exporter_install_dir }}"
remote_src: yes remote_src: true
extra_opts: [--strip-components=1] extra_opts: [--strip-components=1]
creates: "{{ node_exporter_install_dir }}/node_exporter" creates: "{{ node_exporter_install_dir }}/node_exporter"
@ -54,7 +54,7 @@
path: "{{ node_exporter_install_dir }}/node_exporter" path: "{{ node_exporter_install_dir }}/node_exporter"
owner: "{{ node_exporter_user }}" owner: "{{ node_exporter_user }}"
group: "{{ node_exporter_group }}" group: "{{ node_exporter_group }}"
mode: '0755' mode: "0755"
- name: Create symlink to node_exporter in /usr/local/bin - name: Create symlink to node_exporter in /usr/local/bin
ansible.builtin.file: ansible.builtin.file:
@ -71,5 +71,5 @@
- name: Enable and start node_exporter service - name: Enable and start node_exporter service
ansible.builtin.systemd: ansible.builtin.systemd:
name: node_exporter name: node_exporter
enabled: yes enabled: true
state: started state: started

View File

@ -1,7 +1,7 @@
#SPDX-License-Identifier: MIT-0 #SPDX-License-Identifier: MIT-0
--- ---
# tasks file for node_exporter # tasks file for node_exporter
- import_tasks: install.yml - ansible.builtin.import_tasks: install.yml
tags: install tags: install
- import_tasks: update.yml - ansible.builtin.import_tasks: update.yml
tags: update tags: update

View File

@ -1,12 +1,11 @@
--- ---
- name: Check current version - name: Check current version
ansible.builtin.command: "/usr/local/bin/node_exporter --version" ansible.builtin.command: "/usr/local/bin/node_exporter --version"
register: current_version register: current_version
changed_when: false changed_when: false
- name: Reinstall if version mismatch - name: Reinstall if version mismatch
block:
- import_tasks: delete.yml
- import_tasks: install.yml
when: current_version.stdout is not search(node_exporter_version) when: current_version.stdout is not search(node_exporter_version)
block:
- ansible.builtin.import_tasks: delete.yml
- ansible.builtin.import_tasks: install.yml