feat(smartctl): add smartctl exporter

This commit is contained in:
il
2026-06-30 15:57:29 +09:00
parent 88e85fff56
commit 3c8469e604
19 changed files with 713 additions and 114 deletions
+2 -10
View File
@@ -1,18 +1,10 @@
---
- name: Check btrfs installation
ansible.builtin.shell: |
command -v btrfs
become: true # btrfs is located in /usr/sbin, which means root permission is needed.
changed_when: false
failed_when: false
register: "is_btrfs_installed"
- name: Install btrfs
ansible.builtin.apt:
name: "btrfs-progs"
name:
- "btrfs-progs"
state: "present"
become: true
when: is_btrfs_installed.rc != 0
- name: Mount data disk
block:
@@ -0,0 +1,47 @@
---
- name: Install smartmontools
ansible.builtin.apt:
name:
- "smartmontools"
- "jq"
state: "present"
become: true
- name: Create SMART metric result directory
ansible.builtin.file:
path: "/etc/smartctl-exporter"
state: "directory"
owner: "root"
group: "root"
mode: "0755"
become: true
- name: Deploy smart_metric_generator script
ansible.builtin.copy:
src: "{{ hostvars['console']['node']['config_path'] }}/services/systemd/vmm/smart_metric/smart_metric_generator.sh"
dest: "/usr/local/sbin"
owner: "root"
group: "root"
mode: "0711"
become: true
- name: Deploy smart_metric_generator service files
ansible.builtin.template:
src: "{{ hostvars['console']['node']['config_path'] }}/services/systemd/vmm/smart_metric/{{ item }}.j2"
dest: "/etc/systemd/system/{{ item }}"
owner: "root"
group: "root"
mode: "0600"
validate: "/usr/bin/systemd-analyze verify %s"
loop:
- "smart_metric_generator.service"
- "smart_metric_generator.timer"
become: true
- name: Register smart_metric_generator timer
ansible.builtin.systemd:
name: "smart_metric_generator.timer"
state: "started"
enabled: true
daemon_reload: true
become: true