add ipmi_exporter role

This commit is contained in:
Sergey Malyuk
2025-12-12 16:26:04 +03:00
parent b49a3cc1f0
commit 476457888e
21 changed files with 352 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
---
- name: Converge
hosts: all
roles:
- role: genlab.ipmi_exporter
ipmi_exp_source_dir: "molecule/default/"

View File

@@ -0,0 +1,12 @@
modules:
default:
# Available collectors are bmc, bmc-watchdog, ipmi, chassis, dcmi, sel, sel-events and sm-lan-mode
collectors:
- bmc
- bmc-watchdog
- ipmi
- dcmi
- chassis
- sel
- sel-events
- sm-lan-mode

View File

@@ -0,0 +1,27 @@
---
dependency:
name: galaxy
driver:
name: docker
platforms:
- name: ubuntu
image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2404}-ansible:latest
pre_build_image: true
command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw
cgroupns_mode: host
privileged: true
provisioner:
name: ansible
verifier:
name: ansible
lint: |
set -e
yamllint .
ansible-lint .

View File

@@ -0,0 +1,37 @@
---
- name: Verify
hosts: all
gather_facts: false
any_errors_fatal: true
tasks:
- name: "Include default vars"
ansible.builtin.include_vars:
dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults/"
extensions: [ 'yml' ]
- name: "Check if ipmi_exporter is installed"
changed_when: false
ansible.builtin.command: "ipmi_exporter --version"
register: ipmi_exporter_installed_version
- name: "Check ipmi_exporter version"
ansible.builtin.assert:
that: "ipmi_exporter_installed_version.stdout is regex('{{ ipmi_exp_version }}')"
success_msg: "ipmi_exporter version {{ ipmi_exp_version }} is installed and working"
fail_msg: "ipmi_exporter version {{ ipmi_exp_version }} is not installed or not working correctly"
# kics-scan ignore-block
- name: Check if /metrics endpoint is reachable
ansible.builtin.uri:
url: "http://{{ ipmi_exp_web_listen_address }}/metrics"
return_content: true
status_code: 200
timeout: 60
register: metrics_check
- name: "Fail if /metrics doesn't contain ipmi_exporter_build_info line"
ansible.builtin.assert:
that: "'ipmi_exporter_build_info' in metrics_check.content"
fail_msg: "ipmi_exporter /metrics endpoint doesn't contain ipmi_exporter_build_info line!"
success_msg: "ipmi_exporter /metrics endpoint contains ipmi_exporter_build_info line!"