--- - name: "Install | Install ipmi_exporter binary" block: - name: "Install | Check ipmi_exporter availability" changed_when: false register: ipmi_exporter_ver ansible.builtin.command: cmd: "ipmi_exporter --version" - name: "Install | Assert version correctness" ansible.builtin.assert: that: "ipmi_exporter_ver.stdout is regex('{{ ipmi_exporter_version }}')" success_msg: "ipmi_exporter version {{ ipmi_exporter_version }} is installed and working" fail_msg: "ipmi_exporter version {{ ipmi_exporter_version }} is not installed or not working correctly" rescue: - name: "Install | Create directories" loop: - "{{ ipmi_exporter_config_dir }}" ansible.builtin.file: path: "{{ item }}" state: directory owner: root group: root mode: "0755" - name: "Install | Unarchive the tarball" notify: "(Re)start and enable ipmi_exporter" ansible.builtin.unarchive: src: "https://github.com/prometheus-community/ipmi_exporter/releases/\ download/v{{ ipmi_exporter_version }}/ipmi_exporter-{{ ipmi_exporter_version }}.linux-amd64.tar.gz" dest: "/tmp/" remote_src: true - name: "Install | Rename and move the binary under PATH" ansible.builtin.copy: src: "/tmp/ipmi_exporter-{{ ipmi_exporter_version }}.linux-amd64/ipmi_exporter" dest: "/usr/sbin/ipmi_exporter" mode: "0755" owner: root group: root remote_src: true - name: "Install | Create a systemd service file" ansible.builtin.template: src: ipmi_exporter.service.j2 dest: /etc/systemd/system/ipmi_exporter.service owner: root group: root mode: '0644'