From 40b2bdbcadcc018ca414c7c02e92c861a325c849 Mon Sep 17 00:00:00 2001 From: Nicolas MASSE Date: Mon, 29 Mar 2021 17:36:29 +0200 Subject: [PATCH] new rpm: ipmi exporter --- rpmbuild/SOURCES/ipmi_exporter.env | 3 ++ rpmbuild/SOURCES/ipmi_exporter.service | 16 +++++++++ rpmbuild/SOURCES/ipmi_exporter.yaml | 37 +++++++++++++++++++ rpmbuild/SPECS/ipmi_exporter.spec | 49 ++++++++++++++++++++++++++ 4 files changed, 105 insertions(+) create mode 100644 rpmbuild/SOURCES/ipmi_exporter.env create mode 100644 rpmbuild/SOURCES/ipmi_exporter.service create mode 100644 rpmbuild/SOURCES/ipmi_exporter.yaml create mode 100644 rpmbuild/SPECS/ipmi_exporter.spec diff --git a/rpmbuild/SOURCES/ipmi_exporter.env b/rpmbuild/SOURCES/ipmi_exporter.env new file mode 100644 index 0000000..fa0d4ce --- /dev/null +++ b/rpmbuild/SOURCES/ipmi_exporter.env @@ -0,0 +1,3 @@ +CONFIG_FILE=/opt/ipmi_exporter/etc/ipmi_exporter.yaml +LISTEN_ADDRESS=:9290 +LOG_LEVEL=info diff --git a/rpmbuild/SOURCES/ipmi_exporter.service b/rpmbuild/SOURCES/ipmi_exporter.service new file mode 100644 index 0000000..5345c1b --- /dev/null +++ b/rpmbuild/SOURCES/ipmi_exporter.service @@ -0,0 +1,16 @@ +[Unit] +Description=Remote IPMI exporter for Prometheus +Wants=network.target +After=network-online.target + +[Service] +Restart=always +Type=simple +EnvironmentFile=/opt/ipmi_exporter/etc/ipmi_exporter.env +ExecStart=/opt/ipmi_exporter/bin/ipmi_exporter --config.file ${CONFIG_FILE} --web.listen-address ${LISTEN_ADDRESS} --log.level=${LOG_LEVEL} +WorkingDirectory=/opt/ipmi_exporter/etc +User=root +Group=root + +[Install] +WantedBy=multi-user.target default.target diff --git a/rpmbuild/SOURCES/ipmi_exporter.yaml b/rpmbuild/SOURCES/ipmi_exporter.yaml new file mode 100644 index 0000000..3092d71 --- /dev/null +++ b/rpmbuild/SOURCES/ipmi_exporter.yaml @@ -0,0 +1,37 @@ +# Configuration file for ipmi_exporter + +# This is an example config for scraping remote hosts via IPMI. +# Information required to access remote IPMI interfaces can be supplied in the +# 'modules' section. A scrape can request the usage of a given config by +# setting the `module` URL parameter. + +modules: + #default: + # These settings are used if no module is specified, the + # specified module doesn't exist, or of course if + # module=default is specified. + #user: "default_user" + #pass: "example_pw" + # The below settings correspond to driver-type, privilege-level, and + # session-timeout respectively, see `man 5 freeipmi.conf` (and e.g. + # `man 8 ipmi-sensors` for a list of driver types). + #driver: "LAN_2_0" + #privilege: "user" + # The session timeout is in milliseconds. Note that a scrape can take up + # to (session-timeout * #-of-collectors) milliseconds, so set the scrape + # timeout in Prometheus accordingly. + #timeout: 10000 + # Available collectors are bmc, ipmi, chassis, dcmi, sel, and sm-lan-mode + # If _not_ specified, bmc, ipmi, chassis, and dcmi are used + #collectors: + #- bmc + #- ipmi + #- chassis + # Got any sensors you don't care about? Add them here. + #exclude_sensor_ids: + #- 2 + #- 29 + #- 32 + #- 50 + #- 52 + #- 55 diff --git a/rpmbuild/SPECS/ipmi_exporter.spec b/rpmbuild/SPECS/ipmi_exporter.spec new file mode 100644 index 0000000..7a2aedc --- /dev/null +++ b/rpmbuild/SPECS/ipmi_exporter.spec @@ -0,0 +1,49 @@ +Name: ipmi_exporter +Version: 1.3.2 +Release: itix1 +Summary: Remote IPMI exporter for Prometheus +License: MIT +Source0: https://github.com/soundcloud/%{name}/releases/download/v%{version}/%{name}-v%{version}.linux-amd64.tar.gz +Source1: %{name}.service +Source2: %{name}.yaml +Source3: %{name}.env +ExclusiveArch: x86_64 +Requires(pre): shadow-utils +BuildRequires: systemd +Requires: freeipmi + +%description + +This is an IPMI exporter for Prometheus. The exporter relies on tools from the +FreeIPMI suite for the actual IPMI implementation. + +# Since we don't recompile from source, disable the build_id checking +%global _missing_build_ids_terminate_build 0 +%global _build_id_links none +%global debug_package %{nil} + +%prep +%setup -q -n %{name}-v%{version}.linux-amd64 +cp %{S:1} %{name}.service +cp %{S:2} %{name}.yaml +cp %{S:3} %{name}.env + +%build + +%install +install -D ipmi_exporter %{buildroot}/opt/%{name}/bin/ipmi_exporter +install -D -m 0600 %{name}.yaml %{buildroot}/opt/%{name}/etc/%{name}.yaml +install -D -m 0644 %{name}.env %{buildroot}/opt/%{name}/etc/%{name}.env +install -D -m 0644 %{name}.service %{buildroot}/%{_unitdir}/%{name}.service + +%files +%defattr(0644, root, root, 0755) +%license LICENSE +%dir /opt/%{name}/bin/ +%dir /opt/%{name}/etc/ +%attr(0755, root, root) /opt/%{name}/bin/%{name} +%attr(0600, root, root) %config /opt/%{name}/etc/%{name}.yaml +%config /opt/%{name}/etc/%{name}.env +%{_unitdir}/%{name}.service + +%changelog