diff --git a/roles/float-base/handlers/main.yml b/roles/float-base/handlers/main.yml index ac47fa5b7bcfc90dc7fd039c8befecde71b20a5e..07b630b118c8ba5957b4dc8b607d9e7d051a6891 100644 --- a/roles/float-base/handlers/main.yml +++ b/roles/float-base/handlers/main.yml @@ -50,6 +50,11 @@ name: osqueryd.service state: restarted +- name: restart smartd + systemd: + name: smartd.service + state: restarted + - name: reload firewall systemd: name: firewall.service diff --git a/roles/float-base/tasks/main.yml b/roles/float-base/tasks/main.yml index e47d2bb3a5ae986551fe4d0f8df16f661af4c9af..f090b873c9ab62e61887f6240699a9a919ad3cf0 100644 --- a/roles/float-base/tasks/main.yml +++ b/roles/float-base/tasks/main.yml @@ -94,6 +94,9 @@ - include_tasks: ipmi.yml when: ipmi_device.stat.exists == true +- include_tasks: smart.yml + when: "not (testing | default(True))" + - include_tasks: systemd.yml # Finally run some cleanups. diff --git a/roles/float-base/tasks/smart.yml b/roles/float-base/tasks/smart.yml new file mode 100644 index 0000000000000000000000000000000000000000..601348c8f21197710b4c18b809cb39b9727e5323 --- /dev/null +++ b/roles/float-base/tasks/smart.yml @@ -0,0 +1,18 @@ +--- + +- name: Install smartmontools + apt: + name: smartmontools + state: present + +- name: Configure smartd + template: + src: smartd.conf.j2 + dest: /etc/smartd.conf + notify: restart smartd + +- name: Disable smartd emails + file: + path: /etc/smartmontools/run.d/10mail + state: absent + diff --git a/roles/float-base/templates/smartd.conf.j2 b/roles/float-base/templates/smartd.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..b25ab7a000544b9564924b08d78ea71acf798981 --- /dev/null +++ b/roles/float-base/templates/smartd.conf.j2 @@ -0,0 +1,8 @@ +# Long tests once a month, on the 15th at 15.00 +# Short tests every Monday at 11.00 +DEFAULT -a -s (L/../15/./15|S/../../1/11) -m {{ alert_email | default('root') }} -M exec /usr/share/smartmontools/smartd-runner + +# Host specific configuration +{{ smartd_extra_config | default('') }} + +DEVICESCAN {{ '-d nvme' if 'nvme0n1' in ansible_devices else '' }}