38 lines
1.5 KiB
YAML
38 lines
1.5 KiB
YAML
---
|
|
- 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!"
|