ansible-playbooks

another attempt to have everything organized ...
git clone https://git.e1e0.net/ansible-playbooks.git
Log | Files | Refs | README | LICENSE

commit 9d5b15e5647402d3e905e47e9766c64c5898a665
parent f40557c1893f6f516786989d62da9db0a3d543d2
Author: Paco Esteban <paco@e1e0.net>
Date:   Thu, 23 Apr 2020 18:46:00 +0200

add new nas role.

For now just a simple disk health script that will run every month.

Diffstat:
Mhosts | 3+++
Alocalserver.yml | 7+++++++
Aroles/nas/defaults/main.yml | 3+++
Aroles/nas/tasks/main.yml | 23+++++++++++++++++++++++
Aroles/nas/templates/disk_info.sh.j2 | 22++++++++++++++++++++++
5 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/hosts b/hosts @@ -18,3 +18,6 @@ pi2.h.e1e0.net [videochat] vchat.e1e0.net + +[localServer] +galadriel.h.e1e0.net diff --git a/localserver.yml b/localserver.yml @@ -0,0 +1,7 @@ +--- +- name: Prepare local server stuff + hosts: localServer + remote_user: paco + become: yes + roles: + - nas diff --git a/roles/nas/defaults/main.yml b/roles/nas/defaults/main.yml @@ -0,0 +1,3 @@ +--- +nas_report_dest_address: "paco@e1e0.net" +nas_report_user: "paco" diff --git a/roles/nas/tasks/main.yml b/roles/nas/tasks/main.yml @@ -0,0 +1,23 @@ +--- +- name: Install smartmontools + package: + name: smartmontools + state: present + +- name: upload disk report script + template: + src: templates/disk_info.sh.j2 + dest: /usr/local/bin/disk_info.sh + owner: root + group: wheel + mode: '0750' + +- name: disk report cronjob + cron: + name: "disk report" + minute: "42" + hour: "16" + weekday: "1" + user: "{{ nas_report_user }}" + job: "/usr/local/bin/disk_info.sh" + state: present diff --git a/roles/nas/templates/disk_info.sh.j2 b/roles/nas/templates/disk_info.sh.j2 @@ -0,0 +1,22 @@ +#!/bin/sh + +set -eu + +infoDir=$(mktemp -d) +report="$infoDir/disk-report.txt" + +echo "Disk report for $(date)" > "$report" +printf "\n\n" >> "$report" + +for i in {% for d in ansible_devices.keys() | list %}{{ d }}{%- if not loop.last %} {% endif %}{% endfor %}; do + printf "DISK %s:\n" $i >> "$report" + sudo smartctl -H -A "/dev/$i" >> "$report" +done + +printf "\n\nZFS report:\n" >> "$report" +zpool status -x >> "$report" + +mail \ + -s "{{ ansible_nodename }} disk report." \ + {{ nas_report_dest_address }} \ + < "$report"