--- - 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 smartctl_exporter is installed" changed_when: false ansible.builtin.command: "smartctl_exporter --version" register: smartctl_exporter_installed_version - name: "Check smartctl_exporter version" ansible.builtin.assert: that: "smartctl_exporter_installed_version.stderr is regex('{{ smartctl_exporter_version }}')" success_msg: "smartctl_exporter version {{ smartctl_exporter_version }} is installed and working" fail_msg: "smartctl_exporter version {{ smartctl_exporter_version }} is not installed or not working correctly" # kics-scan ignore-block - name: "Check if /metrics endpoint is reachable" ansible.builtin.uri: url: "http://{{ smartctl_exporter_web_listen_address }}/metrics" return_content: true status_code: 200 timeout: 5 register: smartctl_exporter_metrics_check - name: "Fail if /metrics doesn't contain smartctl_exporter_build_info line" ansible.builtin.assert: that: "'smartctl_exporter_build_info' in smartctl_exporter_metrics_check.content" fail_msg: "smartctl_exporter /metrics endpoint doesn't contain smartctl_exporter_build_info line!" success_msg: "smartctl_exporter /metrics endpoint contains smartctl_exporter_build_info line!"