add ipmi_exporter role
This commit is contained in:
6
roles/ipmi_exporter/molecule/default/converge.yml
Normal file
6
roles/ipmi_exporter/molecule/default/converge.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
roles:
|
||||
- role: genlab.ipmi_exporter
|
||||
ipmi_exp_source_dir: "molecule/default/"
|
||||
12
roles/ipmi_exporter/molecule/default/ipmi_local.conf
Normal file
12
roles/ipmi_exporter/molecule/default/ipmi_local.conf
Normal 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
|
||||
27
roles/ipmi_exporter/molecule/default/molecule.yml
Normal file
27
roles/ipmi_exporter/molecule/default/molecule.yml
Normal 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 .
|
||||
37
roles/ipmi_exporter/molecule/default/verify.yml
Normal file
37
roles/ipmi_exporter/molecule/default/verify.yml
Normal 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!"
|
||||
Reference in New Issue
Block a user