Remove Node.js cache files containing npm vulnerability data for vitest and vite packages
Tests / Backend Tests (Python) (3.10) (push) Has been cancelled
Tests / Backend Tests (Python) (3.11) (push) Has been cancelled
Tests / Backend Tests (Python) (3.12) (push) Has been cancelled
Tests / Frontend Tests (JS) (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / All Tests Passed (push) Has been cancelled

This commit is contained in:
2025-12-15 20:36:06 -05:00
parent 27eed55c9b
commit 68a9b0f390
123 changed files with 13216 additions and 157 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `18b20e3f2b854ff09fcc0a12bcc2883a` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:00:00.001546+00:00 |
| **Fin** | 2025-12-16T00:00:26.808331+00:00 |
| **Durée** | 26.8s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003846", "end": "2025-12-15 19:00:14.927037", "msg": "", "rc": 0, "start": "2025-12-15 19:00:14.923191", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 20 days, 8:10, 1 user, load average: 0.12, 0.12, 0.09", "stdout_lines": [" 19:00:14 up 20 days, 8:10, 1 user, load average: 0.12, 0.12, 0.09"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002787", "end": "2025-12-15 19:00:14.949549", "msg": "", "rc": 0, "start": "2025-12-15 19:00:14.946762", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 1 day, 8:32, 1 user, load average: 0.46, 0.48, 0.60", "stdout_lines": [" 19:00:14 up 1 day, 8:32, 1 user, load average: 0.46, 0.48, 0.60"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004200", "end": "2025-12-15 19:00:14.958825", "msg": "", "rc": 0, "start": "2025-12-15 19:00:14.954625", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 20 days, 7:24, 1 user, load average: 0.81, 0.86, 0.80", "stdout_lines": [" 19:00:14 up 20 days, 7:24, 1 user, load average: 0.81, 0.86, 0.80"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008631", "end": "2025-12-15 19:00:15.670899", "msg": "", "rc": 0, "start": "2025-12-15 19:00:15.662268", "stderr": "", "stderr_lines": [], "stdout": " 19:00:15 up 192 days, 10:33, 1 user, load average: 0.16, 0.13, 0.13", "stdout_lines": [" 19:00:15 up 192 days, 10:33, 1 user, load average: 0.16, 0.13, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009372", "end": "2025-12-15 19:00:15.711691", "msg": "", "rc": 0, "start": "2025-12-15 19:00:15.702319", "stderr": "", "stderr_lines": [], "stdout": " 19:00:15 up 192 days, 10:33, 1 user, load average: 0.31, 0.26, 0.27", "stdout_lines": [" 19:00:15 up 192 days, 10:33, 1 user, load average: 0.31, 0.26, 0.27"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004206", "end": "2025-12-15 19:00:15.915096", "msg": "", "rc": 0, "start": "2025-12-15 19:00:14.910890", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 20 days, 5:51, 1 user, load average: 0.13, 0.11, 0.12", "stdout_lines": [" 19:00:14 up 20 days, 5:51, 1 user, load average: 0.13, 0.11, 0.12"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004005", "end": "2025-12-15 19:00:15.925632", "msg": "", "rc": 0, "start": "2025-12-15 19:00:14.921627", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 20 days, 6:11, 1 user, load average: 0.81, 0.77, 0.70", "stdout_lines": [" 19:00:14 up 20 days, 6:11, 1 user, load average: 0.81, 0.77, 0.70"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003027", "end": "2025-12-15 18:59:51.589223", "msg": "", "rc": 0, "start": "2025-12-15 18:59:51.586196", "stderr": "", "stderr_lines": [], "stdout": " 18:59:51 up 9 days, 6:49, 0 user, load average: 0.04, 0.09, 0.12", "stdout_lines": [" 18:59:51 up 9 days, 6:49, 0 user, load average: 0.04, 0.09, 0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003548", "end": "2025-12-15 18:59:45.820393", "msg": "", "rc": 0, "start": "2025-12-15 18:59:45.816845", "stderr": "", "stderr_lines": [], "stdout": " 18:59:45 up 16 days, 3:01, 0 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 18:59:45 up 16 days, 3:01, 0 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004536", "end": "2025-12-15 19:00:16.480501", "msg": "", "rc": 0, "start": "2025-12-15 19:00:16.475965", "stderr": "", "stderr_lines": [], "stdout": " 19:00:16 up 1 day, 8:31, 1 user, load average: 0.11, 0.11, 0.04", "stdout_lines": [" 19:00:16 up 1 day, 8:31, 1 user, load average: 0.11, 0.11, 0.04"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019459", "end": "2025-12-15 19:00:16.369456", "msg": "", "rc": 0, "start": "2025-12-15 19:00:16.349997", "stderr": "", "stderr_lines": [], "stdout": " 19:00:16 up 13 days, 8:26, 1 user, load average: 0.34, 0.17, 0.13", "stdout_lines": [" 19:00:16 up 13 days, 8:26, 1 user, load average: 0.34, 0.17, 0.13"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003777", "end": "2025-12-15 18:59:48.650310", "msg": "", "rc": 0, "start": "2025-12-15 18:59:48.646533", "stderr": "", "stderr_lines": [], "stdout": " 18:59:48 up 18 days, 21:54, 0 user, load average: 0.41, 0.38, 0.40", "stdout_lines": [" 18:59:48 up 18 days, 21:54, 0 user, load average: 0.41, 0.38, 0.40"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002744", "end": "2025-12-15 18:59:54.717225", "msg": "", "rc": 0, "start": "2025-12-15 18:59:54.714481", "stderr": "", "stderr_lines": [], "stdout": " 18:59:54 up 15 days, 8:15, 0 user, load average: 0.07, 0.15, 0.13", "stdout_lines": [" 18:59:54 up 15 days, 8:15, 0 user, load average: 0.07, 0.15, 0.13"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004535", "end": "2025-12-15 16:00:16.804789", "msg": "", "rc": 0, "start": "2025-12-15 16:00:16.800254", "stderr": "", "stderr_lines": [], "stdout": " 4:00PM up 20 days, 5:50, 1 user, load averages: 0.38, 0.26, 0.24", "stdout_lines": [" 4:00PM up 20 days, 5:50, 1 user, load averages: 0.38, 0.26, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003708", "end": "2025-12-15 19:00:16.957215", "msg": "", "rc": 0, "start": "2025-12-15 19:00:16.953507", "stderr": "", "stderr_lines": [], "stdout": " 19:00:16 up 1 day, 8:31, 1 user, load average: 0.00, 0.01, 0.04", "stdout_lines": [" 19:00:16 up 1 day, 8:31, 1 user, load average: 0.00, 0.01, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.017263", "end": "2025-12-15 19:00:17.151340", "msg": "", "rc": 0, "start": "2025-12-15 19:00:17.134077", "stderr": "", "stderr_lines": [], "stdout": " 19:00:17 up 5:35, 1 user, load average: 1.45, 1.26, 1.20", "stdout_lines": [" 19:00:17 up 5:35, 1 user, load average: 1.45, 1.26, 1.20"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004282", "end": "2025-12-15 19:00:17.433650", "msg": "", "rc": 0, "start": "2025-12-15 19:00:17.429368", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004121", "end": "2025-12-15 19:00:17.445214", "msg": "", "rc": 0, "start": "2025-12-15 19:00:17.441093", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004757", "end": "2025-12-15 19:00:17.477825", "msg": "", "rc": 0, "start": "2025-12-15 19:00:17.473068", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005109", "end": "2025-12-15 19:00:17.506427", "msg": "", "rc": 0, "start": "2025-12-15 19:00:17.501318", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005820", "end": "2025-12-15 19:00:17.501727", "msg": "", "rc": 0, "start": "2025-12-15 19:00:17.495907", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004790", "end": "2025-12-15 18:59:53.434634", "msg": "", "rc": 0, "start": "2025-12-15 18:59:53.429844", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006566", "end": "2025-12-15 18:59:47.572244", "msg": "", "rc": 0, "start": "2025-12-15 18:59:47.565678", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011736", "end": "2025-12-15 19:00:18.289340", "msg": "", "rc": 0, "start": "2025-12-15 19:00:18.277604", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010528", "end": "2025-12-15 19:00:18.285633", "msg": "", "rc": 0, "start": "2025-12-15 19:00:18.275105", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005819", "end": "2025-12-15 19:00:18.540395", "msg": "", "rc": 0, "start": "2025-12-15 19:00:18.534576", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005521", "end": "2025-12-15 18:59:50.797982", "msg": "", "rc": 0, "start": "2025-12-15 18:59:50.792461", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005494", "end": "2025-12-15 16:00:18.774699", "msg": "", "rc": 0, "start": "2025-12-15 16:00:18.769205", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005120", "end": "2025-12-15 18:59:56.810526", "msg": "", "rc": 0, "start": "2025-12-15 18:59:56.805406", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025054", "end": "2025-12-15 19:00:18.868208", "msg": "", "rc": 0, "start": "2025-12-15 19:00:18.843154", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005389", "end": "2025-12-15 19:00:19.040965", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.035576", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.008530", "end": "2025-12-15 19:00:19.272824", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.264294", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004008", "end": "2025-12-15 19:00:19.564983", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.560975", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004483", "end": "2025-12-15 19:00:19.563315", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.558832", "stderr": "", "stderr_lines": [], "stdout": "80.3%", "stdout_lines": ["80.3%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005023", "end": "2025-12-15 19:00:19.579792", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.574769", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.2%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005724", "end": "2025-12-15 19:00:19.605476", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.599752", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005161", "end": "2025-12-15 19:00:19.632069", "msg": "", "rc": 0, "start": "2025-12-15 19:00:19.626908", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003865", "end": "2025-12-15 18:59:55.463185", "msg": "", "rc": 0, "start": "2025-12-15 18:59:55.459320", "stderr": "", "stderr_lines": [], "stdout": "70.8%", "stdout_lines": ["70.8%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004488", "end": "2025-12-15 18:59:49.632709", "msg": "", "rc": 0, "start": "2025-12-15 18:59:49.628221", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010995", "end": "2025-12-15 19:00:20.249924", "msg": "", "rc": 0, "start": "2025-12-15 19:00:20.238929", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011907", "end": "2025-12-15 19:00:20.299166", "msg": "", "rc": 0, "start": "2025-12-15 19:00:20.287259", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005881", "end": "2025-12-15 19:00:20.550155", "msg": "", "rc": 0, "start": "2025-12-15 19:00:20.544274", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004173", "end": "2025-12-15 18:59:52.814637", "msg": "", "rc": 0, "start": "2025-12-15 18:59:52.810464", "stderr": "", "stderr_lines": [], "stdout": "25.6%", "stdout_lines": ["25.6%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003984", "end": "2025-12-15 18:59:58.820168", "msg": "", "rc": 0, "start": "2025-12-15 18:59:58.816184", "stderr": "", "stderr_lines": [], "stdout": "55.4%", "stdout_lines": ["55.4%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005301", "end": "2025-12-15 16:00:20.854211", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:00:20.848910", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005476", "end": "2025-12-15 19:00:21.052770", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.047294", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025841", "end": "2025-12-15 19:00:20.967638", "msg": "", "rc": 0, "start": "2025-12-15 19:00:20.941797", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.019033", "end": "2025-12-15 19:00:21.279875", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.260842", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005181", "end": "2025-12-15 19:00:21.599102", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.593921", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004896", "end": "2025-12-15 19:00:21.638589", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.633693", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003032", "end": "2025-12-15 19:00:21.681949", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.678917", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005777", "end": "2025-12-15 19:00:21.677603", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.671826", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006922", "end": "2025-12-15 19:00:21.692134", "msg": "", "rc": 0, "start": "2025-12-15 19:00:21.685212", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002581", "end": "2025-12-15 18:59:57.602603", "msg": "", "rc": 0, "start": "2025-12-15 18:59:57.600022", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003058", "end": "2025-12-15 18:59:51.750933", "msg": "", "rc": 0, "start": "2025-12-15 18:59:51.747875", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013234", "end": "2025-12-15 19:00:22.374290", "msg": "", "rc": 0, "start": "2025-12-15 19:00:22.361056", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011848", "end": "2025-12-15 19:00:22.391353", "msg": "", "rc": 0, "start": "2025-12-15 19:00:22.379505", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.1°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003201", "end": "2025-12-15 19:00:22.660230", "msg": "", "rc": 0, "start": "2025-12-15 19:00:22.657029", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003009", "end": "2025-12-15 18:59:54.961322", "msg": "", "rc": 0, "start": "2025-12-15 18:59:54.958313", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004129", "end": "2025-12-15 16:00:22.959200", "msg": "", "rc": 0, "start": "2025-12-15 16:00:22.955071", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002395", "end": "2025-12-15 19:00:00.992210", "msg": "", "rc": 0, "start": "2025-12-15 19:00:00.989815", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002923", "end": "2025-12-15 19:00:23.142767", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.139844", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028616", "end": "2025-12-15 19:00:23.027752", "msg": "", "rc": 0, "start": "2025-12-15 19:00:22.999136", "stderr": "", "stderr_lines": [], "stdout": "35.7°C", "stdout_lines": ["35.7°C"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.017688", "end": "2025-12-15 19:00:23.431780", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.414092", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004269", "end": "2025-12-15 19:00:23.745740", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.741471", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004216", "end": "2025-12-15 19:00:23.774932", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.770716", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005603", "end": "2025-12-15 19:00:23.796380", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.790777", "stderr": "", "stderr_lines": [], "stdout": "0.76", "stdout_lines": ["0.76"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004873", "end": "2025-12-15 19:00:23.799509", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.794636", "stderr": "", "stderr_lines": [], "stdout": "0.74", "stdout_lines": ["0.74"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005006", "end": "2025-12-15 19:00:23.823861", "msg": "", "rc": 0, "start": "2025-12-15 19:00:23.818855", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004122", "end": "2025-12-15 18:59:59.734247", "msg": "", "rc": 0, "start": "2025-12-15 18:59:59.730125", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005401", "end": "2025-12-15 18:59:53.905223", "msg": "", "rc": 0, "start": "2025-12-15 18:59:53.899822", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010696", "end": "2025-12-15 19:00:24.637252", "msg": "", "rc": 0, "start": "2025-12-15 19:00:24.626556", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011324", "end": "2025-12-15 19:00:24.636507", "msg": "", "rc": 0, "start": "2025-12-15 19:00:24.625183", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005707", "end": "2025-12-15 19:00:24.857973", "msg": "", "rc": 0, "start": "2025-12-15 19:00:24.852266", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004717", "end": "2025-12-15 18:59:57.162752", "msg": "", "rc": 0, "start": "2025-12-15 18:59:57.158035", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006024", "end": "2025-12-15 16:00:25.141797", "msg": "", "rc": 0, "start": "2025-12-15 16:00:25.135773", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004641", "end": "2025-12-15 19:00:03.189834", "msg": "", "rc": 0, "start": "2025-12-15 19:00:03.185193", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005272", "end": "2025-12-15 19:00:25.299429", "msg": "", "rc": 0, "start": "2025-12-15 19:00:25.294157", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.023976", "end": "2025-12-15 19:00:25.215750", "msg": "", "rc": 0, "start": "2025-12-15 19:00:25.191774", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007176", "end": "2025-12-15 19:00:25.700292", "msg": "", "rc": 0, "start": "2025-12-15 19:00:25.693116", "stderr": "", "stderr_lines": [], "stdout": "1.61", "stdout_lines": ["1.61"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:14 up 1 day, 8:32, 1 user, load average: 0.46, 0.48, 0.60\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.47\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:14 up 20 days, 5:51, 1 user, load average: 0.13, 0.11, 0.12\nDisk Usage: 23%\nMemory Usage: 80.3%\nCPU Load: 0.19\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:14 up 20 days, 6:11, 1 user, load average: 0.81, 0.77, 0.70\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.74\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:14 up 20 days, 7:24, 1 user, load average: 0.81, 0.86, 0.80\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.76\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:14 up 20 days, 8:10, 1 user, load average: 0.12, 0.12, 0.09\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:16 up 13 days, 8:26, 1 user, load average: 0.34, 0.17, 0.13\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.39\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:15 up 192 days, 10:33, 1 user, load average: 0.31, 0.26, 0.27\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.37\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:15 up 192 days, 10:33, 1 user, load average: 0.16, 0.13, 0.13\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.13\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:51 up 9 days, 6:49, 0 user, load average: 0.04, 0.09, 0.12\nDisk Usage: 48%\nMemory Usage: 70.8%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:45 up 16 days, 3:01, 0 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:16 up 1 day, 8:31, 1 user, load average: 0.11, 0.11, 0.04\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:48 up 18 days, 21:54, 0 user, load average: 0.41, 0.38, 0.40\nDisk Usage: 28%\nMemory Usage: 25.6%\nCPU Load: 0.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:54 up 15 days, 8:15, 0 user, load average: 0.07, 0.15, 0.13\nDisk Usage: 75%\nMemory Usage: 55.4%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:00PM up 20 days, 5:50, 1 user, load averages: 0.38, 0.26, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:16 up 1 day, 8:31, 1 user, load average: 0.00, 0.01, 0.04\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:17 up 5:35, 1 user, load average: 1.45, 1.26, 1.20\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.61\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:00:26.864747+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a0573bc2482d4026894a763815a7b656` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:05:00.006446+00:00 |
| **Fin** | 2025-12-16T00:05:24.604586+00:00 |
| **Durée** | 24.6s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003510", "end": "2025-12-15 19:05:12.508663", "msg": "", "rc": 0, "start": "2025-12-15 19:05:12.505153", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 20 days, 6:16, 1 user, load average: 0.53, 0.67, 0.67", "stdout_lines": [" 19:05:12 up 20 days, 6:16, 1 user, load average: 0.53, 0.67, 0.67"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003618", "end": "2025-12-15 19:05:12.500719", "msg": "", "rc": 0, "start": "2025-12-15 19:05:12.497101", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 20 days, 8:15, 1 user, load average: 0.06, 0.08, 0.08", "stdout_lines": [" 19:05:12 up 20 days, 8:15, 1 user, load average: 0.06, 0.08, 0.08"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002810", "end": "2025-12-15 19:05:12.532729", "msg": "", "rc": 0, "start": "2025-12-15 19:05:12.529919", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 1 day, 8:37, 1 user, load average: 0.29, 0.41, 0.54", "stdout_lines": [" 19:05:12 up 1 day, 8:37, 1 user, load average: 0.29, 0.41, 0.54"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008523", "end": "2025-12-15 19:05:13.248058", "msg": "", "rc": 0, "start": "2025-12-15 19:05:13.239535", "stderr": "", "stderr_lines": [], "stdout": " 19:05:13 up 192 days, 10:38, 1 user, load average: 0.14, 0.12, 0.11", "stdout_lines": [" 19:05:13 up 192 days, 10:38, 1 user, load average: 0.14, 0.12, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009595", "end": "2025-12-15 19:05:13.284779", "msg": "", "rc": 0, "start": "2025-12-15 19:05:13.275184", "stderr": "", "stderr_lines": [], "stdout": " 19:05:13 up 192 days, 10:38, 1 user, load average: 0.12, 0.17, 0.23", "stdout_lines": [" 19:05:13 up 192 days, 10:38, 1 user, load average: 0.12, 0.17, 0.23"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004194", "end": "2025-12-15 19:05:13.494342", "msg": "", "rc": 0, "start": "2025-12-15 19:05:12.490148", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 20 days, 5:56, 1 user, load average: 0.25, 0.15, 0.12", "stdout_lines": [" 19:05:12 up 20 days, 5:56, 1 user, load average: 0.25, 0.15, 0.12"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005039", "end": "2025-12-15 19:05:13.525863", "msg": "", "rc": 0, "start": "2025-12-15 19:05:12.520824", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 20 days, 7:29, 1 user, load average: 0.63, 0.86, 0.82", "stdout_lines": [" 19:05:12 up 20 days, 7:29, 1 user, load average: 0.63, 0.86, 0.82"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002914", "end": "2025-12-15 19:04:49.250464", "msg": "", "rc": 0, "start": "2025-12-15 19:04:49.247550", "stderr": "", "stderr_lines": [], "stdout": " 19:04:49 up 9 days, 6:54, 0 user, load average: 0.10, 0.12, 0.11", "stdout_lines": [" 19:04:49 up 9 days, 6:54, 0 user, load average: 0.10, 0.12, 0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009053", "end": "2025-12-15 19:04:43.439521", "msg": "", "rc": 0, "start": "2025-12-15 19:04:43.430468", "stderr": "", "stderr_lines": [], "stdout": " 19:04:43 up 16 days, 3:06, 0 user, load average: 0.08, 0.03, 0.01", "stdout_lines": [" 19:04:43 up 16 days, 3:06, 0 user, load average: 0.08, 0.03, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004597", "end": "2025-12-15 19:05:14.025927", "msg": "", "rc": 0, "start": "2025-12-15 19:05:14.021330", "stderr": "", "stderr_lines": [], "stdout": " 19:05:14 up 1 day, 8:36, 1 user, load average: 0.01, 0.04, 0.01", "stdout_lines": [" 19:05:14 up 1 day, 8:36, 1 user, load average: 0.01, 0.04, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019701", "end": "2025-12-15 19:05:13.980686", "msg": "", "rc": 0, "start": "2025-12-15 19:05:13.960985", "stderr": "", "stderr_lines": [], "stdout": " 19:05:13 up 13 days, 8:31, 1 user, load average: 0.23, 0.15, 0.12", "stdout_lines": [" 19:05:13 up 13 days, 8:31, 1 user, load average: 0.23, 0.15, 0.12"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004377", "end": "2025-12-15 19:04:46.237913", "msg": "", "rc": 0, "start": "2025-12-15 19:04:46.233536", "stderr": "", "stderr_lines": [], "stdout": " 19:04:46 up 18 days, 21:59, 0 user, load average: 0.68, 0.60, 0.50", "stdout_lines": [" 19:04:46 up 18 days, 21:59, 0 user, load average: 0.68, 0.60, 0.50"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002802", "end": "2025-12-15 19:04:52.421697", "msg": "", "rc": 0, "start": "2025-12-15 19:04:52.418895", "stderr": "", "stderr_lines": [], "stdout": " 19:04:52 up 15 days, 8:20, 0 user, load average: 0.11, 0.20, 0.17", "stdout_lines": [" 19:04:52 up 15 days, 8:20, 0 user, load average: 0.11, 0.20, 0.17"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004261", "end": "2025-12-15 16:05:14.513278", "msg": "", "rc": 0, "start": "2025-12-15 16:05:14.509017", "stderr": "", "stderr_lines": [], "stdout": " 4:05PM up 20 days, 5:55, 1 user, load averages: 0.25, 0.28, 0.25", "stdout_lines": [" 4:05PM up 20 days, 5:55, 1 user, load averages: 0.25, 0.28, 0.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003980", "end": "2025-12-15 19:05:14.566811", "msg": "", "rc": 0, "start": "2025-12-15 19:05:14.562831", "stderr": "", "stderr_lines": [], "stdout": " 19:05:14 up 1 day, 8:36, 1 user, load average: 0.37, 0.10, 0.05", "stdout_lines": [" 19:05:14 up 1 day, 8:36, 1 user, load average: 0.37, 0.10, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004519", "end": "2025-12-15 19:05:14.818265", "msg": "", "rc": 0, "start": "2025-12-15 19:05:14.813746", "stderr": "", "stderr_lines": [], "stdout": " 19:05:14 up 5:40, 1 user, load average: 1.30, 1.21, 1.19", "stdout_lines": [" 19:05:14 up 5:40, 1 user, load average: 1.30, 1.21, 1.19"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004110", "end": "2025-12-15 19:05:15.046434", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.042324", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004337", "end": "2025-12-15 19:05:15.058262", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.053925", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004935", "end": "2025-12-15 19:05:15.094934", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.089999", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.003962", "end": "2025-12-15 19:05:15.119753", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.115791", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005818", "end": "2025-12-15 19:05:15.149553", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.143735", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004769", "end": "2025-12-15 19:04:51.059396", "msg": "", "rc": 0, "start": "2025-12-15 19:04:51.054627", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005860", "end": "2025-12-15 19:04:45.234729", "msg": "", "rc": 0, "start": "2025-12-15 19:04:45.228869", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010929", "end": "2025-12-15 19:05:15.911839", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.900910", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011673", "end": "2025-12-15 19:05:15.933916", "msg": "", "rc": 0, "start": "2025-12-15 19:05:15.922243", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005942", "end": "2025-12-15 19:05:16.192011", "msg": "", "rc": 0, "start": "2025-12-15 19:05:16.186069", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005911", "end": "2025-12-15 19:04:48.520256", "msg": "", "rc": 0, "start": "2025-12-15 19:04:48.514345", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005661", "end": "2025-12-15 16:05:16.491370", "msg": "", "rc": 0, "start": "2025-12-15 16:05:16.485709", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005558", "end": "2025-12-15 19:04:54.534312", "msg": "", "rc": 0, "start": "2025-12-15 19:04:54.528754", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025452", "end": "2025-12-15 19:05:16.500558", "msg": "", "rc": 0, "start": "2025-12-15 19:05:16.475106", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005503", "end": "2025-12-15 19:05:16.680526", "msg": "", "rc": 0, "start": "2025-12-15 19:05:16.675023", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020086", "end": "2025-12-15 19:05:17.046005", "msg": "", "rc": 0, "start": "2025-12-15 19:05:17.025919", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004356", "end": "2025-12-15 19:05:17.318500", "msg": "", "rc": 0, "start": "2025-12-15 19:05:17.314144", "stderr": "", "stderr_lines": [], "stdout": "80.2%", "stdout_lines": ["80.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004166", "end": "2025-12-15 19:05:17.329345", "msg": "", "rc": 0, "start": "2025-12-15 19:05:17.325179", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004904", "end": "2025-12-15 19:05:17.351621", "msg": "", "rc": 0, "start": "2025-12-15 19:05:17.346717", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.2%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005565", "end": "2025-12-15 19:05:17.391465", "msg": "", "rc": 0, "start": "2025-12-15 19:05:17.385900", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004983", "end": "2025-12-15 19:05:17.391234", "msg": "", "rc": 0, "start": "2025-12-15 19:05:17.386251", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004130", "end": "2025-12-15 19:04:53.324936", "msg": "", "rc": 0, "start": "2025-12-15 19:04:53.320806", "stderr": "", "stderr_lines": [], "stdout": "70.8%", "stdout_lines": ["70.8%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004343", "end": "2025-12-15 19:04:47.469957", "msg": "", "rc": 0, "start": "2025-12-15 19:04:47.465614", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010994", "end": "2025-12-15 19:05:18.115181", "msg": "", "rc": 0, "start": "2025-12-15 19:05:18.104187", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011934", "end": "2025-12-15 19:05:18.108327", "msg": "", "rc": 0, "start": "2025-12-15 19:05:18.096393", "stderr": "", "stderr_lines": [], "stdout": "12.9%", "stdout_lines": ["12.9%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005773", "end": "2025-12-15 19:05:18.409685", "msg": "", "rc": 0, "start": "2025-12-15 19:05:18.403912", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004373", "end": "2025-12-15 19:04:50.659697", "msg": "", "rc": 0, "start": "2025-12-15 19:04:50.655324", "stderr": "", "stderr_lines": [], "stdout": "25.6%", "stdout_lines": ["25.6%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003801", "end": "2025-12-15 19:04:56.675260", "msg": "", "rc": 0, "start": "2025-12-15 19:04:56.671459", "stderr": "", "stderr_lines": [], "stdout": "56.5%", "stdout_lines": ["56.5%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005434", "end": "2025-12-15 16:05:18.676861", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:05:18.671427", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025800", "end": "2025-12-15 19:05:18.759865", "msg": "", "rc": 0, "start": "2025-12-15 19:05:18.734065", "stderr": "", "stderr_lines": [], "stdout": "18.8%", "stdout_lines": ["18.8%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005766", "end": "2025-12-15 19:05:18.931535", "msg": "", "rc": 0, "start": "2025-12-15 19:05:18.925769", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.009862", "end": "2025-12-15 19:05:19.165634", "msg": "", "rc": 0, "start": "2025-12-15 19:05:19.155772", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005200", "end": "2025-12-15 19:05:19.478855", "msg": "", "rc": 0, "start": "2025-12-15 19:05:19.473655", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004747", "end": "2025-12-15 19:05:19.513677", "msg": "", "rc": 0, "start": "2025-12-15 19:05:19.508930", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006422", "end": "2025-12-15 19:05:19.541126", "msg": "", "rc": 0, "start": "2025-12-15 19:05:19.534704", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005624", "end": "2025-12-15 19:05:19.545314", "msg": "", "rc": 0, "start": "2025-12-15 19:05:19.539690", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003326", "end": "2025-12-15 19:05:19.561899", "msg": "", "rc": 0, "start": "2025-12-15 19:05:19.558573", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002816", "end": "2025-12-15 19:04:55.415573", "msg": "", "rc": 0, "start": "2025-12-15 19:04:55.412757", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003254", "end": "2025-12-15 19:04:49.554903", "msg": "", "rc": 0, "start": "2025-12-15 19:04:49.551649", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012126", "end": "2025-12-15 19:05:20.199621", "msg": "", "rc": 0, "start": "2025-12-15 19:05:20.187495", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013148", "end": "2025-12-15 19:05:20.264589", "msg": "", "rc": 0, "start": "2025-12-15 19:05:20.251441", "stderr": "", "stderr_lines": [], "stdout": "37.0°C", "stdout_lines": ["37.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003107", "end": "2025-12-15 19:05:20.551270", "msg": "", "rc": 0, "start": "2025-12-15 19:05:20.548163", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002789", "end": "2025-12-15 19:04:52.808139", "msg": "", "rc": 0, "start": "2025-12-15 19:04:52.805350", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002395", "end": "2025-12-15 19:04:58.775299", "msg": "", "rc": 0, "start": "2025-12-15 19:04:58.772904", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003936", "end": "2025-12-15 16:05:20.770068", "msg": "", "rc": 0, "start": "2025-12-15 16:05:20.766132", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028610", "end": "2025-12-15 19:05:20.896750", "msg": "", "rc": 0, "start": "2025-12-15 19:05:20.868140", "stderr": "", "stderr_lines": [], "stdout": "35.7°C", "stdout_lines": ["35.7°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003071", "end": "2025-12-15 19:05:21.022805", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.019734", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004098", "end": "2025-12-15 19:05:21.494513", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.490415", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004236", "end": "2025-12-15 19:05:21.710915", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.706679", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004015", "end": "2025-12-15 19:05:21.717258", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.713243", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004888", "end": "2025-12-15 19:05:21.727467", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.722579", "stderr": "", "stderr_lines": [], "stdout": "0.89", "stdout_lines": ["0.89"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004711", "end": "2025-12-15 19:05:21.753068", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.748357", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005761", "end": "2025-12-15 19:05:21.766464", "msg": "", "rc": 0, "start": "2025-12-15 19:05:21.760703", "stderr": "", "stderr_lines": [], "stdout": "0.76", "stdout_lines": ["0.76"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004466", "end": "2025-12-15 19:04:57.709512", "msg": "", "rc": 0, "start": "2025-12-15 19:04:57.705046", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005271", "end": "2025-12-15 19:04:51.874459", "msg": "", "rc": 0, "start": "2025-12-15 19:04:51.869188", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010105", "end": "2025-12-15 19:05:22.571550", "msg": "", "rc": 0, "start": "2025-12-15 19:05:22.561445", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011800", "end": "2025-12-15 19:05:22.651771", "msg": "", "rc": 0, "start": "2025-12-15 19:05:22.639971", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005490", "end": "2025-12-15 19:05:22.831950", "msg": "", "rc": 0, "start": "2025-12-15 19:05:22.826460", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004784", "end": "2025-12-15 19:04:55.123162", "msg": "", "rc": 0, "start": "2025-12-15 19:04:55.118378", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004474", "end": "2025-12-15 19:05:01.155913", "msg": "", "rc": 0, "start": "2025-12-15 19:05:01.151439", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005884", "end": "2025-12-15 16:05:23.194614", "msg": "", "rc": 0, "start": "2025-12-15 16:05:23.188730", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024350", "end": "2025-12-15 19:05:23.192396", "msg": "", "rc": 0, "start": "2025-12-15 19:05:23.168046", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005458", "end": "2025-12-15 19:05:23.344579", "msg": "", "rc": 0, "start": "2025-12-15 19:05:23.339121", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007150", "end": "2025-12-15 19:05:23.595615", "msg": "", "rc": 0, "start": "2025-12-15 19:05:23.588465", "stderr": "", "stderr_lines": [], "stdout": "1.65", "stdout_lines": ["1.65"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 1 day, 8:37, 1 user, load average: 0.29, 0.41, 0.54\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.24\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 20 days, 5:56, 1 user, load average: 0.25, 0.15, 0.12\nDisk Usage: 23%\nMemory Usage: 80.2%\nCPU Load: 0.21\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 20 days, 6:16, 1 user, load average: 0.53, 0.67, 0.67\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.89\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 20 days, 7:29, 1 user, load average: 0.63, 0.86, 0.82\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.76\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 20 days, 8:15, 1 user, load average: 0.06, 0.08, 0.08\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:13 up 13 days, 8:31, 1 user, load average: 0.23, 0.15, 0.12\nDisk Usage: 21%\nMemory Usage: 18.8%\nCPU Load: 0.35\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:13 up 192 days, 10:38, 1 user, load average: 0.12, 0.17, 0.23\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.26\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:13 up 192 days, 10:38, 1 user, load average: 0.14, 0.12, 0.11\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.19\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:49 up 9 days, 6:54, 0 user, load average: 0.10, 0.12, 0.11\nDisk Usage: 48%\nMemory Usage: 70.8%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:43 up 16 days, 3:06, 0 user, load average: 0.08, 0.03, 0.01\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:14 up 1 day, 8:36, 1 user, load average: 0.01, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:46 up 18 days, 21:59, 0 user, load average: 0.68, 0.60, 0.50\nDisk Usage: 28%\nMemory Usage: 25.6%\nCPU Load: 0.63\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:52 up 15 days, 8:20, 0 user, load average: 0.11, 0.20, 0.17\nDisk Usage: 75%\nMemory Usage: 56.5%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:05PM up 20 days, 5:55, 1 user, load averages: 0.25, 0.28, 0.25\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:14 up 1 day, 8:36, 1 user, load average: 0.37, 0.10, 0.05\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:14 up 5:40, 1 user, load average: 1.30, 1.21, 1.19\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.65\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:05:24.675842+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `c84635fedf0246209106d2f96a49eee3` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:10:00.000978+00:00 |
| **Fin** | 2025-12-16T00:10:23.453424+00:00 |
| **Durée** | 23.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003470", "end": "2025-12-15 19:10:12.139229", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.135759", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 20 days, 6:01, 1 user, load average: 0.19, 0.10, 0.10", "stdout_lines": [" 19:10:12 up 20 days, 6:01, 1 user, load average: 0.19, 0.10, 0.10"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003807", "end": "2025-12-15 19:10:12.164908", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.161101", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 20 days, 8:20, 1 user, load average: 0.19, 0.11, 0.09", "stdout_lines": [" 19:10:12 up 20 days, 8:20, 1 user, load average: 0.19, 0.11, 0.09"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004059", "end": "2025-12-15 19:10:12.174113", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.170054", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 20 days, 7:34, 1 user, load average: 0.74, 0.82, 0.83", "stdout_lines": [" 19:10:12 up 20 days, 7:34, 1 user, load average: 0.74, 0.82, 0.83"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002916", "end": "2025-12-15 19:10:12.183458", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.180542", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 1 day, 8:42, 1 user, load average: 0.29, 0.34, 0.47", "stdout_lines": [" 19:10:12 up 1 day, 8:42, 1 user, load average: 0.29, 0.34, 0.47"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002817", "end": "2025-12-15 19:09:48.055269", "msg": "", "rc": 0, "start": "2025-12-15 19:09:48.052452", "stderr": "", "stderr_lines": [], "stdout": " 19:09:48 up 9 days, 6:59, 0 user, load average: 0.04, 0.14, 0.13", "stdout_lines": [" 19:09:48 up 9 days, 6:59, 0 user, load average: 0.04, 0.14, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008575", "end": "2025-12-15 19:10:12.879186", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.870611", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 192 days, 10:43, 1 user, load average: 0.09, 0.09, 0.09", "stdout_lines": [" 19:10:12 up 192 days, 10:43, 1 user, load average: 0.09, 0.09, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009352", "end": "2025-12-15 19:10:12.938432", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.929080", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 192 days, 10:43, 1 user, load average: 0.15, 0.18, 0.22", "stdout_lines": [" 19:10:12 up 192 days, 10:43, 1 user, load average: 0.15, 0.18, 0.22"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004759", "end": "2025-12-15 19:10:13.152064", "msg": "", "rc": 0, "start": "2025-12-15 19:10:12.147305", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 20 days, 6:21, 1 user, load average: 0.62, 0.65, 0.66", "stdout_lines": [" 19:10:12 up 20 days, 6:21, 1 user, load average: 0.62, 0.65, 0.66"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003331", "end": "2025-12-15 19:09:42.655880", "msg": "", "rc": 0, "start": "2025-12-15 19:09:42.652549", "stderr": "", "stderr_lines": [], "stdout": " 19:09:42 up 16 days, 3:11, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 19:09:42 up 16 days, 3:11, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004973", "end": "2025-12-15 19:10:13.381595", "msg": "", "rc": 0, "start": "2025-12-15 19:10:13.376622", "stderr": "", "stderr_lines": [], "stdout": " 19:10:13 up 1 day, 8:41, 1 user, load average: 0.13, 0.08, 0.02", "stdout_lines": [" 19:10:13 up 1 day, 8:41, 1 user, load average: 0.13, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003250", "end": "2025-12-15 19:09:45.593635", "msg": "", "rc": 0, "start": "2025-12-15 19:09:45.590385", "stderr": "", "stderr_lines": [], "stdout": " 19:09:45 up 18 days, 22:04, 0 user, load average: 0.31, 0.46, 0.46", "stdout_lines": [" 19:09:45 up 18 days, 22:04, 0 user, load average: 0.31, 0.46, 0.46"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002889", "end": "2025-12-15 19:09:51.675363", "msg": "", "rc": 0, "start": "2025-12-15 19:09:51.672474", "stderr": "", "stderr_lines": [], "stdout": " 19:09:51 up 15 days, 8:25, 0 user, load average: 0.08, 0.15, 0.16", "stdout_lines": [" 19:09:51 up 15 days, 8:25, 0 user, load average: 0.08, 0.15, 0.16"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019383", "end": "2025-12-15 19:10:13.558510", "msg": "", "rc": 0, "start": "2025-12-15 19:10:13.539127", "stderr": "", "stderr_lines": [], "stdout": " 19:10:13 up 13 days, 8:36, 1 user, load average: 0.23, 0.14, 0.11", "stdout_lines": [" 19:10:13 up 13 days, 8:36, 1 user, load average: 0.23, 0.14, 0.11"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004328", "end": "2025-12-15 16:10:13.703662", "msg": "", "rc": 0, "start": "2025-12-15 16:10:13.699334", "stderr": "", "stderr_lines": [], "stdout": " 4:10PM up 20 days, 6 hrs, 1 user, load averages: 0.19, 0.22, 0.23", "stdout_lines": [" 4:10PM up 20 days, 6 hrs, 1 user, load averages: 0.19, 0.22, 0.23"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005143", "end": "2025-12-15 19:10:14.118878", "msg": "", "rc": 0, "start": "2025-12-15 19:10:14.113735", "stderr": "", "stderr_lines": [], "stdout": " 19:10:14 up 5:45, 1 user, load average: 1.20, 1.19, 1.18", "stdout_lines": [" 19:10:14 up 5:45, 1 user, load average: 1.20, 1.19, 1.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003754", "end": "2025-12-15 19:10:13.903487", "msg": "", "rc": 0, "start": "2025-12-15 19:10:13.899733", "stderr": "", "stderr_lines": [], "stdout": " 19:10:13 up 1 day, 8:41, 1 user, load average: 0.14, 0.06, 0.04", "stdout_lines": [" 19:10:13 up 1 day, 8:41, 1 user, load average: 0.14, 0.06, 0.04"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004151", "end": "2025-12-15 19:10:14.385047", "msg": "", "rc": 0, "start": "2025-12-15 19:10:14.380896", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004438", "end": "2025-12-15 19:10:14.397259", "msg": "", "rc": 0, "start": "2025-12-15 19:10:14.392821", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004664", "end": "2025-12-15 19:10:14.411961", "msg": "", "rc": 0, "start": "2025-12-15 19:10:14.407297", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006365", "end": "2025-12-15 19:10:14.443910", "msg": "", "rc": 0, "start": "2025-12-15 19:10:14.437545", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004905", "end": "2025-12-15 19:10:14.471154", "msg": "", "rc": 0, "start": "2025-12-15 19:10:14.466249", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005166", "end": "2025-12-15 19:09:50.348888", "msg": "", "rc": 0, "start": "2025-12-15 19:09:50.343722", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005968", "end": "2025-12-15 19:09:44.516272", "msg": "", "rc": 0, "start": "2025-12-15 19:09:44.510304", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010844", "end": "2025-12-15 19:10:15.172974", "msg": "", "rc": 0, "start": "2025-12-15 19:10:15.162130", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011644", "end": "2025-12-15 19:10:15.203825", "msg": "", "rc": 0, "start": "2025-12-15 19:10:15.192181", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005734", "end": "2025-12-15 19:10:15.470083", "msg": "", "rc": 0, "start": "2025-12-15 19:10:15.464349", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005366", "end": "2025-12-15 19:09:47.771113", "msg": "", "rc": 0, "start": "2025-12-15 19:09:47.765747", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004709", "end": "2025-12-15 19:09:53.702023", "msg": "", "rc": 0, "start": "2025-12-15 19:09:53.697314", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005978", "end": "2025-12-15 16:10:15.720815", "msg": "", "rc": 0, "start": "2025-12-15 16:10:15.714837", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025518", "end": "2025-12-15 19:10:15.803595", "msg": "", "rc": 0, "start": "2025-12-15 19:10:15.778077", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005461", "end": "2025-12-15 19:10:15.926470", "msg": "", "rc": 0, "start": "2025-12-15 19:10:15.921009", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.017810", "end": "2025-12-15 19:10:16.323065", "msg": "", "rc": 0, "start": "2025-12-15 19:10:16.305255", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004459", "end": "2025-12-15 19:10:16.498409", "msg": "", "rc": 0, "start": "2025-12-15 19:10:16.493950", "stderr": "", "stderr_lines": [], "stdout": "80.2%", "stdout_lines": ["80.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004214", "end": "2025-12-15 19:10:16.527102", "msg": "", "rc": 0, "start": "2025-12-15 19:10:16.522888", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004806", "end": "2025-12-15 19:10:16.549405", "msg": "", "rc": 0, "start": "2025-12-15 19:10:16.544599", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005030", "end": "2025-12-15 19:10:16.577244", "msg": "", "rc": 0, "start": "2025-12-15 19:10:16.572214", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005579", "end": "2025-12-15 19:10:16.582728", "msg": "", "rc": 0, "start": "2025-12-15 19:10:16.577149", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004080", "end": "2025-12-15 19:09:52.459510", "msg": "", "rc": 0, "start": "2025-12-15 19:09:52.455430", "stderr": "", "stderr_lines": [], "stdout": "71.0%", "stdout_lines": ["71.0%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005817", "end": "2025-12-15 19:09:46.643417", "msg": "", "rc": 0, "start": "2025-12-15 19:09:46.637600", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011038", "end": "2025-12-15 19:10:17.264117", "msg": "", "rc": 0, "start": "2025-12-15 19:10:17.253079", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012358", "end": "2025-12-15 19:10:17.261385", "msg": "", "rc": 0, "start": "2025-12-15 19:10:17.249027", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005938", "end": "2025-12-15 19:10:17.582369", "msg": "", "rc": 0, "start": "2025-12-15 19:10:17.576431", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005337", "end": "2025-12-15 16:10:17.771141", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:10:17.765804", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003501", "end": "2025-12-15 19:09:55.806227", "msg": "", "rc": 0, "start": "2025-12-15 19:09:55.802726", "stderr": "", "stderr_lines": [], "stdout": "57.3%", "stdout_lines": ["57.3%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004290", "end": "2025-12-15 19:09:49.878039", "msg": "", "rc": 0, "start": "2025-12-15 19:09:49.873749", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026024", "end": "2025-12-15 19:10:17.913273", "msg": "", "rc": 0, "start": "2025-12-15 19:10:17.887249", "stderr": "", "stderr_lines": [], "stdout": "18.9%", "stdout_lines": ["18.9%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005497", "end": "2025-12-15 19:10:18.092560", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.087063", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007797", "end": "2025-12-15 19:10:18.426101", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.418304", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005525", "end": "2025-12-15 19:10:18.577693", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.572168", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005130", "end": "2025-12-15 19:10:18.594655", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.589525", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003146", "end": "2025-12-15 19:10:18.629932", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.626786", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005897", "end": "2025-12-15 19:10:18.653488", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.647591", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006307", "end": "2025-12-15 19:10:18.664673", "msg": "", "rc": 0, "start": "2025-12-15 19:10:18.658366", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003041", "end": "2025-12-15 19:09:54.616266", "msg": "", "rc": 0, "start": "2025-12-15 19:09:54.613225", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003073", "end": "2025-12-15 19:09:48.737372", "msg": "", "rc": 0, "start": "2025-12-15 19:09:48.734299", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011818", "end": "2025-12-15 19:10:19.391665", "msg": "", "rc": 0, "start": "2025-12-15 19:10:19.379847", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013056", "end": "2025-12-15 19:10:19.390678", "msg": "", "rc": 0, "start": "2025-12-15 19:10:19.377622", "stderr": "", "stderr_lines": [], "stdout": "35.0°C", "stdout_lines": ["35.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003101", "end": "2025-12-15 19:10:19.706533", "msg": "", "rc": 0, "start": "2025-12-15 19:10:19.703432", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002881", "end": "2025-12-15 19:09:51.958378", "msg": "", "rc": 0, "start": "2025-12-15 19:09:51.955497", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002923", "end": "2025-12-15 19:09:57.978222", "msg": "", "rc": 0, "start": "2025-12-15 19:09:57.975299", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003878", "end": "2025-12-15 16:10:19.960940", "msg": "", "rc": 0, "start": "2025-12-15 16:10:19.957062", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002986", "end": "2025-12-15 19:10:20.166420", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.163434", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028420", "end": "2025-12-15 19:10:20.051927", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.023507", "stderr": "", "stderr_lines": [], "stdout": "35.4°C", "stdout_lines": ["35.4°C"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003967", "end": "2025-12-15 19:10:20.501180", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.497213", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004061", "end": "2025-12-15 19:10:20.674725", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.670664", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004262", "end": "2025-12-15 19:10:20.700239", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.695977", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004745", "end": "2025-12-15 19:10:20.731132", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.726387", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004822", "end": "2025-12-15 19:10:20.750540", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.745718", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005425", "end": "2025-12-15 19:10:20.769721", "msg": "", "rc": 0, "start": "2025-12-15 19:10:20.764296", "stderr": "", "stderr_lines": [], "stdout": "0.86", "stdout_lines": ["0.86"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004265", "end": "2025-12-15 19:09:56.623033", "msg": "", "rc": 0, "start": "2025-12-15 19:09:56.618768", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004922", "end": "2025-12-15 19:09:50.795409", "msg": "", "rc": 0, "start": "2025-12-15 19:09:50.790487", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011335", "end": "2025-12-15 19:10:21.504550", "msg": "", "rc": 0, "start": "2025-12-15 19:10:21.493215", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010090", "end": "2025-12-15 19:10:21.530522", "msg": "", "rc": 0, "start": "2025-12-15 19:10:21.520432", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005667", "end": "2025-12-15 19:10:21.770338", "msg": "", "rc": 0, "start": "2025-12-15 19:10:21.764671", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004920", "end": "2025-12-15 19:09:54.001057", "msg": "", "rc": 0, "start": "2025-12-15 19:09:53.996137", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005930", "end": "2025-12-15 16:10:21.997413", "msg": "", "rc": 0, "start": "2025-12-15 16:10:21.991483", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004292", "end": "2025-12-15 19:10:00.082181", "msg": "", "rc": 0, "start": "2025-12-15 19:10:00.077889", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024497", "end": "2025-12-15 19:10:22.091144", "msg": "", "rc": 0, "start": "2025-12-15 19:10:22.066647", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005308", "end": "2025-12-15 19:10:22.246530", "msg": "", "rc": 0, "start": "2025-12-15 19:10:22.241222", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007663", "end": "2025-12-15 19:10:22.438720", "msg": "", "rc": 0, "start": "2025-12-15 19:10:22.431057", "stderr": "", "stderr_lines": [], "stdout": "1.32", "stdout_lines": ["1.32"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 1 day, 8:42, 1 user, load average: 0.29, 0.34, 0.47\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.33\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 20 days, 6:01, 1 user, load average: 0.19, 0.10, 0.10\nDisk Usage: 23%\nMemory Usage: 80.2%\nCPU Load: 0.17\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 20 days, 6:21, 1 user, load average: 0.62, 0.65, 0.66\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.60\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 20 days, 7:34, 1 user, load average: 0.74, 0.82, 0.83\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.86\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 20 days, 8:20, 1 user, load average: 0.19, 0.11, 0.09\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:13 up 13 days, 8:36, 1 user, load average: 0.23, 0.14, 0.11\nDisk Usage: 21%\nMemory Usage: 18.9%\nCPU Load: 0.27\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 192 days, 10:43, 1 user, load average: 0.15, 0.18, 0.22\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.13\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 192 days, 10:43, 1 user, load average: 0.09, 0.09, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.24\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:48 up 9 days, 6:59, 0 user, load average: 0.04, 0.14, 0.13\nDisk Usage: 48%\nMemory Usage: 71.0%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:42 up 16 days, 3:11, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:13 up 1 day, 8:41, 1 user, load average: 0.13, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:45 up 18 days, 22:04, 0 user, load average: 0.31, 0.46, 0.46\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.41\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:51 up 15 days, 8:25, 0 user, load average: 0.08, 0.15, 0.16\nDisk Usage: 75%\nMemory Usage: 57.3%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:10PM up 20 days, 6 hrs, 1 user, load averages: 0.19, 0.22, 0.23\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:13 up 1 day, 8:41, 1 user, load average: 0.14, 0.06, 0.04\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:14 up 5:45, 1 user, load average: 1.20, 1.19, 1.18\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:10:23.498567+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `64da8f1ba21e4ee68194766e93e2df3b` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:15:00.005162+00:00 |
| **Fin** | 2025-12-16T00:15:33.020020+00:00 |
| **Durée** | 33.0s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003502", "end": "2025-12-15 19:15:16.643497", "msg": "", "rc": 0, "start": "2025-12-15 19:15:16.639995", "stderr": "", "stderr_lines": [], "stdout": " 19:15:16 up 20 days, 8:25, 1 user, load average: 0.05, 0.08, 0.08", "stdout_lines": [" 19:15:16 up 20 days, 8:25, 1 user, load average: 0.05, 0.08, 0.08"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003190", "end": "2025-12-15 19:15:16.645134", "msg": "", "rc": 0, "start": "2025-12-15 19:15:16.641944", "stderr": "", "stderr_lines": [], "stdout": " 19:15:16 up 20 days, 6:26, 1 user, load average: 0.93, 0.67, 0.65", "stdout_lines": [" 19:15:16 up 20 days, 6:26, 1 user, load average: 0.93, 0.67, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003080", "end": "2025-12-15 19:15:16.669225", "msg": "", "rc": 0, "start": "2025-12-15 19:15:16.666145", "stderr": "", "stderr_lines": [], "stdout": " 19:15:16 up 1 day, 8:47, 1 user, load average: 0.58, 0.39, 0.45", "stdout_lines": [" 19:15:16 up 1 day, 8:47, 1 user, load average: 0.58, 0.39, 0.45"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003957", "end": "2025-12-15 19:15:16.674511", "msg": "", "rc": 0, "start": "2025-12-15 19:15:16.670554", "stderr": "", "stderr_lines": [], "stdout": " 19:15:16 up 20 days, 7:39, 1 user, load average: 0.70, 0.69, 0.77", "stdout_lines": [" 19:15:16 up 20 days, 7:39, 1 user, load average: 0.70, 0.69, 0.77"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002726", "end": "2025-12-15 19:14:52.719649", "msg": "", "rc": 0, "start": "2025-12-15 19:14:52.716923", "stderr": "", "stderr_lines": [], "stdout": " 19:14:52 up 9 days, 7:04, 0 user, load average: 0.18, 0.31, 0.21", "stdout_lines": [" 19:14:52 up 9 days, 7:04, 0 user, load average: 0.18, 0.31, 0.21"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008506", "end": "2025-12-15 19:15:17.549561", "msg": "", "rc": 0, "start": "2025-12-15 19:15:17.541055", "stderr": "", "stderr_lines": [], "stdout": " 19:15:17 up 192 days, 10:48, 1 user, load average: 0.09, 0.09, 0.09", "stdout_lines": [" 19:15:17 up 192 days, 10:48, 1 user, load average: 0.09, 0.09, 0.09"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004294", "end": "2025-12-15 19:15:17.635706", "msg": "", "rc": 0, "start": "2025-12-15 19:15:16.631412", "stderr": "", "stderr_lines": [], "stdout": " 19:15:16 up 20 days, 6:06, 1 user, load average: 0.26, 0.14, 0.10", "stdout_lines": [" 19:15:16 up 20 days, 6:06, 1 user, load average: 0.26, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009379", "end": "2025-12-15 19:15:17.592349", "msg": "", "rc": 0, "start": "2025-12-15 19:15:17.582970", "stderr": "", "stderr_lines": [], "stdout": " 19:15:17 up 192 days, 10:48, 1 user, load average: 0.05, 0.13, 0.18", "stdout_lines": [" 19:15:17 up 192 days, 10:48, 1 user, load average: 0.05, 0.13, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004388", "end": "2025-12-15 19:14:47.534438", "msg": "", "rc": 0, "start": "2025-12-15 19:14:47.530050", "stderr": "", "stderr_lines": [], "stdout": " 19:14:47 up 16 days, 3:16, 0 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 19:14:47 up 16 days, 3:16, 0 user, load average: 0.00, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005048", "end": "2025-12-15 19:15:18.286318", "msg": "", "rc": 0, "start": "2025-12-15 19:15:18.281270", "stderr": "", "stderr_lines": [], "stdout": " 19:15:18 up 1 day, 8:46, 1 user, load average: 0.07, 0.06, 0.01", "stdout_lines": [" 19:15:18 up 1 day, 8:46, 1 user, load average: 0.07, 0.06, 0.01"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002807", "end": "2025-12-15 19:14:56.336569", "msg": "", "rc": 0, "start": "2025-12-15 19:14:56.333762", "stderr": "", "stderr_lines": [], "stdout": " 19:14:56 up 15 days, 8:30, 0 user, load average: 0.13, 0.12, 0.14", "stdout_lines": [" 19:14:56 up 15 days, 8:30, 0 user, load average: 0.13, 0.12, 0.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019486", "end": "2025-12-15 19:15:18.289372", "msg": "", "rc": 0, "start": "2025-12-15 19:15:18.269886", "stderr": "", "stderr_lines": [], "stdout": " 19:15:18 up 13 days, 8:41, 1 user, load average: 0.07, 0.11, 0.10", "stdout_lines": [" 19:15:18 up 13 days, 8:41, 1 user, load average: 0.07, 0.11, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003728", "end": "2025-12-15 19:14:50.495711", "msg": "", "rc": 0, "start": "2025-12-15 19:14:50.491983", "stderr": "", "stderr_lines": [], "stdout": " 19:14:50 up 18 days, 22:09, 0 user, load average: 0.45, 0.50, 0.47", "stdout_lines": [" 19:14:50 up 18 days, 22:09, 0 user, load average: 0.45, 0.50, 0.47"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004591", "end": "2025-12-15 16:15:18.683155", "msg": "", "rc": 0, "start": "2025-12-15 16:15:18.678564", "stderr": "", "stderr_lines": [], "stdout": " 4:15PM up 20 days, 6:05, 1 user, load averages: 0.38, 0.30, 0.26", "stdout_lines": [" 4:15PM up 20 days, 6:05, 1 user, load averages: 0.38, 0.30, 0.26"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003913", "end": "2025-12-15 19:15:18.878681", "msg": "", "rc": 0, "start": "2025-12-15 19:15:18.874768", "stderr": "", "stderr_lines": [], "stdout": " 19:15:18 up 1 day, 8:46, 1 user, load average: 0.00, 0.01, 0.01", "stdout_lines": [" 19:15:18 up 1 day, 8:46, 1 user, load average: 0.00, 0.01, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008099", "end": "2025-12-15 19:15:19.163130", "msg": "", "rc": 0, "start": "2025-12-15 19:15:19.155031", "stderr": "", "stderr_lines": [], "stdout": " 19:15:19 up 5:50, 1 user, load average: 1.45, 1.25, 1.20", "stdout_lines": [" 19:15:19 up 5:50, 1 user, load average: 1.45, 1.25, 1.20"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004440", "end": "2025-12-15 19:15:19.641042", "msg": "", "rc": 0, "start": "2025-12-15 19:15:19.636602", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004262", "end": "2025-12-15 19:15:19.653876", "msg": "", "rc": 0, "start": "2025-12-15 19:15:19.649614", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004832", "end": "2025-12-15 19:15:19.689628", "msg": "", "rc": 0, "start": "2025-12-15 19:15:19.684796", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005415", "end": "2025-12-15 19:15:19.757759", "msg": "", "rc": 0, "start": "2025-12-15 19:15:19.752344", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005629", "end": "2025-12-15 19:15:19.768567", "msg": "", "rc": 0, "start": "2025-12-15 19:15:19.762938", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004995", "end": "2025-12-15 19:14:55.863914", "msg": "", "rc": 0, "start": "2025-12-15 19:14:55.858919", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005304", "end": "2025-12-15 19:14:49.988072", "msg": "", "rc": 0, "start": "2025-12-15 19:14:49.982768", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010734", "end": "2025-12-15 19:15:20.640862", "msg": "", "rc": 0, "start": "2025-12-15 19:15:20.630128", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011616", "end": "2025-12-15 19:15:20.678280", "msg": "", "rc": 0, "start": "2025-12-15 19:15:20.666664", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006559", "end": "2025-12-15 19:15:21.105393", "msg": "", "rc": 0, "start": "2025-12-15 19:15:21.098834", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005283", "end": "2025-12-15 19:14:53.297126", "msg": "", "rc": 0, "start": "2025-12-15 19:14:53.291843", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005723", "end": "2025-12-15 16:15:21.237496", "msg": "", "rc": 0, "start": "2025-12-15 16:15:21.231773", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005483", "end": "2025-12-15 19:14:59.260509", "msg": "", "rc": 0, "start": "2025-12-15 19:14:59.255026", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025200", "end": "2025-12-15 19:15:21.223979", "msg": "", "rc": 0, "start": "2025-12-15 19:15:21.198779", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005377", "end": "2025-12-15 19:15:21.669952", "msg": "", "rc": 0, "start": "2025-12-15 19:15:21.664575", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019359", "end": "2025-12-15 19:15:22.129525", "msg": "", "rc": 0, "start": "2025-12-15 19:15:22.110166", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004738", "end": "2025-12-15 19:15:22.594387", "msg": "", "rc": 0, "start": "2025-12-15 19:15:22.589649", "stderr": "", "stderr_lines": [], "stdout": "80.2%", "stdout_lines": ["80.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004130", "end": "2025-12-15 19:15:22.592930", "msg": "", "rc": 0, "start": "2025-12-15 19:15:22.588800", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005363", "end": "2025-12-15 19:15:22.655477", "msg": "", "rc": 0, "start": "2025-12-15 19:15:22.650114", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004579", "end": "2025-12-15 19:15:22.714813", "msg": "", "rc": 0, "start": "2025-12-15 19:15:22.710234", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005906", "end": "2025-12-15 19:15:22.718183", "msg": "", "rc": 0, "start": "2025-12-15 19:15:22.712277", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003638", "end": "2025-12-15 19:14:58.744405", "msg": "", "rc": 0, "start": "2025-12-15 19:14:58.740767", "stderr": "", "stderr_lines": [], "stdout": "71.3%", "stdout_lines": ["71.3%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004373", "end": "2025-12-15 19:14:52.889414", "msg": "", "rc": 0, "start": "2025-12-15 19:14:52.885041", "stderr": "", "stderr_lines": [], "stdout": "72.0%", "stdout_lines": ["72.0%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012209", "end": "2025-12-15 19:15:23.493126", "msg": "", "rc": 0, "start": "2025-12-15 19:15:23.480917", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011091", "end": "2025-12-15 19:15:23.522287", "msg": "", "rc": 0, "start": "2025-12-15 19:15:23.511196", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005856", "end": "2025-12-15 19:15:23.962086", "msg": "", "rc": 0, "start": "2025-12-15 19:15:23.956230", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004001", "end": "2025-12-15 19:14:56.191103", "msg": "", "rc": 0, "start": "2025-12-15 19:14:56.187102", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005548", "end": "2025-12-15 16:15:24.163329", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:15:24.157781", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004556", "end": "2025-12-15 19:15:02.192974", "msg": "", "rc": 0, "start": "2025-12-15 19:15:02.188418", "stderr": "", "stderr_lines": [], "stdout": "57.4%", "stdout_lines": ["57.4%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026054", "end": "2025-12-15 19:15:24.160510", "msg": "", "rc": 0, "start": "2025-12-15 19:15:24.134456", "stderr": "", "stderr_lines": [], "stdout": "19.2%", "stdout_lines": ["19.2%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005569", "end": "2025-12-15 19:15:24.527832", "msg": "", "rc": 0, "start": "2025-12-15 19:15:24.522263", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.014785", "end": "2025-12-15 19:15:25.046280", "msg": "", "rc": 0, "start": "2025-12-15 19:15:25.031495", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005146", "end": "2025-12-15 19:15:25.465308", "msg": "", "rc": 0, "start": "2025-12-15 19:15:25.460162", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004982", "end": "2025-12-15 19:15:25.485120", "msg": "", "rc": 0, "start": "2025-12-15 19:15:25.480138", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006147", "end": "2025-12-15 19:15:25.537121", "msg": "", "rc": 0, "start": "2025-12-15 19:15:25.530974", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003354", "end": "2025-12-15 19:15:25.554196", "msg": "", "rc": 0, "start": "2025-12-15 19:15:25.550842", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006462", "end": "2025-12-15 19:15:25.554640", "msg": "", "rc": 0, "start": "2025-12-15 19:15:25.548178", "stderr": "", "stderr_lines": [], "stdout": "53.0°C", "stdout_lines": ["53.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003004", "end": "2025-12-15 19:15:01.718271", "msg": "", "rc": 0, "start": "2025-12-15 19:15:01.715267", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003091", "end": "2025-12-15 19:14:55.832488", "msg": "", "rc": 0, "start": "2025-12-15 19:14:55.829397", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013174", "end": "2025-12-15 19:15:26.554162", "msg": "", "rc": 0, "start": "2025-12-15 19:15:26.540988", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011952", "end": "2025-12-15 19:15:26.614767", "msg": "", "rc": 0, "start": "2025-12-15 19:15:26.602815", "stderr": "", "stderr_lines": [], "stdout": "31.2°C", "stdout_lines": ["31.2°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003115", "end": "2025-12-15 19:15:26.924097", "msg": "", "rc": 0, "start": "2025-12-15 19:15:26.920982", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002941", "end": "2025-12-15 19:14:59.144960", "msg": "", "rc": 0, "start": "2025-12-15 19:14:59.142019", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002581", "end": "2025-12-15 19:15:05.211422", "msg": "", "rc": 0, "start": "2025-12-15 19:15:05.208841", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004829", "end": "2025-12-15 16:15:27.197649", "msg": "", "rc": 0, "start": "2025-12-15 16:15:27.192820", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028479", "end": "2025-12-15 19:15:27.204348", "msg": "", "rc": 0, "start": "2025-12-15 19:15:27.175869", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002927", "end": "2025-12-15 19:15:27.502563", "msg": "", "rc": 0, "start": "2025-12-15 19:15:27.499636", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.008957", "end": "2025-12-15 19:15:27.939140", "msg": "", "rc": 0, "start": "2025-12-15 19:15:27.930183", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004185", "end": "2025-12-15 19:15:28.373194", "msg": "", "rc": 0, "start": "2025-12-15 19:15:28.369009", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004139", "end": "2025-12-15 19:15:28.377627", "msg": "", "rc": 0, "start": "2025-12-15 19:15:28.373488", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004956", "end": "2025-12-15 19:15:28.437073", "msg": "", "rc": 0, "start": "2025-12-15 19:15:28.432117", "stderr": "", "stderr_lines": [], "stdout": "0.86", "stdout_lines": ["0.86"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006084", "end": "2025-12-15 19:15:28.472295", "msg": "", "rc": 0, "start": "2025-12-15 19:15:28.466211", "stderr": "", "stderr_lines": [], "stdout": "0.75", "stdout_lines": ["0.75"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005080", "end": "2025-12-15 19:15:28.485319", "msg": "", "rc": 0, "start": "2025-12-15 19:15:28.480239", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004291", "end": "2025-12-15 19:15:04.482357", "msg": "", "rc": 0, "start": "2025-12-15 19:15:04.478066", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005236", "end": "2025-12-15 19:14:58.676518", "msg": "", "rc": 0, "start": "2025-12-15 19:14:58.671282", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010191", "end": "2025-12-15 19:15:29.285510", "msg": "", "rc": 0, "start": "2025-12-15 19:15:29.275319", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011448", "end": "2025-12-15 19:15:29.298079", "msg": "", "rc": 0, "start": "2025-12-15 19:15:29.286631", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006126", "end": "2025-12-15 19:15:29.715561", "msg": "", "rc": 0, "start": "2025-12-15 19:15:29.709435", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005184", "end": "2025-12-15 19:15:01.990376", "msg": "", "rc": 0, "start": "2025-12-15 19:15:01.985192", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006024", "end": "2025-12-15 16:15:29.923215", "msg": "", "rc": 0, "start": "2025-12-15 16:15:29.917191", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005103", "end": "2025-12-15 19:15:07.961479", "msg": "", "rc": 0, "start": "2025-12-15 19:15:07.956376", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024035", "end": "2025-12-15 19:15:29.911817", "msg": "", "rc": 0, "start": "2025-12-15 19:15:29.887782", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005304", "end": "2025-12-15 19:15:30.294887", "msg": "", "rc": 0, "start": "2025-12-15 19:15:30.289583", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.019118", "end": "2025-12-15 19:15:30.836039", "msg": "", "rc": 0, "start": "2025-12-15 19:15:30.816921", "stderr": "", "stderr_lines": [], "stdout": "1.46", "stdout_lines": ["1.46"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:16 up 1 day, 8:47, 1 user, load average: 0.58, 0.39, 0.45\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.57\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:16 up 20 days, 6:06, 1 user, load average: 0.26, 0.14, 0.10\nDisk Usage: 23%\nMemory Usage: 80.2%\nCPU Load: 0.22\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:16 up 20 days, 6:26, 1 user, load average: 0.93, 0.67, 0.65\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.86\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:16 up 20 days, 7:39, 1 user, load average: 0.70, 0.69, 0.77\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.75\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:16 up 20 days, 8:25, 1 user, load average: 0.05, 0.08, 0.08\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:18 up 13 days, 8:41, 1 user, load average: 0.07, 0.11, 0.10\nDisk Usage: 21%\nMemory Usage: 19.2%\nCPU Load: 0.21\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:17 up 192 days, 10:48, 1 user, load average: 0.05, 0.13, 0.18\nDisk Usage: 6%\nMemory Usage: 12.4%\nCPU Load: 0.04\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:17 up 192 days, 10:48, 1 user, load average: 0.09, 0.09, 0.09\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.24\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:52 up 9 days, 7:04, 0 user, load average: 0.18, 0.31, 0.21\nDisk Usage: 48%\nMemory Usage: 71.3%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:47 up 16 days, 3:16, 0 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:18 up 1 day, 8:46, 1 user, load average: 0.07, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:50 up 18 days, 22:09, 0 user, load average: 0.45, 0.50, 0.47\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.41\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:56 up 15 days, 8:30, 0 user, load average: 0.13, 0.12, 0.14\nDisk Usage: 75%\nMemory Usage: 57.4%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:15PM up 20 days, 6:05, 1 user, load averages: 0.38, 0.30, 0.26\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:18 up 1 day, 8:46, 1 user, load average: 0.00, 0.01, 0.01\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:19 up 5:50, 1 user, load average: 1.45, 1.25, 1.20\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:15:33.088592+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `09c0e8e9ea6643f9b503174ae3e97b31` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:20:00.003039+00:00 |
| **Fin** | 2025-12-16T00:20:32.083832+00:00 |
| **Durée** | 32.1s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003195", "end": "2025-12-15 19:20:15.794908", "msg": "", "rc": 0, "start": "2025-12-15 19:20:15.791713", "stderr": "", "stderr_lines": [], "stdout": " 19:20:15 up 20 days, 6:11, 1 user, load average: 0.07, 0.12, 0.09", "stdout_lines": [" 19:20:15 up 20 days, 6:11, 1 user, load average: 0.07, 0.12, 0.09"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003477", "end": "2025-12-15 19:20:15.787290", "msg": "", "rc": 0, "start": "2025-12-15 19:20:15.783813", "stderr": "", "stderr_lines": [], "stdout": " 19:20:15 up 20 days, 6:31, 1 user, load average: 0.46, 0.62, 0.63", "stdout_lines": [" 19:20:15 up 20 days, 6:31, 1 user, load average: 0.46, 0.62, 0.63"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003751", "end": "2025-12-15 19:20:15.797736", "msg": "", "rc": 0, "start": "2025-12-15 19:20:15.793985", "stderr": "", "stderr_lines": [], "stdout": " 19:20:15 up 20 days, 8:30, 1 user, load average: 0.14, 0.10, 0.09", "stdout_lines": [" 19:20:15 up 20 days, 8:30, 1 user, load average: 0.14, 0.10, 0.09"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004279", "end": "2025-12-15 19:20:15.816313", "msg": "", "rc": 0, "start": "2025-12-15 19:20:15.812034", "stderr": "", "stderr_lines": [], "stdout": " 19:20:15 up 20 days, 7:44, 1 user, load average: 1.16, 0.76, 0.76", "stdout_lines": [" 19:20:15 up 20 days, 7:44, 1 user, load average: 1.16, 0.76, 0.76"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002881", "end": "2025-12-15 19:20:15.824498", "msg": "", "rc": 0, "start": "2025-12-15 19:20:15.821617", "stderr": "", "stderr_lines": [], "stdout": " 19:20:15 up 1 day, 8:52, 1 user, load average: 0.57, 0.40, 0.43", "stdout_lines": [" 19:20:15 up 1 day, 8:52, 1 user, load average: 0.57, 0.40, 0.43"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002904", "end": "2025-12-15 19:19:51.877490", "msg": "", "rc": 0, "start": "2025-12-15 19:19:51.874586", "stderr": "", "stderr_lines": [], "stdout": " 19:19:51 up 9 days, 7:09, 0 user, load average: 0.16, 0.18, 0.17", "stdout_lines": [" 19:19:51 up 9 days, 7:09, 0 user, load average: 0.16, 0.18, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003718", "end": "2025-12-15 19:19:46.038919", "msg": "", "rc": 0, "start": "2025-12-15 19:19:46.035201", "stderr": "", "stderr_lines": [], "stdout": " 19:19:46 up 16 days, 3:21, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 19:19:46 up 16 days, 3:21, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008601", "end": "2025-12-15 19:20:16.688498", "msg": "", "rc": 0, "start": "2025-12-15 19:20:16.679897", "stderr": "", "stderr_lines": [], "stdout": " 19:20:16 up 192 days, 10:53, 1 user, load average: 0.04, 0.09, 0.08", "stdout_lines": [" 19:20:16 up 192 days, 10:53, 1 user, load average: 0.04, 0.09, 0.08"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009381", "end": "2025-12-15 19:20:16.699742", "msg": "", "rc": 0, "start": "2025-12-15 19:20:16.690361", "stderr": "", "stderr_lines": [], "stdout": " 19:20:16 up 192 days, 10:53, 1 user, load average: 0.21, 0.18, 0.18", "stdout_lines": [" 19:20:16 up 192 days, 10:53, 1 user, load average: 0.21, 0.18, 0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004805", "end": "2025-12-15 19:20:17.113689", "msg": "", "rc": 0, "start": "2025-12-15 19:20:17.108884", "stderr": "", "stderr_lines": [], "stdout": " 19:20:17 up 1 day, 8:51, 1 user, load average: 0.08, 0.03, 0.01", "stdout_lines": [" 19:20:17 up 1 day, 8:51, 1 user, load average: 0.08, 0.03, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003412", "end": "2025-12-15 19:19:49.349681", "msg": "", "rc": 0, "start": "2025-12-15 19:19:49.346269", "stderr": "", "stderr_lines": [], "stdout": " 19:19:49 up 18 days, 22:14, 0 user, load average: 0.38, 0.45, 0.45", "stdout_lines": [" 19:19:49 up 18 days, 22:14, 0 user, load average: 0.38, 0.45, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004283", "end": "2025-12-15 16:20:17.325475", "msg": "", "rc": 0, "start": "2025-12-15 16:20:17.321192", "stderr": "", "stderr_lines": [], "stdout": " 4:20PM up 20 days, 6:10, 1 user, load averages: 0.20, 0.27, 0.24", "stdout_lines": [" 4:20PM up 20 days, 6:10, 1 user, load averages: 0.20, 0.27, 0.24"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003238", "end": "2025-12-15 19:19:55.330386", "msg": "", "rc": 0, "start": "2025-12-15 19:19:55.327148", "stderr": "", "stderr_lines": [], "stdout": " 19:19:55 up 15 days, 8:35, 0 user, load average: 0.23, 0.22, 0.18", "stdout_lines": [" 19:19:55 up 15 days, 8:35, 0 user, load average: 0.23, 0.22, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019660", "end": "2025-12-15 19:20:17.320660", "msg": "", "rc": 0, "start": "2025-12-15 19:20:17.301000", "stderr": "", "stderr_lines": [], "stdout": " 19:20:17 up 13 days, 8:46, 1 user, load average: 0.22, 0.13, 0.10", "stdout_lines": [" 19:20:17 up 13 days, 8:46, 1 user, load average: 0.22, 0.13, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003682", "end": "2025-12-15 19:20:17.692061", "msg": "", "rc": 0, "start": "2025-12-15 19:20:17.688379", "stderr": "", "stderr_lines": [], "stdout": " 19:20:17 up 1 day, 8:51, 1 user, load average: 0.01, 0.05, 0.01", "stdout_lines": [" 19:20:17 up 1 day, 8:51, 1 user, load average: 0.01, 0.05, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.010003", "end": "2025-12-15 19:20:18.222021", "msg": "", "rc": 0, "start": "2025-12-15 19:20:18.212018", "stderr": "", "stderr_lines": [], "stdout": " 19:20:18 up 5:55, 1 user, load average: 1.21, 1.20, 1.18", "stdout_lines": [" 19:20:18 up 5:55, 1 user, load average: 1.21, 1.20, 1.18"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004064", "end": "2025-12-15 19:20:18.651520", "msg": "", "rc": 0, "start": "2025-12-15 19:20:18.647456", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004366", "end": "2025-12-15 19:20:18.652719", "msg": "", "rc": 0, "start": "2025-12-15 19:20:18.648353", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004821", "end": "2025-12-15 19:20:18.703074", "msg": "", "rc": 0, "start": "2025-12-15 19:20:18.698253", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004966", "end": "2025-12-15 19:20:18.766531", "msg": "", "rc": 0, "start": "2025-12-15 19:20:18.761565", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005759", "end": "2025-12-15 19:20:18.773875", "msg": "", "rc": 0, "start": "2025-12-15 19:20:18.768116", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005451", "end": "2025-12-15 19:19:54.861272", "msg": "", "rc": 0, "start": "2025-12-15 19:19:54.855821", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.008395", "end": "2025-12-15 19:19:49.052108", "msg": "", "rc": 0, "start": "2025-12-15 19:19:49.043713", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010630", "end": "2025-12-15 19:20:19.711237", "msg": "", "rc": 0, "start": "2025-12-15 19:20:19.700607", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011686", "end": "2025-12-15 19:20:19.740140", "msg": "", "rc": 0, "start": "2025-12-15 19:20:19.728454", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005672", "end": "2025-12-15 19:20:20.106739", "msg": "", "rc": 0, "start": "2025-12-15 19:20:20.101067", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006042", "end": "2025-12-15 16:20:20.340402", "msg": "", "rc": 0, "start": "2025-12-15 16:20:20.334360", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025141", "end": "2025-12-15 19:20:20.228990", "msg": "", "rc": 0, "start": "2025-12-15 19:20:20.203849", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006524", "end": "2025-12-15 19:19:52.428268", "msg": "", "rc": 0, "start": "2025-12-15 19:19:52.421744", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004947", "end": "2025-12-15 19:19:58.420412", "msg": "", "rc": 0, "start": "2025-12-15 19:19:58.415465", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005348", "end": "2025-12-15 19:20:20.663782", "msg": "", "rc": 0, "start": "2025-12-15 19:20:20.658434", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.022858", "end": "2025-12-15 19:20:21.297946", "msg": "", "rc": 0, "start": "2025-12-15 19:20:21.275088", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004351", "end": "2025-12-15 19:20:21.704625", "msg": "", "rc": 0, "start": "2025-12-15 19:20:21.700274", "stderr": "", "stderr_lines": [], "stdout": "80.2%", "stdout_lines": ["80.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004312", "end": "2025-12-15 19:20:21.738455", "msg": "", "rc": 0, "start": "2025-12-15 19:20:21.734143", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004877", "end": "2025-12-15 19:20:21.805175", "msg": "", "rc": 0, "start": "2025-12-15 19:20:21.800298", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005533", "end": "2025-12-15 19:20:21.830498", "msg": "", "rc": 0, "start": "2025-12-15 19:20:21.824965", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005743", "end": "2025-12-15 19:20:21.848737", "msg": "", "rc": 0, "start": "2025-12-15 19:20:21.842994", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003987", "end": "2025-12-15 19:19:57.899701", "msg": "", "rc": 0, "start": "2025-12-15 19:19:57.895714", "stderr": "", "stderr_lines": [], "stdout": "71.0%", "stdout_lines": ["71.0%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004605", "end": "2025-12-15 19:19:52.054879", "msg": "", "rc": 0, "start": "2025-12-15 19:19:52.050274", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012104", "end": "2025-12-15 19:20:22.601564", "msg": "", "rc": 0, "start": "2025-12-15 19:20:22.589460", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011144", "end": "2025-12-15 19:20:22.685368", "msg": "", "rc": 0, "start": "2025-12-15 19:20:22.674224", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006863", "end": "2025-12-15 19:20:23.115477", "msg": "", "rc": 0, "start": "2025-12-15 19:20:23.108614", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005083", "end": "2025-12-15 16:20:23.257636", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:20:23.252553", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003906", "end": "2025-12-15 19:20:01.270196", "msg": "", "rc": 0, "start": "2025-12-15 19:20:01.266290", "stderr": "", "stderr_lines": [], "stdout": "58.4%", "stdout_lines": ["58.4%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004315", "end": "2025-12-15 19:19:55.366287", "msg": "", "rc": 0, "start": "2025-12-15 19:19:55.361972", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026259", "end": "2025-12-15 19:20:23.272284", "msg": "", "rc": 0, "start": "2025-12-15 19:20:23.246025", "stderr": "", "stderr_lines": [], "stdout": "19.2%", "stdout_lines": ["19.2%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005387", "end": "2025-12-15 19:20:23.673030", "msg": "", "rc": 0, "start": "2025-12-15 19:20:23.667643", "stderr": "", "stderr_lines": [], "stdout": "13.2%", "stdout_lines": ["13.2%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.020698", "end": "2025-12-15 19:20:24.237274", "msg": "", "rc": 0, "start": "2025-12-15 19:20:24.216576", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005194", "end": "2025-12-15 19:20:24.645256", "msg": "", "rc": 0, "start": "2025-12-15 19:20:24.640062", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004864", "end": "2025-12-15 19:20:24.653406", "msg": "", "rc": 0, "start": "2025-12-15 19:20:24.648542", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005702", "end": "2025-12-15 19:20:24.707495", "msg": "", "rc": 0, "start": "2025-12-15 19:20:24.701793", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003154", "end": "2025-12-15 19:20:24.775140", "msg": "", "rc": 0, "start": "2025-12-15 19:20:24.771986", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006299", "end": "2025-12-15 19:20:24.774482", "msg": "", "rc": 0, "start": "2025-12-15 19:20:24.768183", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002889", "end": "2025-12-15 19:20:00.736784", "msg": "", "rc": 0, "start": "2025-12-15 19:20:00.733895", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003266", "end": "2025-12-15 19:19:54.885427", "msg": "", "rc": 0, "start": "2025-12-15 19:19:54.882161", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011852", "end": "2025-12-15 19:20:25.591080", "msg": "", "rc": 0, "start": "2025-12-15 19:20:25.579228", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012989", "end": "2025-12-15 19:20:25.607972", "msg": "", "rc": 0, "start": "2025-12-15 19:20:25.594983", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003176", "end": "2025-12-15 19:20:25.990821", "msg": "", "rc": 0, "start": "2025-12-15 19:20:25.987645", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002672", "end": "2025-12-15 19:19:58.238195", "msg": "", "rc": 0, "start": "2025-12-15 19:19:58.235523", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003966", "end": "2025-12-15 16:20:26.211457", "msg": "", "rc": 0, "start": "2025-12-15 16:20:26.207491", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002588", "end": "2025-12-15 19:20:04.240743", "msg": "", "rc": 0, "start": "2025-12-15 19:20:04.238155", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028611", "end": "2025-12-15 19:20:26.221052", "msg": "", "rc": 0, "start": "2025-12-15 19:20:26.192441", "stderr": "", "stderr_lines": [], "stdout": "36.2°C", "stdout_lines": ["36.2°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003209", "end": "2025-12-15 19:20:26.545283", "msg": "", "rc": 0, "start": "2025-12-15 19:20:26.542074", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.018576", "end": "2025-12-15 19:20:27.132697", "msg": "", "rc": 0, "start": "2025-12-15 19:20:27.114121", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004306", "end": "2025-12-15 19:20:27.494654", "msg": "", "rc": 0, "start": "2025-12-15 19:20:27.490348", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004084", "end": "2025-12-15 19:20:27.511446", "msg": "", "rc": 0, "start": "2025-12-15 19:20:27.507362", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004771", "end": "2025-12-15 19:20:27.581135", "msg": "", "rc": 0, "start": "2025-12-15 19:20:27.576364", "stderr": "", "stderr_lines": [], "stdout": "0.85", "stdout_lines": ["0.85"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005400", "end": "2025-12-15 19:20:27.634042", "msg": "", "rc": 0, "start": "2025-12-15 19:20:27.628642", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005694", "end": "2025-12-15 19:20:27.635185", "msg": "", "rc": 0, "start": "2025-12-15 19:20:27.629491", "stderr": "", "stderr_lines": [], "stdout": "1.14", "stdout_lines": ["1.14"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004360", "end": "2025-12-15 19:20:03.569060", "msg": "", "rc": 0, "start": "2025-12-15 19:20:03.564700", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005170", "end": "2025-12-15 19:19:57.772505", "msg": "", "rc": 0, "start": "2025-12-15 19:19:57.767335", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010266", "end": "2025-12-15 19:20:28.370701", "msg": "", "rc": 0, "start": "2025-12-15 19:20:28.360435", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011172", "end": "2025-12-15 19:20:28.384140", "msg": "", "rc": 0, "start": "2025-12-15 19:20:28.372968", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006309", "end": "2025-12-15 19:20:28.792637", "msg": "", "rc": 0, "start": "2025-12-15 19:20:28.786328", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006131", "end": "2025-12-15 16:20:28.994145", "msg": "", "rc": 0, "start": "2025-12-15 16:20:28.988014", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005113", "end": "2025-12-15 19:20:01.064226", "msg": "", "rc": 0, "start": "2025-12-15 19:20:01.059113", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004429", "end": "2025-12-15 19:20:07.024289", "msg": "", "rc": 0, "start": "2025-12-15 19:20:07.019860", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024259", "end": "2025-12-15 19:20:29.008962", "msg": "", "rc": 0, "start": "2025-12-15 19:20:28.984703", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005406", "end": "2025-12-15 19:20:29.310571", "msg": "", "rc": 0, "start": "2025-12-15 19:20:29.305165", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.021502", "end": "2025-12-15 19:20:29.989461", "msg": "", "rc": 0, "start": "2025-12-15 19:20:29.967959", "stderr": "", "stderr_lines": [], "stdout": "1.57", "stdout_lines": ["1.57"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:15 up 1 day, 8:52, 1 user, load average: 0.57, 0.40, 0.43\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.56\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:15 up 20 days, 6:11, 1 user, load average: 0.07, 0.12, 0.09\nDisk Usage: 23%\nMemory Usage: 80.2%\nCPU Load: 0.05\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:15 up 20 days, 6:31, 1 user, load average: 0.46, 0.62, 0.63\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.85\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:15 up 20 days, 7:44, 1 user, load average: 1.16, 0.76, 0.76\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 1.14\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:15 up 20 days, 8:30, 1 user, load average: 0.14, 0.10, 0.09\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:17 up 13 days, 8:46, 1 user, load average: 0.22, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.2%\nCPU Load: 0.18\nCPU Temp: 36.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:16 up 192 days, 10:53, 1 user, load average: 0.21, 0.18, 0.18\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.18\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:16 up 192 days, 10:53, 1 user, load average: 0.04, 0.09, 0.08\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.03\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:51 up 9 days, 7:09, 0 user, load average: 0.16, 0.18, 0.17\nDisk Usage: 48%\nMemory Usage: 71.0%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:46 up 16 days, 3:21, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:17 up 1 day, 8:51, 1 user, load average: 0.08, 0.03, 0.01\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:49 up 18 days, 22:14, 0 user, load average: 0.38, 0.45, 0.45\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.39\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:55 up 15 days, 8:35, 0 user, load average: 0.23, 0.22, 0.18\nDisk Usage: 75%\nMemory Usage: 58.4%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:20PM up 20 days, 6:10, 1 user, load averages: 0.20, 0.27, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:17 up 1 day, 8:51, 1 user, load average: 0.01, 0.05, 0.01\nDisk Usage: 79%\nMemory Usage: 13.2%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:18 up 5:55, 1 user, load average: 1.21, 1.20, 1.18\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.57\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:20:32.159480+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `7b714215599b4100a5161a14a9e93bf0` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:25:00.004602+00:00 |
| **Fin** | 2025-12-16T00:25:31.208064+00:00 |
| **Durée** | 31.2s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003058", "end": "2025-12-15 19:25:15.261310", "msg": "", "rc": 0, "start": "2025-12-15 19:25:15.258252", "stderr": "", "stderr_lines": [], "stdout": " 19:25:15 up 20 days, 6:16, 1 user, load average: 0.11, 0.07, 0.07", "stdout_lines": [" 19:25:15 up 20 days, 6:16, 1 user, load average: 0.11, 0.07, 0.07"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003638", "end": "2025-12-15 19:25:15.285190", "msg": "", "rc": 0, "start": "2025-12-15 19:25:15.281552", "stderr": "", "stderr_lines": [], "stdout": " 19:25:15 up 20 days, 8:35, 1 user, load average: 0.06, 0.09, 0.09", "stdout_lines": [" 19:25:15 up 20 days, 8:35, 1 user, load average: 0.06, 0.09, 0.09"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002828", "end": "2025-12-15 19:25:15.282893", "msg": "", "rc": 0, "start": "2025-12-15 19:25:15.280065", "stderr": "", "stderr_lines": [], "stdout": " 19:25:15 up 1 day, 8:57, 1 user, load average: 0.27, 0.39, 0.43", "stdout_lines": [" 19:25:15 up 1 day, 8:57, 1 user, load average: 0.27, 0.39, 0.43"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003879", "end": "2025-12-15 19:25:15.295432", "msg": "", "rc": 0, "start": "2025-12-15 19:25:15.291553", "stderr": "", "stderr_lines": [], "stdout": " 19:25:15 up 20 days, 7:49, 1 user, load average: 0.48, 0.56, 0.67", "stdout_lines": [" 19:25:15 up 20 days, 7:49, 1 user, load average: 0.48, 0.56, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003422", "end": "2025-12-15 19:24:51.340787", "msg": "", "rc": 0, "start": "2025-12-15 19:24:51.337365", "stderr": "", "stderr_lines": [], "stdout": " 19:24:51 up 9 days, 7:14, 0 user, load average: 0.04, 0.08, 0.13", "stdout_lines": [" 19:24:51 up 9 days, 7:14, 0 user, load average: 0.04, 0.08, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009358", "end": "2025-12-15 19:25:16.142836", "msg": "", "rc": 0, "start": "2025-12-15 19:25:16.133478", "stderr": "", "stderr_lines": [], "stdout": " 19:25:16 up 192 days, 10:58, 1 user, load average: 0.42, 0.26, 0.20", "stdout_lines": [" 19:25:16 up 192 days, 10:58, 1 user, load average: 0.42, 0.26, 0.20"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008595", "end": "2025-12-15 19:25:16.143604", "msg": "", "rc": 0, "start": "2025-12-15 19:25:16.135009", "stderr": "", "stderr_lines": [], "stdout": " 19:25:16 up 192 days, 10:58, 1 user, load average: 0.17, 0.13, 0.10", "stdout_lines": [" 19:25:16 up 192 days, 10:58, 1 user, load average: 0.17, 0.13, 0.10"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004191", "end": "2025-12-15 19:25:16.290811", "msg": "", "rc": 0, "start": "2025-12-15 19:25:15.286620", "stderr": "", "stderr_lines": [], "stdout": " 19:25:15 up 20 days, 6:36, 1 user, load average: 0.58, 0.64, 0.64", "stdout_lines": [" 19:25:15 up 20 days, 6:36, 1 user, load average: 0.58, 0.64, 0.64"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003685", "end": "2025-12-15 19:24:46.059250", "msg": "", "rc": 0, "start": "2025-12-15 19:24:46.055565", "stderr": "", "stderr_lines": [], "stdout": " 19:24:46 up 16 days, 3:26, 0 user, load average: 0.03, 0.04, 0.00", "stdout_lines": [" 19:24:46 up 16 days, 3:26, 0 user, load average: 0.03, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004786", "end": "2025-12-15 19:25:16.795995", "msg": "", "rc": 0, "start": "2025-12-15 19:25:16.791209", "stderr": "", "stderr_lines": [], "stdout": " 19:25:16 up 1 day, 8:56, 1 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 19:25:16 up 1 day, 8:56, 1 user, load average: 0.01, 0.03, 0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019803", "end": "2025-12-15 19:25:16.801665", "msg": "", "rc": 0, "start": "2025-12-15 19:25:16.781862", "stderr": "", "stderr_lines": [], "stdout": " 19:25:16 up 13 days, 8:51, 1 user, load average: 0.23, 0.14, 0.10", "stdout_lines": [" 19:25:16 up 13 days, 8:51, 1 user, load average: 0.23, 0.14, 0.10"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002754", "end": "2025-12-15 19:24:54.939749", "msg": "", "rc": 0, "start": "2025-12-15 19:24:54.936995", "stderr": "", "stderr_lines": [], "stdout": " 19:24:54 up 15 days, 8:40, 0 user, load average: 0.12, 0.14, 0.16", "stdout_lines": [" 19:24:54 up 15 days, 8:40, 0 user, load average: 0.12, 0.14, 0.16"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003889", "end": "2025-12-15 19:24:48.999875", "msg": "", "rc": 0, "start": "2025-12-15 19:24:48.995986", "stderr": "", "stderr_lines": [], "stdout": " 19:24:48 up 18 days, 22:19, 0 user, load average: 0.29, 0.37, 0.42", "stdout_lines": [" 19:24:48 up 18 days, 22:19, 0 user, load average: 0.29, 0.37, 0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004296", "end": "2025-12-15 16:25:17.160732", "msg": "", "rc": 0, "start": "2025-12-15 16:25:17.156436", "stderr": "", "stderr_lines": [], "stdout": " 4:25PM up 20 days, 6:15, 1 user, load averages: 0.26, 0.24, 0.24", "stdout_lines": [" 4:25PM up 20 days, 6:15, 1 user, load averages: 0.26, 0.24, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003958", "end": "2025-12-15 19:25:17.345861", "msg": "", "rc": 0, "start": "2025-12-15 19:25:17.341903", "stderr": "", "stderr_lines": [], "stdout": " 19:25:17 up 1 day, 8:56, 1 user, load average: 0.16, 0.07, 0.02", "stdout_lines": [" 19:25:17 up 1 day, 8:56, 1 user, load average: 0.16, 0.07, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005507", "end": "2025-12-15 19:25:17.848777", "msg": "", "rc": 0, "start": "2025-12-15 19:25:17.843270", "stderr": "", "stderr_lines": [], "stdout": " 19:25:17 up 6:00, 1 user, load average: 1.36, 1.23, 1.19", "stdout_lines": [" 19:25:17 up 6:00, 1 user, load average: 1.36, 1.23, 1.19"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004144", "end": "2025-12-15 19:25:18.185754", "msg": "", "rc": 0, "start": "2025-12-15 19:25:18.181610", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004352", "end": "2025-12-15 19:25:18.188583", "msg": "", "rc": 0, "start": "2025-12-15 19:25:18.184231", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005033", "end": "2025-12-15 19:25:18.230687", "msg": "", "rc": 0, "start": "2025-12-15 19:25:18.225654", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005652", "end": "2025-12-15 19:25:18.276034", "msg": "", "rc": 0, "start": "2025-12-15 19:25:18.270382", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005188", "end": "2025-12-15 19:25:18.283902", "msg": "", "rc": 0, "start": "2025-12-15 19:25:18.278714", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004839", "end": "2025-12-15 19:24:54.234515", "msg": "", "rc": 0, "start": "2025-12-15 19:24:54.229676", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005588", "end": "2025-12-15 19:24:48.433895", "msg": "", "rc": 0, "start": "2025-12-15 19:24:48.428307", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010600", "end": "2025-12-15 19:25:19.105693", "msg": "", "rc": 0, "start": "2025-12-15 19:25:19.095093", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011680", "end": "2025-12-15 19:25:19.123267", "msg": "", "rc": 0, "start": "2025-12-15 19:25:19.111587", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005774", "end": "2025-12-15 19:25:19.444721", "msg": "", "rc": 0, "start": "2025-12-15 19:25:19.438947", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005399", "end": "2025-12-15 16:25:19.708640", "msg": "", "rc": 0, "start": "2025-12-15 16:25:19.703241", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004757", "end": "2025-12-15 19:24:57.719652", "msg": "", "rc": 0, "start": "2025-12-15 19:24:57.714895", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005512", "end": "2025-12-15 19:24:51.801003", "msg": "", "rc": 0, "start": "2025-12-15 19:24:51.795491", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025313", "end": "2025-12-15 19:25:19.729007", "msg": "", "rc": 0, "start": "2025-12-15 19:25:19.703694", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005393", "end": "2025-12-15 19:25:20.002033", "msg": "", "rc": 0, "start": "2025-12-15 19:25:19.996640", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018582", "end": "2025-12-15 19:25:20.675904", "msg": "", "rc": 0, "start": "2025-12-15 19:25:20.657322", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004454", "end": "2025-12-15 19:25:20.989764", "msg": "", "rc": 0, "start": "2025-12-15 19:25:20.985310", "stderr": "", "stderr_lines": [], "stdout": "80.0%", "stdout_lines": ["80.0%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004172", "end": "2025-12-15 19:25:21.007956", "msg": "", "rc": 0, "start": "2025-12-15 19:25:21.003784", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004660", "end": "2025-12-15 19:25:21.051054", "msg": "", "rc": 0, "start": "2025-12-15 19:25:21.046394", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.2%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004402", "end": "2025-12-15 19:25:21.111416", "msg": "", "rc": 0, "start": "2025-12-15 19:25:21.107014", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006077", "end": "2025-12-15 19:25:21.145034", "msg": "", "rc": 0, "start": "2025-12-15 19:25:21.138957", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003845", "end": "2025-12-15 19:24:57.141160", "msg": "", "rc": 0, "start": "2025-12-15 19:24:57.137315", "stderr": "", "stderr_lines": [], "stdout": "70.7%", "stdout_lines": ["70.7%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005202", "end": "2025-12-15 19:24:51.342070", "msg": "", "rc": 0, "start": "2025-12-15 19:24:51.336868", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011118", "end": "2025-12-15 19:25:21.895100", "msg": "", "rc": 0, "start": "2025-12-15 19:25:21.883982", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012201", "end": "2025-12-15 19:25:21.920092", "msg": "", "rc": 0, "start": "2025-12-15 19:25:21.907891", "stderr": "", "stderr_lines": [], "stdout": "12.2%", "stdout_lines": ["12.2%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005864", "end": "2025-12-15 19:25:22.355099", "msg": "", "rc": 0, "start": "2025-12-15 19:25:22.349235", "stderr": "", "stderr_lines": [], "stdout": "34.2%", "stdout_lines": ["34.2%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005194", "end": "2025-12-15 16:25:22.496040", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:25:22.490846", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003612", "end": "2025-12-15 19:25:00.525710", "msg": "", "rc": 0, "start": "2025-12-15 19:25:00.522098", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004443", "end": "2025-12-15 19:24:54.648655", "msg": "", "rc": 0, "start": "2025-12-15 19:24:54.644212", "stderr": "", "stderr_lines": [], "stdout": "25.5%", "stdout_lines": ["25.5%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025593", "end": "2025-12-15 19:25:22.549873", "msg": "", "rc": 0, "start": "2025-12-15 19:25:22.524280", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.1%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005681", "end": "2025-12-15 19:25:22.884099", "msg": "", "rc": 0, "start": "2025-12-15 19:25:22.878418", "stderr": "", "stderr_lines": [], "stdout": "13.3%", "stdout_lines": ["13.3%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.019809", "end": "2025-12-15 19:25:23.514422", "msg": "", "rc": 0, "start": "2025-12-15 19:25:23.494613", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005129", "end": "2025-12-15 19:25:23.922166", "msg": "", "rc": 0, "start": "2025-12-15 19:25:23.917037", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005980", "end": "2025-12-15 19:25:23.956154", "msg": "", "rc": 0, "start": "2025-12-15 19:25:23.950174", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004919", "end": "2025-12-15 19:25:23.945218", "msg": "", "rc": 0, "start": "2025-12-15 19:25:23.940299", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003514", "end": "2025-12-15 19:25:24.022456", "msg": "", "rc": 0, "start": "2025-12-15 19:25:24.018942", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007033", "end": "2025-12-15 19:25:24.011014", "msg": "", "rc": 0, "start": "2025-12-15 19:25:24.003981", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002698", "end": "2025-12-15 19:25:00.092484", "msg": "", "rc": 0, "start": "2025-12-15 19:25:00.089786", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003256", "end": "2025-12-15 19:24:54.230625", "msg": "", "rc": 0, "start": "2025-12-15 19:24:54.227369", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011934", "end": "2025-12-15 19:25:24.903976", "msg": "", "rc": 0, "start": "2025-12-15 19:25:24.892042", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013102", "end": "2025-12-15 19:25:24.923824", "msg": "", "rc": 0, "start": "2025-12-15 19:25:24.910722", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003805", "end": "2025-12-15 19:25:25.329469", "msg": "", "rc": 0, "start": "2025-12-15 19:25:25.325664", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003040", "end": "2025-12-15 19:24:57.541684", "msg": "", "rc": 0, "start": "2025-12-15 19:24:57.538644", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003991", "end": "2025-12-15 16:25:25.524458", "msg": "", "rc": 0, "start": "2025-12-15 16:25:25.520467", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002553", "end": "2025-12-15 19:25:03.543353", "msg": "", "rc": 0, "start": "2025-12-15 19:25:03.540800", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028517", "end": "2025-12-15 19:25:25.594113", "msg": "", "rc": 0, "start": "2025-12-15 19:25:25.565596", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002990", "end": "2025-12-15 19:25:25.923174", "msg": "", "rc": 0, "start": "2025-12-15 19:25:25.920184", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.019301", "end": "2025-12-15 19:25:26.435952", "msg": "", "rc": 0, "start": "2025-12-15 19:25:26.416651", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004353", "end": "2025-12-15 19:25:26.894707", "msg": "", "rc": 0, "start": "2025-12-15 19:25:26.890354", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003943", "end": "2025-12-15 19:25:26.916775", "msg": "", "rc": 0, "start": "2025-12-15 19:25:26.912832", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004536", "end": "2025-12-15 19:25:26.957452", "msg": "", "rc": 0, "start": "2025-12-15 19:25:26.952916", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005436", "end": "2025-12-15 19:25:27.006471", "msg": "", "rc": 0, "start": "2025-12-15 19:25:27.001035", "stderr": "", "stderr_lines": [], "stdout": "0.49", "stdout_lines": ["0.49"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005362", "end": "2025-12-15 19:25:27.050091", "msg": "", "rc": 0, "start": "2025-12-15 19:25:27.044729", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004392", "end": "2025-12-15 19:25:02.968390", "msg": "", "rc": 0, "start": "2025-12-15 19:25:02.963998", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005017", "end": "2025-12-15 19:24:57.136624", "msg": "", "rc": 0, "start": "2025-12-15 19:24:57.131607", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010220", "end": "2025-12-15 19:25:27.781307", "msg": "", "rc": 0, "start": "2025-12-15 19:25:27.771087", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011222", "end": "2025-12-15 19:25:27.786665", "msg": "", "rc": 0, "start": "2025-12-15 19:25:27.775443", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005650", "end": "2025-12-15 19:25:28.178840", "msg": "", "rc": 0, "start": "2025-12-15 19:25:28.173190", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004986", "end": "2025-12-15 19:25:00.452661", "msg": "", "rc": 0, "start": "2025-12-15 19:25:00.447675", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006033", "end": "2025-12-15 16:25:28.392670", "msg": "", "rc": 0, "start": "2025-12-15 16:25:28.386637", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004160", "end": "2025-12-15 19:25:06.432976", "msg": "", "rc": 0, "start": "2025-12-15 19:25:06.428816", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024901", "end": "2025-12-15 19:25:28.413461", "msg": "", "rc": 0, "start": "2025-12-15 19:25:28.388560", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005264", "end": "2025-12-15 19:25:28.728724", "msg": "", "rc": 0, "start": "2025-12-15 19:25:28.723460", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.021142", "end": "2025-12-15 19:25:29.306935", "msg": "", "rc": 0, "start": "2025-12-15 19:25:29.285793", "stderr": "", "stderr_lines": [], "stdout": "1.65", "stdout_lines": ["1.65"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:15 up 1 day, 8:57, 1 user, load average: 0.27, 0.39, 0.43\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.38\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:15 up 20 days, 6:16, 1 user, load average: 0.11, 0.07, 0.07\nDisk Usage: 23%\nMemory Usage: 80.0%\nCPU Load: 0.08\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:15 up 20 days, 6:36, 1 user, load average: 0.58, 0.64, 0.64\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.63\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:15 up 20 days, 7:49, 1 user, load average: 0.48, 0.56, 0.67\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.49\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:15 up 20 days, 8:35, 1 user, load average: 0.06, 0.09, 0.09\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:16 up 13 days, 8:51, 1 user, load average: 0.23, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 20.1%\nCPU Load: 0.27\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:16 up 192 days, 10:58, 1 user, load average: 0.42, 0.26, 0.20\nDisk Usage: 6%\nMemory Usage: 12.2%\nCPU Load: 0.32\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:16 up 192 days, 10:58, 1 user, load average: 0.17, 0.13, 0.10\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.13\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:51 up 9 days, 7:14, 0 user, load average: 0.04, 0.08, 0.13\nDisk Usage: 48%\nMemory Usage: 70.7%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:46 up 16 days, 3:26, 0 user, load average: 0.03, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:16 up 1 day, 8:56, 1 user, load average: 0.01, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.2%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:48 up 18 days, 22:19, 0 user, load average: 0.29, 0.37, 0.42\nDisk Usage: 28%\nMemory Usage: 25.5%\nCPU Load: 0.54\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:54 up 15 days, 8:40, 0 user, load average: 0.12, 0.14, 0.16\nDisk Usage: 75%\nMemory Usage: 59.4%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:25PM up 20 days, 6:15, 1 user, load averages: 0.26, 0.24, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:17 up 1 day, 8:56, 1 user, load average: 0.16, 0.07, 0.02\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:17 up 6:00, 1 user, load average: 1.36, 1.23, 1.19\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.65\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:25:31.280813+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `e04ac3936e0244f39537ed3c9c136872` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:30:00.001906+00:00 |
| **Fin** | 2025-12-16T00:30:32.010698+00:00 |
| **Durée** | 32.0s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003082", "end": "2025-12-15 19:30:16.112659", "msg": "", "rc": 0, "start": "2025-12-15 19:30:16.109577", "stderr": "", "stderr_lines": [], "stdout": " 19:30:16 up 20 days, 6:21, 1 user, load average: 0.12, 0.09, 0.08", "stdout_lines": [" 19:30:16 up 20 days, 6:21, 1 user, load average: 0.12, 0.09, 0.08"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003693", "end": "2025-12-15 19:30:16.127758", "msg": "", "rc": 0, "start": "2025-12-15 19:30:16.124065", "stderr": "", "stderr_lines": [], "stdout": " 19:30:16 up 20 days, 8:40, 1 user, load average: 0.06, 0.09, 0.08", "stdout_lines": [" 19:30:16 up 20 days, 8:40, 1 user, load average: 0.06, 0.09, 0.08"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003360", "end": "2025-12-15 19:30:16.122126", "msg": "", "rc": 0, "start": "2025-12-15 19:30:16.118766", "stderr": "", "stderr_lines": [], "stdout": " 19:30:16 up 20 days, 6:41, 1 user, load average: 0.71, 0.67, 0.65", "stdout_lines": [" 19:30:16 up 20 days, 6:41, 1 user, load average: 0.71, 0.67, 0.65"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003888", "end": "2025-12-15 19:30:16.145330", "msg": "", "rc": 0, "start": "2025-12-15 19:30:16.141442", "stderr": "", "stderr_lines": [], "stdout": " 19:30:16 up 20 days, 7:54, 1 user, load average: 0.78, 0.64, 0.66", "stdout_lines": [" 19:30:16 up 20 days, 7:54, 1 user, load average: 0.78, 0.64, 0.66"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002918", "end": "2025-12-15 19:30:16.153964", "msg": "", "rc": 0, "start": "2025-12-15 19:30:16.151046", "stderr": "", "stderr_lines": [], "stdout": " 19:30:16 up 1 day, 9:02, 1 user, load average: 0.35, 0.36, 0.40", "stdout_lines": [" 19:30:16 up 1 day, 9:02, 1 user, load average: 0.35, 0.36, 0.40"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002918", "end": "2025-12-15 19:29:52.257040", "msg": "", "rc": 0, "start": "2025-12-15 19:29:52.254122", "stderr": "", "stderr_lines": [], "stdout": " 19:29:52 up 9 days, 7:19, 0 user, load average: 0.05, 0.08, 0.10", "stdout_lines": [" 19:29:52 up 9 days, 7:19, 0 user, load average: 0.05, 0.08, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003506", "end": "2025-12-15 19:29:46.419629", "msg": "", "rc": 0, "start": "2025-12-15 19:29:46.416123", "stderr": "", "stderr_lines": [], "stdout": " 19:29:46 up 16 days, 3:31, 0 user, load average: 0.10, 0.06, 0.01", "stdout_lines": [" 19:29:46 up 16 days, 3:31, 0 user, load average: 0.10, 0.06, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008644", "end": "2025-12-15 19:30:17.044297", "msg": "", "rc": 0, "start": "2025-12-15 19:30:17.035653", "stderr": "", "stderr_lines": [], "stdout": " 19:30:17 up 192 days, 11:03, 1 user, load average: 0.16, 0.12, 0.09", "stdout_lines": [" 19:30:17 up 192 days, 11:03, 1 user, load average: 0.16, 0.12, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009456", "end": "2025-12-15 19:30:17.045148", "msg": "", "rc": 0, "start": "2025-12-15 19:30:17.035692", "stderr": "", "stderr_lines": [], "stdout": " 19:30:17 up 192 days, 11:03, 1 user, load average: 0.49, 0.35, 0.25", "stdout_lines": [" 19:30:17 up 192 days, 11:03, 1 user, load average: 0.49, 0.35, 0.25"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005065", "end": "2025-12-15 19:30:17.436283", "msg": "", "rc": 0, "start": "2025-12-15 19:30:17.431218", "stderr": "", "stderr_lines": [], "stdout": " 19:30:17 up 1 day, 9:01, 1 user, load average: 0.04, 0.04, 0.00", "stdout_lines": [" 19:30:17 up 1 day, 9:01, 1 user, load average: 0.04, 0.04, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003367", "end": "2025-12-15 19:29:49.735140", "msg": "", "rc": 0, "start": "2025-12-15 19:29:49.731773", "stderr": "", "stderr_lines": [], "stdout": " 19:29:49 up 18 days, 22:24, 0 user, load average: 0.45, 0.39, 0.41", "stdout_lines": [" 19:29:49 up 18 days, 22:24, 0 user, load average: 0.45, 0.39, 0.41"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002824", "end": "2025-12-15 19:29:55.672255", "msg": "", "rc": 0, "start": "2025-12-15 19:29:55.669431", "stderr": "", "stderr_lines": [], "stdout": " 19:29:55 up 15 days, 8:45, 0 user, load average: 0.06, 0.11, 0.14", "stdout_lines": [" 19:29:55 up 15 days, 8:45, 0 user, load average: 0.06, 0.11, 0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004352", "end": "2025-12-15 16:30:17.686878", "msg": "", "rc": 0, "start": "2025-12-15 16:30:17.682526", "stderr": "", "stderr_lines": [], "stdout": " 4:30PM up 20 days, 6:20, 1 user, load averages: 0.23, 0.22, 0.23", "stdout_lines": [" 4:30PM up 20 days, 6:20, 1 user, load averages: 0.23, 0.22, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019394", "end": "2025-12-15 19:30:17.770872", "msg": "", "rc": 0, "start": "2025-12-15 19:30:17.751478", "stderr": "", "stderr_lines": [], "stdout": " 19:30:17 up 13 days, 8:56, 1 user, load average: 0.29, 0.15, 0.10", "stdout_lines": [" 19:30:17 up 13 days, 8:56, 1 user, load average: 0.29, 0.15, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003711", "end": "2025-12-15 19:30:18.023295", "msg": "", "rc": 0, "start": "2025-12-15 19:30:18.019584", "stderr": "", "stderr_lines": [], "stdout": " 19:30:18 up 1 day, 9:01, 1 user, load average: 0.05, 0.05, 0.00", "stdout_lines": [" 19:30:18 up 1 day, 9:01, 1 user, load average: 0.05, 0.05, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.018025", "end": "2025-12-15 19:30:18.631188", "msg": "", "rc": 0, "start": "2025-12-15 19:30:18.613163", "stderr": "", "stderr_lines": [], "stdout": " 19:30:18 up 6:05, 1 user, load average: 1.43, 1.26, 1.20", "stdout_lines": [" 19:30:18 up 6:05, 1 user, load average: 1.43, 1.26, 1.20"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004405", "end": "2025-12-15 19:30:19.058154", "msg": "", "rc": 0, "start": "2025-12-15 19:30:19.053749", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004066", "end": "2025-12-15 19:30:19.076871", "msg": "", "rc": 0, "start": "2025-12-15 19:30:19.072805", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004843", "end": "2025-12-15 19:30:19.099158", "msg": "", "rc": 0, "start": "2025-12-15 19:30:19.094315", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005653", "end": "2025-12-15 19:30:19.161457", "msg": "", "rc": 0, "start": "2025-12-15 19:30:19.155804", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005007", "end": "2025-12-15 19:30:19.207594", "msg": "", "rc": 0, "start": "2025-12-15 19:30:19.202587", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005091", "end": "2025-12-15 19:29:55.205690", "msg": "", "rc": 0, "start": "2025-12-15 19:29:55.200599", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005636", "end": "2025-12-15 19:29:49.395562", "msg": "", "rc": 0, "start": "2025-12-15 19:29:49.389926", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011001", "end": "2025-12-15 19:30:20.078397", "msg": "", "rc": 0, "start": "2025-12-15 19:30:20.067396", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011819", "end": "2025-12-15 19:30:20.113204", "msg": "", "rc": 0, "start": "2025-12-15 19:30:20.101385", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006238", "end": "2025-12-15 19:30:20.458068", "msg": "", "rc": 0, "start": "2025-12-15 19:30:20.451830", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005296", "end": "2025-12-15 19:29:52.738239", "msg": "", "rc": 0, "start": "2025-12-15 19:29:52.732943", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005556", "end": "2025-12-15 16:30:20.721739", "msg": "", "rc": 0, "start": "2025-12-15 16:30:20.716183", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004737", "end": "2025-12-15 19:29:58.733288", "msg": "", "rc": 0, "start": "2025-12-15 19:29:58.728551", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025083", "end": "2025-12-15 19:30:20.638244", "msg": "", "rc": 0, "start": "2025-12-15 19:30:20.613161", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005192", "end": "2025-12-15 19:30:21.033213", "msg": "", "rc": 0, "start": "2025-12-15 19:30:21.028021", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.015997", "end": "2025-12-15 19:30:21.544512", "msg": "", "rc": 0, "start": "2025-12-15 19:30:21.528515", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004385", "end": "2025-12-15 19:30:21.982469", "msg": "", "rc": 0, "start": "2025-12-15 19:30:21.978084", "stderr": "", "stderr_lines": [], "stdout": "80.1%", "stdout_lines": ["80.1%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004159", "end": "2025-12-15 19:30:22.011952", "msg": "", "rc": 0, "start": "2025-12-15 19:30:22.007793", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005641", "end": "2025-12-15 19:30:22.024009", "msg": "", "rc": 0, "start": "2025-12-15 19:30:22.018368", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004993", "end": "2025-12-15 19:30:22.112791", "msg": "", "rc": 0, "start": "2025-12-15 19:30:22.107798", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005719", "end": "2025-12-15 19:30:22.111045", "msg": "", "rc": 0, "start": "2025-12-15 19:30:22.105326", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004093", "end": "2025-12-15 19:29:58.098304", "msg": "", "rc": 0, "start": "2025-12-15 19:29:58.094211", "stderr": "", "stderr_lines": [], "stdout": "70.8%", "stdout_lines": ["70.8%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005405", "end": "2025-12-15 19:29:52.264843", "msg": "", "rc": 0, "start": "2025-12-15 19:29:52.259438", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011952", "end": "2025-12-15 19:30:22.860075", "msg": "", "rc": 0, "start": "2025-12-15 19:30:22.848123", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012066", "end": "2025-12-15 19:30:22.872972", "msg": "", "rc": 0, "start": "2025-12-15 19:30:22.860906", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005818", "end": "2025-12-15 19:30:23.310636", "msg": "", "rc": 0, "start": "2025-12-15 19:30:23.304818", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005399", "end": "2025-12-15 16:30:23.480239", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:30:23.474840", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003621", "end": "2025-12-15 19:30:01.498502", "msg": "", "rc": 0, "start": "2025-12-15 19:30:01.494881", "stderr": "", "stderr_lines": [], "stdout": "58.8%", "stdout_lines": ["58.8%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006487", "end": "2025-12-15 19:29:55.603132", "msg": "", "rc": 0, "start": "2025-12-15 19:29:55.596645", "stderr": "", "stderr_lines": [], "stdout": "25.4%", "stdout_lines": ["25.4%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025935", "end": "2025-12-15 19:30:23.492375", "msg": "", "rc": 0, "start": "2025-12-15 19:30:23.466440", "stderr": "", "stderr_lines": [], "stdout": "18.8%", "stdout_lines": ["18.8%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005401", "end": "2025-12-15 19:30:23.875880", "msg": "", "rc": 0, "start": "2025-12-15 19:30:23.870479", "stderr": "", "stderr_lines": [], "stdout": "13.7%", "stdout_lines": ["13.7%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.018374", "end": "2025-12-15 19:30:24.366880", "msg": "", "rc": 0, "start": "2025-12-15 19:30:24.348506", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004890", "end": "2025-12-15 19:30:24.786274", "msg": "", "rc": 0, "start": "2025-12-15 19:30:24.781384", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005154", "end": "2025-12-15 19:30:24.799116", "msg": "", "rc": 0, "start": "2025-12-15 19:30:24.793962", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005612", "end": "2025-12-15 19:30:24.843292", "msg": "", "rc": 0, "start": "2025-12-15 19:30:24.837680", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003214", "end": "2025-12-15 19:30:24.909735", "msg": "", "rc": 0, "start": "2025-12-15 19:30:24.906521", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007227", "end": "2025-12-15 19:30:24.921368", "msg": "", "rc": 0, "start": "2025-12-15 19:30:24.914141", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002618", "end": "2025-12-15 19:30:00.946515", "msg": "", "rc": 0, "start": "2025-12-15 19:30:00.943897", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003051", "end": "2025-12-15 19:29:55.085353", "msg": "", "rc": 0, "start": "2025-12-15 19:29:55.082302", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013135", "end": "2025-12-15 19:30:25.727747", "msg": "", "rc": 0, "start": "2025-12-15 19:30:25.714612", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011866", "end": "2025-12-15 19:30:25.765731", "msg": "", "rc": 0, "start": "2025-12-15 19:30:25.753865", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003175", "end": "2025-12-15 19:30:26.156372", "msg": "", "rc": 0, "start": "2025-12-15 19:30:26.153197", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002647", "end": "2025-12-15 19:29:58.391544", "msg": "", "rc": 0, "start": "2025-12-15 19:29:58.388897", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002447", "end": "2025-12-15 19:30:04.339744", "msg": "", "rc": 0, "start": "2025-12-15 19:30:04.337297", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004016", "end": "2025-12-15 16:30:26.362766", "msg": "", "rc": 0, "start": "2025-12-15 16:30:26.358750", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028471", "end": "2025-12-15 19:30:26.299709", "msg": "", "rc": 0, "start": "2025-12-15 19:30:26.271238", "stderr": "", "stderr_lines": [], "stdout": "35.8°C", "stdout_lines": ["35.8°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002946", "end": "2025-12-15 19:30:26.688068", "msg": "", "rc": 0, "start": "2025-12-15 19:30:26.685122", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005969", "end": "2025-12-15 19:30:27.197648", "msg": "", "rc": 0, "start": "2025-12-15 19:30:27.191679", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004319", "end": "2025-12-15 19:30:27.643950", "msg": "", "rc": 0, "start": "2025-12-15 19:30:27.639631", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004099", "end": "2025-12-15 19:30:27.639855", "msg": "", "rc": 0, "start": "2025-12-15 19:30:27.635756", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004575", "end": "2025-12-15 19:30:27.693217", "msg": "", "rc": 0, "start": "2025-12-15 19:30:27.688642", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005034", "end": "2025-12-15 19:30:27.747690", "msg": "", "rc": 0, "start": "2025-12-15 19:30:27.742656", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005134", "end": "2025-12-15 19:30:27.758730", "msg": "", "rc": 0, "start": "2025-12-15 19:30:27.753596", "stderr": "", "stderr_lines": [], "stdout": "0.82", "stdout_lines": ["0.82"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004749", "end": "2025-12-15 19:30:03.745136", "msg": "", "rc": 0, "start": "2025-12-15 19:30:03.740387", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005051", "end": "2025-12-15 19:29:57.839483", "msg": "", "rc": 0, "start": "2025-12-15 19:29:57.834432", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010223", "end": "2025-12-15 19:30:28.461780", "msg": "", "rc": 0, "start": "2025-12-15 19:30:28.451557", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011230", "end": "2025-12-15 19:30:28.521957", "msg": "", "rc": 0, "start": "2025-12-15 19:30:28.510727", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005483", "end": "2025-12-15 19:30:28.953169", "msg": "", "rc": 0, "start": "2025-12-15 19:30:28.947686", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005030", "end": "2025-12-15 19:30:01.153033", "msg": "", "rc": 0, "start": "2025-12-15 19:30:01.148003", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004437", "end": "2025-12-15 19:30:07.088408", "msg": "", "rc": 0, "start": "2025-12-15 19:30:07.083971", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006346", "end": "2025-12-15 16:30:29.090788", "msg": "", "rc": 0, "start": "2025-12-15 16:30:29.084442", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024561", "end": "2025-12-15 19:30:29.162265", "msg": "", "rc": 0, "start": "2025-12-15 19:30:29.137704", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005259", "end": "2025-12-15 19:30:29.512094", "msg": "", "rc": 0, "start": "2025-12-15 19:30:29.506835", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.015760", "end": "2025-12-15 19:30:29.945775", "msg": "", "rc": 0, "start": "2025-12-15 19:30:29.930015", "stderr": "", "stderr_lines": [], "stdout": "1.51", "stdout_lines": ["1.51"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:16 up 1 day, 9:02, 1 user, load average: 0.35, 0.36, 0.40\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.38\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:16 up 20 days, 6:21, 1 user, load average: 0.12, 0.09, 0.08\nDisk Usage: 23%\nMemory Usage: 80.1%\nCPU Load: 0.31\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:16 up 20 days, 6:41, 1 user, load average: 0.71, 0.67, 0.65\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.83\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:16 up 20 days, 7:54, 1 user, load average: 0.78, 0.64, 0.66\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.82\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:16 up 20 days, 8:40, 1 user, load average: 0.06, 0.09, 0.08\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:17 up 13 days, 8:56, 1 user, load average: 0.29, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 18.8%\nCPU Load: 0.25\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:17 up 192 days, 11:03, 1 user, load average: 0.49, 0.35, 0.25\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.41\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:17 up 192 days, 11:03, 1 user, load average: 0.16, 0.12, 0.09\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.12\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:52 up 9 days, 7:19, 0 user, load average: 0.05, 0.08, 0.10\nDisk Usage: 48%\nMemory Usage: 70.8%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:46 up 16 days, 3:31, 0 user, load average: 0.10, 0.06, 0.01\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:17 up 1 day, 9:01, 1 user, load average: 0.04, 0.04, 0.00\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:49 up 18 days, 22:24, 0 user, load average: 0.45, 0.39, 0.41\nDisk Usage: 28%\nMemory Usage: 25.4%\nCPU Load: 0.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:55 up 15 days, 8:45, 0 user, load average: 0.06, 0.11, 0.14\nDisk Usage: 75%\nMemory Usage: 58.8%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:30PM up 20 days, 6:20, 1 user, load averages: 0.23, 0.22, 0.23\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:18 up 1 day, 9:01, 1 user, load average: 0.05, 0.05, 0.00\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:18 up 6:05, 1 user, load average: 1.43, 1.26, 1.20\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.51\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:30:32.091037+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `b38046d03c47466ca2e08ffafd2da046` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:35:00.001694+00:00 |
| **Fin** | 2025-12-16T00:35:31.454701+00:00 |
| **Durée** | 31.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003204", "end": "2025-12-15 19:35:15.665266", "msg": "", "rc": 0, "start": "2025-12-15 19:35:15.662062", "stderr": "", "stderr_lines": [], "stdout": " 19:35:15 up 20 days, 6:26, 1 user, load average: 0.10, 0.10, 0.09", "stdout_lines": [" 19:35:15 up 20 days, 6:26, 1 user, load average: 0.10, 0.10, 0.09"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003036", "end": "2025-12-15 19:35:15.684696", "msg": "", "rc": 0, "start": "2025-12-15 19:35:15.681660", "stderr": "", "stderr_lines": [], "stdout": " 19:35:15 up 20 days, 8:45, 1 user, load average: 0.12, 0.08, 0.08", "stdout_lines": [" 19:35:15 up 20 days, 8:45, 1 user, load average: 0.12, 0.08, 0.08"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002807", "end": "2025-12-15 19:35:15.701191", "msg": "", "rc": 0, "start": "2025-12-15 19:35:15.698384", "stderr": "", "stderr_lines": [], "stdout": " 19:35:15 up 1 day, 9:07, 1 user, load average: 0.55, 0.38, 0.39", "stdout_lines": [" 19:35:15 up 1 day, 9:07, 1 user, load average: 0.55, 0.38, 0.39"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004029", "end": "2025-12-15 19:35:15.696809", "msg": "", "rc": 0, "start": "2025-12-15 19:35:15.692780", "stderr": "", "stderr_lines": [], "stdout": " 19:35:15 up 20 days, 7:59, 1 user, load average: 0.80, 0.57, 0.62", "stdout_lines": [" 19:35:15 up 20 days, 7:59, 1 user, load average: 0.80, 0.57, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002795", "end": "2025-12-15 19:34:51.721574", "msg": "", "rc": 0, "start": "2025-12-15 19:34:51.718779", "stderr": "", "stderr_lines": [], "stdout": " 19:34:51 up 9 days, 7:24, 0 user, load average: 0.06, 0.09, 0.09", "stdout_lines": [" 19:34:51 up 9 days, 7:24, 0 user, load average: 0.06, 0.09, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008471", "end": "2025-12-15 19:35:16.496288", "msg": "", "rc": 0, "start": "2025-12-15 19:35:16.487817", "stderr": "", "stderr_lines": [], "stdout": " 19:35:16 up 192 days, 11:08, 1 user, load average: 0.19, 0.12, 0.10", "stdout_lines": [" 19:35:16 up 192 days, 11:08, 1 user, load average: 0.19, 0.12, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009481", "end": "2025-12-15 19:35:16.531953", "msg": "", "rc": 0, "start": "2025-12-15 19:35:16.522472", "stderr": "", "stderr_lines": [], "stdout": " 19:35:16 up 192 days, 11:08, 1 user, load average: 0.93, 0.47, 0.30", "stdout_lines": [" 19:35:16 up 192 days, 11:08, 1 user, load average: 0.93, 0.47, 0.30"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003748", "end": "2025-12-15 19:35:16.684490", "msg": "", "rc": 0, "start": "2025-12-15 19:35:15.680742", "stderr": "", "stderr_lines": [], "stdout": " 19:35:15 up 20 days, 6:46, 1 user, load average: 0.96, 0.73, 0.66", "stdout_lines": [" 19:35:15 up 20 days, 6:46, 1 user, load average: 0.96, 0.73, 0.66"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003366", "end": "2025-12-15 19:34:46.427625", "msg": "", "rc": 0, "start": "2025-12-15 19:34:46.424259", "stderr": "", "stderr_lines": [], "stdout": " 19:34:46 up 16 days, 3:36, 0 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 19:34:46 up 16 days, 3:36, 0 user, load average: 0.01, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004803", "end": "2025-12-15 19:35:17.165466", "msg": "", "rc": 0, "start": "2025-12-15 19:35:17.160663", "stderr": "", "stderr_lines": [], "stdout": " 19:35:17 up 1 day, 9:06, 1 user, load average: 0.02, 0.04, 0.00", "stdout_lines": [" 19:35:17 up 1 day, 9:06, 1 user, load average: 0.02, 0.04, 0.00"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002632", "end": "2025-12-15 19:34:55.275511", "msg": "", "rc": 0, "start": "2025-12-15 19:34:55.272879", "stderr": "", "stderr_lines": [], "stdout": " 19:34:55 up 15 days, 8:50, 0 user, load average: 0.25, 0.14, 0.13", "stdout_lines": [" 19:34:55 up 15 days, 8:50, 0 user, load average: 0.25, 0.14, 0.13"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003309", "end": "2025-12-15 19:34:49.337921", "msg": "", "rc": 0, "start": "2025-12-15 19:34:49.334612", "stderr": "", "stderr_lines": [], "stdout": " 19:34:49 up 18 days, 22:29, 0 user, load average: 0.35, 0.40, 0.42", "stdout_lines": [" 19:34:49 up 18 days, 22:29, 0 user, load average: 0.35, 0.40, 0.42"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019307", "end": "2025-12-15 19:35:17.160546", "msg": "", "rc": 0, "start": "2025-12-15 19:35:17.141239", "stderr": "", "stderr_lines": [], "stdout": " 19:35:17 up 13 days, 9:01, 1 user, load average: 0.31, 0.16, 0.11", "stdout_lines": [" 19:35:17 up 13 days, 9:01, 1 user, load average: 0.31, 0.16, 0.11"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004316", "end": "2025-12-15 16:35:17.529581", "msg": "", "rc": 0, "start": "2025-12-15 16:35:17.525265", "stderr": "", "stderr_lines": [], "stdout": " 4:35PM up 20 days, 6:25, 1 user, load averages: 0.23, 0.28, 0.25", "stdout_lines": [" 4:35PM up 20 days, 6:25, 1 user, load averages: 0.23, 0.28, 0.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003939", "end": "2025-12-15 19:35:17.742075", "msg": "", "rc": 0, "start": "2025-12-15 19:35:17.738136", "stderr": "", "stderr_lines": [], "stdout": " 19:35:17 up 1 day, 9:06, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 19:35:17 up 1 day, 9:06, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009898", "end": "2025-12-15 19:35:18.188557", "msg": "", "rc": 0, "start": "2025-12-15 19:35:18.178659", "stderr": "", "stderr_lines": [], "stdout": " 19:35:18 up 6:10, 1 user, load average: 1.47, 1.31, 1.23", "stdout_lines": [" 19:35:18 up 6:10, 1 user, load average: 1.47, 1.31, 1.23"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004159", "end": "2025-12-15 19:35:18.598230", "msg": "", "rc": 0, "start": "2025-12-15 19:35:18.594071", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004645", "end": "2025-12-15 19:35:18.603492", "msg": "", "rc": 0, "start": "2025-12-15 19:35:18.598847", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004998", "end": "2025-12-15 19:35:18.645291", "msg": "", "rc": 0, "start": "2025-12-15 19:35:18.640293", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005339", "end": "2025-12-15 19:35:18.680017", "msg": "", "rc": 0, "start": "2025-12-15 19:35:18.674678", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005050", "end": "2025-12-15 19:35:18.690322", "msg": "", "rc": 0, "start": "2025-12-15 19:35:18.685272", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005083", "end": "2025-12-15 19:34:54.696954", "msg": "", "rc": 0, "start": "2025-12-15 19:34:54.691871", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005397", "end": "2025-12-15 19:34:48.826249", "msg": "", "rc": 0, "start": "2025-12-15 19:34:48.820852", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010752", "end": "2025-12-15 19:35:19.558354", "msg": "", "rc": 0, "start": "2025-12-15 19:35:19.547602", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011559", "end": "2025-12-15 19:35:19.591868", "msg": "", "rc": 0, "start": "2025-12-15 19:35:19.580309", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005756", "end": "2025-12-15 19:35:19.921404", "msg": "", "rc": 0, "start": "2025-12-15 19:35:19.915648", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005347", "end": "2025-12-15 19:34:52.139484", "msg": "", "rc": 0, "start": "2025-12-15 19:34:52.134137", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005460", "end": "2025-12-15 16:35:20.156639", "msg": "", "rc": 0, "start": "2025-12-15 16:35:20.151179", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005016", "end": "2025-12-15 19:34:58.155951", "msg": "", "rc": 0, "start": "2025-12-15 19:34:58.150935", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025268", "end": "2025-12-15 19:35:20.105645", "msg": "", "rc": 0, "start": "2025-12-15 19:35:20.080377", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005437", "end": "2025-12-15 19:35:20.487641", "msg": "", "rc": 0, "start": "2025-12-15 19:35:20.482204", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.017219", "end": "2025-12-15 19:35:20.958021", "msg": "", "rc": 0, "start": "2025-12-15 19:35:20.940802", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004741", "end": "2025-12-15 19:35:21.423659", "msg": "", "rc": 0, "start": "2025-12-15 19:35:21.418918", "stderr": "", "stderr_lines": [], "stdout": "80.2%", "stdout_lines": ["80.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004226", "end": "2025-12-15 19:35:21.436404", "msg": "", "rc": 0, "start": "2025-12-15 19:35:21.432178", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005327", "end": "2025-12-15 19:35:21.494928", "msg": "", "rc": 0, "start": "2025-12-15 19:35:21.489601", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004897", "end": "2025-12-15 19:35:21.508165", "msg": "", "rc": 0, "start": "2025-12-15 19:35:21.503268", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004956", "end": "2025-12-15 19:35:21.505079", "msg": "", "rc": 0, "start": "2025-12-15 19:35:21.500123", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004731", "end": "2025-12-15 19:34:57.637775", "msg": "", "rc": 0, "start": "2025-12-15 19:34:57.633044", "stderr": "", "stderr_lines": [], "stdout": "71.0%", "stdout_lines": ["71.0%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004778", "end": "2025-12-15 19:34:51.696790", "msg": "", "rc": 0, "start": "2025-12-15 19:34:51.692012", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011014", "end": "2025-12-15 19:35:22.316512", "msg": "", "rc": 0, "start": "2025-12-15 19:35:22.305498", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012299", "end": "2025-12-15 19:35:22.335106", "msg": "", "rc": 0, "start": "2025-12-15 19:35:22.322807", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006038", "end": "2025-12-15 19:35:22.857201", "msg": "", "rc": 0, "start": "2025-12-15 19:35:22.851163", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005661", "end": "2025-12-15 16:35:22.943586", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:35:22.937925", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003992", "end": "2025-12-15 19:34:55.079106", "msg": "", "rc": 0, "start": "2025-12-15 19:34:55.075114", "stderr": "", "stderr_lines": [], "stdout": "24.6%", "stdout_lines": ["24.6%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005180", "end": "2025-12-15 19:35:01.034189", "msg": "", "rc": 0, "start": "2025-12-15 19:35:01.029009", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.0%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025552", "end": "2025-12-15 19:35:22.996809", "msg": "", "rc": 0, "start": "2025-12-15 19:35:22.971257", "stderr": "", "stderr_lines": [], "stdout": "19.4%", "stdout_lines": ["19.4%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005425", "end": "2025-12-15 19:35:23.447519", "msg": "", "rc": 0, "start": "2025-12-15 19:35:23.442094", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.009557", "end": "2025-12-15 19:35:23.830751", "msg": "", "rc": 0, "start": "2025-12-15 19:35:23.821194", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004803", "end": "2025-12-15 19:35:24.269454", "msg": "", "rc": 0, "start": "2025-12-15 19:35:24.264651", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005403", "end": "2025-12-15 19:35:24.289950", "msg": "", "rc": 0, "start": "2025-12-15 19:35:24.284547", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005497", "end": "2025-12-15 19:35:24.317835", "msg": "", "rc": 0, "start": "2025-12-15 19:35:24.312338", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006658", "end": "2025-12-15 19:35:24.351695", "msg": "", "rc": 0, "start": "2025-12-15 19:35:24.345037", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003092", "end": "2025-12-15 19:35:24.366102", "msg": "", "rc": 0, "start": "2025-12-15 19:35:24.363010", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002676", "end": "2025-12-15 19:35:00.310726", "msg": "", "rc": 0, "start": "2025-12-15 19:35:00.308050", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003567", "end": "2025-12-15 19:34:54.485010", "msg": "", "rc": 0, "start": "2025-12-15 19:34:54.481443", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011931", "end": "2025-12-15 19:35:25.187967", "msg": "", "rc": 0, "start": "2025-12-15 19:35:25.176036", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013477", "end": "2025-12-15 19:35:25.216339", "msg": "", "rc": 0, "start": "2025-12-15 19:35:25.202862", "stderr": "", "stderr_lines": [], "stdout": "35.0°C", "stdout_lines": ["35.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003143", "end": "2025-12-15 19:35:25.504910", "msg": "", "rc": 0, "start": "2025-12-15 19:35:25.501767", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004400", "end": "2025-12-15 19:34:57.797898", "msg": "", "rc": 0, "start": "2025-12-15 19:34:57.793498", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004095", "end": "2025-12-15 16:35:25.796246", "msg": "", "rc": 0, "start": "2025-12-15 16:35:25.792151", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002713", "end": "2025-12-15 19:35:03.803788", "msg": "", "rc": 0, "start": "2025-12-15 19:35:03.801075", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028860", "end": "2025-12-15 19:35:25.861290", "msg": "", "rc": 0, "start": "2025-12-15 19:35:25.832430", "stderr": "", "stderr_lines": [], "stdout": "35.4°C", "stdout_lines": ["35.4°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002945", "end": "2025-12-15 19:35:26.030488", "msg": "", "rc": 0, "start": "2025-12-15 19:35:26.027543", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005449", "end": "2025-12-15 19:35:26.669396", "msg": "", "rc": 0, "start": "2025-12-15 19:35:26.663947", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004181", "end": "2025-12-15 19:35:27.102040", "msg": "", "rc": 0, "start": "2025-12-15 19:35:27.097859", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004473", "end": "2025-12-15 19:35:27.107538", "msg": "", "rc": 0, "start": "2025-12-15 19:35:27.103065", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005175", "end": "2025-12-15 19:35:27.164273", "msg": "", "rc": 0, "start": "2025-12-15 19:35:27.159098", "stderr": "", "stderr_lines": [], "stdout": "0.81", "stdout_lines": ["0.81"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005397", "end": "2025-12-15 19:35:27.221771", "msg": "", "rc": 0, "start": "2025-12-15 19:35:27.216374", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005676", "end": "2025-12-15 19:35:27.226747", "msg": "", "rc": 0, "start": "2025-12-15 19:35:27.221071", "stderr": "", "stderr_lines": [], "stdout": "1.08", "stdout_lines": ["1.08"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004222", "end": "2025-12-15 19:35:03.261824", "msg": "", "rc": 0, "start": "2025-12-15 19:35:03.257602", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005300", "end": "2025-12-15 19:34:57.383958", "msg": "", "rc": 0, "start": "2025-12-15 19:34:57.378658", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010159", "end": "2025-12-15 19:35:28.003073", "msg": "", "rc": 0, "start": "2025-12-15 19:35:27.992914", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011203", "end": "2025-12-15 19:35:28.020881", "msg": "", "rc": 0, "start": "2025-12-15 19:35:28.009678", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005878", "end": "2025-12-15 19:35:28.480873", "msg": "", "rc": 0, "start": "2025-12-15 19:35:28.474995", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005947", "end": "2025-12-15 16:35:28.606483", "msg": "", "rc": 0, "start": "2025-12-15 16:35:28.600536", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005030", "end": "2025-12-15 19:35:00.662945", "msg": "", "rc": 0, "start": "2025-12-15 19:35:00.657915", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004108", "end": "2025-12-15 19:35:06.620071", "msg": "", "rc": 0, "start": "2025-12-15 19:35:06.615963", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.023925", "end": "2025-12-15 19:35:28.680467", "msg": "", "rc": 0, "start": "2025-12-15 19:35:28.656542", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005295", "end": "2025-12-15 19:35:29.050591", "msg": "", "rc": 0, "start": "2025-12-15 19:35:29.045296", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.021673", "end": "2025-12-15 19:35:29.546348", "msg": "", "rc": 0, "start": "2025-12-15 19:35:29.524675", "stderr": "", "stderr_lines": [], "stdout": "2.10", "stdout_lines": ["2.10"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:15 up 1 day, 9:07, 1 user, load average: 0.55, 0.38, 0.39\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.54\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:15 up 20 days, 6:26, 1 user, load average: 0.10, 0.10, 0.09\nDisk Usage: 23%\nMemory Usage: 80.2%\nCPU Load: 0.46\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:15 up 20 days, 6:46, 1 user, load average: 0.96, 0.73, 0.66\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.81\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:15 up 20 days, 7:59, 1 user, load average: 0.80, 0.57, 0.62\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 1.08\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:15 up 20 days, 8:45, 1 user, load average: 0.12, 0.08, 0.08\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:17 up 13 days, 9:01, 1 user, load average: 0.31, 0.16, 0.11\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.34\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:16 up 192 days, 11:08, 1 user, load average: 0.93, 0.47, 0.30\nDisk Usage: 6%\nMemory Usage: 12.5%\nCPU Load: 0.80\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:16 up 192 days, 11:08, 1 user, load average: 0.19, 0.12, 0.10\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.15\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:51 up 9 days, 7:24, 0 user, load average: 0.06, 0.09, 0.09\nDisk Usage: 48%\nMemory Usage: 71.0%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:46 up 16 days, 3:36, 0 user, load average: 0.01, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:17 up 1 day, 9:06, 1 user, load average: 0.02, 0.04, 0.00\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:49 up 18 days, 22:29, 0 user, load average: 0.35, 0.40, 0.42\nDisk Usage: 28%\nMemory Usage: 24.6%\nCPU Load: 0.45\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:55 up 15 days, 8:50, 0 user, load average: 0.25, 0.14, 0.13\nDisk Usage: 75%\nMemory Usage: 60.0%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:35PM up 20 days, 6:25, 1 user, load averages: 0.23, 0.28, 0.25\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:17 up 1 day, 9:06, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:18 up 6:10, 1 user, load average: 1.47, 1.31, 1.23\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 2.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:35:31.522754+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `8ce551dd943947d186041dcbcf391587` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:40:00.004787+00:00 |
| **Fin** | 2025-12-16T00:40:32.539048+00:00 |
| **Durée** | 32.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003408", "end": "2025-12-15 19:40:15.429940", "msg": "", "rc": 0, "start": "2025-12-15 19:40:15.426532", "stderr": "", "stderr_lines": [], "stdout": " 19:40:15 up 20 days, 8:50, 1 user, load average: 0.05, 0.06, 0.08", "stdout_lines": [" 19:40:15 up 20 days, 8:50, 1 user, load average: 0.05, 0.06, 0.08"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003359", "end": "2025-12-15 19:40:15.424979", "msg": "", "rc": 0, "start": "2025-12-15 19:40:15.421620", "stderr": "", "stderr_lines": [], "stdout": " 19:40:15 up 20 days, 6:51, 1 user, load average: 0.80, 0.60, 0.62", "stdout_lines": [" 19:40:15 up 20 days, 6:51, 1 user, load average: 0.80, 0.60, 0.62"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004511", "end": "2025-12-15 19:40:15.447224", "msg": "", "rc": 0, "start": "2025-12-15 19:40:15.442713", "stderr": "", "stderr_lines": [], "stdout": " 19:40:15 up 20 days, 8:04, 1 user, load average: 0.64, 0.63, 0.63", "stdout_lines": [" 19:40:15 up 20 days, 8:04, 1 user, load average: 0.64, 0.63, 0.63"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002925", "end": "2025-12-15 19:40:15.453051", "msg": "", "rc": 0, "start": "2025-12-15 19:40:15.450126", "stderr": "", "stderr_lines": [], "stdout": " 19:40:15 up 1 day, 9:12, 1 user, load average: 0.36, 0.34, 0.36", "stdout_lines": [" 19:40:15 up 1 day, 9:12, 1 user, load average: 0.36, 0.34, 0.36"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003088", "end": "2025-12-15 19:39:51.514799", "msg": "", "rc": 0, "start": "2025-12-15 19:39:51.511711", "stderr": "", "stderr_lines": [], "stdout": " 19:39:51 up 9 days, 7:29, 0 user, load average: 0.08, 0.08, 0.09", "stdout_lines": [" 19:39:51 up 9 days, 7:29, 0 user, load average: 0.08, 0.08, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009709", "end": "2025-12-15 19:40:16.296149", "msg": "", "rc": 0, "start": "2025-12-15 19:40:16.286440", "stderr": "", "stderr_lines": [], "stdout": " 19:40:16 up 192 days, 11:13, 1 user, load average: 0.33, 0.37, 0.30", "stdout_lines": [" 19:40:16 up 192 days, 11:13, 1 user, load average: 0.33, 0.37, 0.30"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008513", "end": "2025-12-15 19:40:16.311685", "msg": "", "rc": 0, "start": "2025-12-15 19:40:16.303172", "stderr": "", "stderr_lines": [], "stdout": " 19:40:16 up 192 days, 11:13, 1 user, load average: 0.17, 0.12, 0.09", "stdout_lines": [" 19:40:16 up 192 days, 11:13, 1 user, load average: 0.17, 0.12, 0.09"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003948", "end": "2025-12-15 19:40:16.559986", "msg": "", "rc": 0, "start": "2025-12-15 19:40:15.556038", "stderr": "", "stderr_lines": [], "stdout": " 19:40:15 up 20 days, 6:31, 1 user, load average: 0.39, 0.27, 0.17", "stdout_lines": [" 19:40:15 up 20 days, 6:31, 1 user, load average: 0.39, 0.27, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003967", "end": "2025-12-15 19:39:46.244445", "msg": "", "rc": 0, "start": "2025-12-15 19:39:46.240478", "stderr": "", "stderr_lines": [], "stdout": " 19:39:46 up 16 days, 3:41, 0 user, load average: 0.02, 0.04, 0.00", "stdout_lines": [" 19:39:46 up 16 days, 3:41, 0 user, load average: 0.02, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004641", "end": "2025-12-15 19:40:16.917508", "msg": "", "rc": 0, "start": "2025-12-15 19:40:16.912867", "stderr": "", "stderr_lines": [], "stdout": " 19:40:16 up 1 day, 9:11, 1 user, load average: 0.02, 0.02, 0.00", "stdout_lines": [" 19:40:16 up 1 day, 9:11, 1 user, load average: 0.02, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003453", "end": "2025-12-15 19:39:49.094673", "msg": "", "rc": 0, "start": "2025-12-15 19:39:49.091220", "stderr": "", "stderr_lines": [], "stdout": " 19:39:49 up 18 days, 22:34, 0 user, load average: 0.35, 0.44, 0.44", "stdout_lines": [" 19:39:49 up 18 days, 22:34, 0 user, load average: 0.35, 0.44, 0.44"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019496", "end": "2025-12-15 19:40:16.971366", "msg": "", "rc": 0, "start": "2025-12-15 19:40:16.951870", "stderr": "", "stderr_lines": [], "stdout": " 19:40:16 up 13 days, 9:06, 1 user, load average: 0.29, 0.16, 0.10", "stdout_lines": [" 19:40:16 up 13 days, 9:06, 1 user, load average: 0.29, 0.16, 0.10"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003904", "end": "2025-12-15 19:39:55.153235", "msg": "", "rc": 0, "start": "2025-12-15 19:39:55.149331", "stderr": "", "stderr_lines": [], "stdout": " 19:39:55 up 15 days, 8:55, 0 user, load average: 0.08, 0.14, 0.12", "stdout_lines": [" 19:39:55 up 15 days, 8:55, 0 user, load average: 0.08, 0.14, 0.12"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004195", "end": "2025-12-15 16:40:17.351992", "msg": "", "rc": 0, "start": "2025-12-15 16:40:17.347797", "stderr": "", "stderr_lines": [], "stdout": " 4:40PM up 20 days, 6:30, 1 user, load averages: 0.14, 0.20, 0.22", "stdout_lines": [" 4:40PM up 20 days, 6:30, 1 user, load averages: 0.14, 0.20, 0.22"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.012326", "end": "2025-12-15 19:40:17.926563", "msg": "", "rc": 0, "start": "2025-12-15 19:40:17.914237", "stderr": "", "stderr_lines": [], "stdout": " 19:40:17 up 6:15, 1 user, load average: 1.44, 1.37, 1.28", "stdout_lines": [" 19:40:17 up 6:15, 1 user, load average: 1.44, 1.37, 1.28"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004919", "end": "2025-12-15 19:40:18.458885", "msg": "", "rc": 0, "start": "2025-12-15 19:40:17.453966", "stderr": "", "stderr_lines": [], "stdout": " 19:40:17 up 1 day, 9:11, 1 user, load average: 0.03, 0.01, 0.00", "stdout_lines": [" 19:40:17 up 1 day, 9:11, 1 user, load average: 0.03, 0.01, 0.00"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004077", "end": "2025-12-15 19:40:19.048100", "msg": "", "rc": 0, "start": "2025-12-15 19:40:19.044023", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004822", "end": "2025-12-15 19:40:19.110721", "msg": "", "rc": 0, "start": "2025-12-15 19:40:19.105899", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004901", "end": "2025-12-15 19:40:19.143417", "msg": "", "rc": 0, "start": "2025-12-15 19:40:19.138516", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004327", "end": "2025-12-15 19:40:19.148743", "msg": "", "rc": 0, "start": "2025-12-15 19:40:19.144416", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005698", "end": "2025-12-15 19:40:19.160746", "msg": "", "rc": 0, "start": "2025-12-15 19:40:19.155048", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005123", "end": "2025-12-15 19:39:55.143894", "msg": "", "rc": 0, "start": "2025-12-15 19:39:55.138771", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005558", "end": "2025-12-15 19:39:49.292226", "msg": "", "rc": 0, "start": "2025-12-15 19:39:49.286668", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010689", "end": "2025-12-15 19:40:20.011108", "msg": "", "rc": 0, "start": "2025-12-15 19:40:20.000419", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011942", "end": "2025-12-15 19:40:20.039967", "msg": "", "rc": 0, "start": "2025-12-15 19:40:20.028025", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006440", "end": "2025-12-15 19:40:20.353777", "msg": "", "rc": 0, "start": "2025-12-15 19:40:20.347337", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005199", "end": "2025-12-15 19:39:52.577623", "msg": "", "rc": 0, "start": "2025-12-15 19:39:52.572424", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004794", "end": "2025-12-15 19:39:58.587813", "msg": "", "rc": 0, "start": "2025-12-15 19:39:58.583019", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005466", "end": "2025-12-15 16:40:20.638200", "msg": "", "rc": 0, "start": "2025-12-15 16:40:20.632734", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025033", "end": "2025-12-15 19:40:20.620549", "msg": "", "rc": 0, "start": "2025-12-15 19:40:20.595516", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005294", "end": "2025-12-15 19:40:20.888002", "msg": "", "rc": 0, "start": "2025-12-15 19:40:20.882708", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.022468", "end": "2025-12-15 19:40:21.451404", "msg": "", "rc": 0, "start": "2025-12-15 19:40:21.428936", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004447", "end": "2025-12-15 19:40:21.797803", "msg": "", "rc": 0, "start": "2025-12-15 19:40:21.793356", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005093", "end": "2025-12-15 19:40:21.841395", "msg": "", "rc": 0, "start": "2025-12-15 19:40:21.836302", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005144", "end": "2025-12-15 19:40:21.887392", "msg": "", "rc": 0, "start": "2025-12-15 19:40:21.882248", "stderr": "", "stderr_lines": [], "stdout": "8.8%", "stdout_lines": ["8.8%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005696", "end": "2025-12-15 19:40:21.878891", "msg": "", "rc": 0, "start": "2025-12-15 19:40:21.873195", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004275", "end": "2025-12-15 19:40:22.184593", "msg": "", "rc": 0, "start": "2025-12-15 19:40:22.180318", "stderr": "", "stderr_lines": [], "stdout": "80.4%", "stdout_lines": ["80.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003871", "end": "2025-12-15 19:39:57.873719", "msg": "", "rc": 0, "start": "2025-12-15 19:39:57.869848", "stderr": "", "stderr_lines": [], "stdout": "70.8%", "stdout_lines": ["70.8%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011075", "end": "2025-12-15 19:40:22.671477", "msg": "", "rc": 0, "start": "2025-12-15 19:40:22.660402", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012139", "end": "2025-12-15 19:40:22.729836", "msg": "", "rc": 0, "start": "2025-12-15 19:40:22.717697", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004558", "end": "2025-12-15 19:39:52.254255", "msg": "", "rc": 0, "start": "2025-12-15 19:39:52.249697", "stderr": "", "stderr_lines": [], "stdout": "72.0%", "stdout_lines": ["72.0%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005787", "end": "2025-12-15 19:40:23.090349", "msg": "", "rc": 0, "start": "2025-12-15 19:40:23.084562", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003996", "end": "2025-12-15 19:39:55.487387", "msg": "", "rc": 0, "start": "2025-12-15 19:39:55.483391", "stderr": "", "stderr_lines": [], "stdout": "26.1%", "stdout_lines": ["26.1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025659", "end": "2025-12-15 19:40:23.313759", "msg": "", "rc": 0, "start": "2025-12-15 19:40:23.288100", "stderr": "", "stderr_lines": [], "stdout": "19.1%", "stdout_lines": ["19.1%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003982", "end": "2025-12-15 19:40:01.473425", "msg": "", "rc": 0, "start": "2025-12-15 19:40:01.469443", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.0%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005148", "end": "2025-12-15 16:40:23.514678", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:40:23.509530", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005438", "end": "2025-12-15 19:40:23.745640", "msg": "", "rc": 0, "start": "2025-12-15 19:40:23.740202", "stderr": "", "stderr_lines": [], "stdout": "13.7%", "stdout_lines": ["13.7%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.020255", "end": "2025-12-15 19:40:24.401967", "msg": "", "rc": 0, "start": "2025-12-15 19:40:24.381712", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004855", "end": "2025-12-15 19:40:24.725765", "msg": "", "rc": 0, "start": "2025-12-15 19:40:24.720910", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006022", "end": "2025-12-15 19:40:24.762260", "msg": "", "rc": 0, "start": "2025-12-15 19:40:24.756238", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011314", "end": "2025-12-15 19:40:24.809944", "msg": "", "rc": 0, "start": "2025-12-15 19:40:24.798630", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003159", "end": "2025-12-15 19:40:24.821322", "msg": "", "rc": 0, "start": "2025-12-15 19:40:24.818163", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005335", "end": "2025-12-15 19:40:24.963698", "msg": "", "rc": 0, "start": "2025-12-15 19:40:24.958363", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002926", "end": "2025-12-15 19:40:00.874104", "msg": "", "rc": 0, "start": "2025-12-15 19:40:00.871178", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003334", "end": "2025-12-15 19:39:55.141445", "msg": "", "rc": 0, "start": "2025-12-15 19:39:55.138111", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011907", "end": "2025-12-15 19:40:25.752505", "msg": "", "rc": 0, "start": "2025-12-15 19:40:25.740598", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013480", "end": "2025-12-15 19:40:25.758538", "msg": "", "rc": 0, "start": "2025-12-15 19:40:25.745058", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003253", "end": "2025-12-15 19:40:26.088934", "msg": "", "rc": 0, "start": "2025-12-15 19:40:26.085681", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003953", "end": "2025-12-15 16:40:26.396342", "msg": "", "rc": 0, "start": "2025-12-15 16:40:26.392389", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002593", "end": "2025-12-15 19:40:04.401592", "msg": "", "rc": 0, "start": "2025-12-15 19:40:04.398999", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003068", "end": "2025-12-15 19:39:58.498285", "msg": "", "rc": 0, "start": "2025-12-15 19:39:58.495217", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028073", "end": "2025-12-15 19:40:26.404864", "msg": "", "rc": 0, "start": "2025-12-15 19:40:26.376791", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.1°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002964", "end": "2025-12-15 19:40:26.630974", "msg": "", "rc": 0, "start": "2025-12-15 19:40:26.628010", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007084", "end": "2025-12-15 19:40:27.360614", "msg": "", "rc": 0, "start": "2025-12-15 19:40:27.353530", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003940", "end": "2025-12-15 19:40:27.753582", "msg": "", "rc": 0, "start": "2025-12-15 19:40:27.749642", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004798", "end": "2025-12-15 19:40:27.827219", "msg": "", "rc": 0, "start": "2025-12-15 19:40:27.822421", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005816", "end": "2025-12-15 19:40:27.889709", "msg": "", "rc": 0, "start": "2025-12-15 19:40:27.883893", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005720", "end": "2025-12-15 19:40:27.894382", "msg": "", "rc": 0, "start": "2025-12-15 19:40:27.888662", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004287", "end": "2025-12-15 19:40:27.993157", "msg": "", "rc": 0, "start": "2025-12-15 19:40:27.988870", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004285", "end": "2025-12-15 19:40:04.044158", "msg": "", "rc": 0, "start": "2025-12-15 19:40:04.039873", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005790", "end": "2025-12-15 19:39:58.223987", "msg": "", "rc": 0, "start": "2025-12-15 19:39:58.218197", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011202", "end": "2025-12-15 19:40:28.794655", "msg": "", "rc": 0, "start": "2025-12-15 19:40:28.783453", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010300", "end": "2025-12-15 19:40:28.830036", "msg": "", "rc": 0, "start": "2025-12-15 19:40:28.819736", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005721", "end": "2025-12-15 19:40:29.297588", "msg": "", "rc": 0, "start": "2025-12-15 19:40:29.291867", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024724", "end": "2025-12-15 19:40:29.316852", "msg": "", "rc": 0, "start": "2025-12-15 19:40:29.292128", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006144", "end": "2025-12-15 16:40:29.475258", "msg": "", "rc": 0, "start": "2025-12-15 16:40:29.469114", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004179", "end": "2025-12-15 19:40:07.504205", "msg": "", "rc": 0, "start": "2025-12-15 19:40:07.500026", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004782", "end": "2025-12-15 19:40:01.598427", "msg": "", "rc": 0, "start": "2025-12-15 19:40:01.593645", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005300", "end": "2025-12-15 19:40:29.832698", "msg": "", "rc": 0, "start": "2025-12-15 19:40:29.827398", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.022580", "end": "2025-12-15 19:40:30.356743", "msg": "", "rc": 0, "start": "2025-12-15 19:40:30.334163", "stderr": "", "stderr_lines": [], "stdout": "1.86", "stdout_lines": ["1.86"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:15 up 1 day, 9:12, 1 user, load average: 0.36, 0.34, 0.36\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.62\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:15 up 20 days, 6:31, 1 user, load average: 0.39, 0.27, 0.17\nDisk Usage: 23%\nMemory Usage: 80.4%\nCPU Load: 0.45\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:15 up 20 days, 6:51, 1 user, load average: 0.80, 0.60, 0.62\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.83\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:15 up 20 days, 8:04, 1 user, load average: 0.64, 0.63, 0.63\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.54\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:15 up 20 days, 8:50, 1 user, load average: 0.05, 0.06, 0.08\nDisk Usage: 9%\nMemory Usage: 8.8%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:16 up 13 days, 9:06, 1 user, load average: 0.29, 0.16, 0.10\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.30\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:16 up 192 days, 11:13, 1 user, load average: 0.33, 0.37, 0.30\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.41\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:16 up 192 days, 11:13, 1 user, load average: 0.17, 0.12, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.28\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:51 up 9 days, 7:29, 0 user, load average: 0.08, 0.08, 0.09\nDisk Usage: 48%\nMemory Usage: 70.8%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:46 up 16 days, 3:41, 0 user, load average: 0.02, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.0%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:16 up 1 day, 9:11, 1 user, load average: 0.02, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:49 up 18 days, 22:34, 0 user, load average: 0.35, 0.44, 0.44\nDisk Usage: 28%\nMemory Usage: 26.1%\nCPU Load: 0.45\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:55 up 15 days, 8:55, 0 user, load average: 0.08, 0.14, 0.12\nDisk Usage: 75%\nMemory Usage: 60.0%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:40PM up 20 days, 6:30, 1 user, load averages: 0.14, 0.20, 0.22\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:17 up 1 day, 9:11, 1 user, load average: 0.03, 0.01, 0.00\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:17 up 6:15, 1 user, load average: 1.44, 1.37, 1.28\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.86\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:40:32.612009+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `0c76a6e5733b4cd3abfd9df108c2002c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:45:00.003307+00:00 |
| **Fin** | 2025-12-16T00:45:31.400595+00:00 |
| **Durée** | 31.4s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [hp2.i7.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003386", "end": "2025-12-15 19:45:15.729299", "msg": "", "rc": 0, "start": "2025-12-15 19:45:15.725913", "stderr": "", "stderr_lines": [], "stdout": " 19:45:15 up 20 days, 8:55, 1 user, load average: 0.00, 0.03, 0.06", "stdout_lines": [" 19:45:15 up 20 days, 8:55, 1 user, load average: 0.00, 0.03, 0.06"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003387", "end": "2025-12-15 19:45:15.732198", "msg": "", "rc": 0, "start": "2025-12-15 19:45:15.728811", "stderr": "", "stderr_lines": [], "stdout": " 19:45:15 up 20 days, 6:56, 1 user, load average: 0.98, 0.78, 0.69", "stdout_lines": [" 19:45:15 up 20 days, 6:56, 1 user, load average: 0.98, 0.78, 0.69"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003788", "end": "2025-12-15 19:45:15.753333", "msg": "", "rc": 0, "start": "2025-12-15 19:45:15.749545", "stderr": "", "stderr_lines": [], "stdout": " 19:45:15 up 20 days, 8:09, 1 user, load average: 0.74, 0.64, 0.64", "stdout_lines": [" 19:45:15 up 20 days, 8:09, 1 user, load average: 0.74, 0.64, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002942", "end": "2025-12-15 19:45:15.765152", "msg": "", "rc": 0, "start": "2025-12-15 19:45:15.762210", "stderr": "", "stderr_lines": [], "stdout": " 19:45:15 up 1 day, 9:17, 1 user, load average: 0.40, 0.32, 0.34", "stdout_lines": [" 19:45:15 up 1 day, 9:17, 1 user, load average: 0.40, 0.32, 0.34"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002959", "end": "2025-12-15 19:44:51.777685", "msg": "", "rc": 0, "start": "2025-12-15 19:44:51.774726", "stderr": "", "stderr_lines": [], "stdout": " 19:44:51 up 9 days, 7:34, 0 user, load average: 0.03, 0.08, 0.08", "stdout_lines": [" 19:44:51 up 9 days, 7:34, 0 user, load average: 0.03, 0.08, 0.08"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008573", "end": "2025-12-15 19:45:16.555078", "msg": "", "rc": 0, "start": "2025-12-15 19:45:16.546505", "stderr": "", "stderr_lines": [], "stdout": " 19:45:16 up 192 days, 11:18, 1 user, load average: 0.14, 0.12, 0.09", "stdout_lines": [" 19:45:16 up 192 days, 11:18, 1 user, load average: 0.14, 0.12, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009353", "end": "2025-12-15 19:45:16.594594", "msg": "", "rc": 0, "start": "2025-12-15 19:45:16.585241", "stderr": "", "stderr_lines": [], "stdout": " 19:45:16 up 192 days, 11:18, 1 user, load average: 0.33, 0.31, 0.28", "stdout_lines": [" 19:45:16 up 192 days, 11:18, 1 user, load average: 0.33, 0.31, 0.28"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003557", "end": "2025-12-15 19:45:16.718050", "msg": "", "rc": 0, "start": "2025-12-15 19:45:15.714493", "stderr": "", "stderr_lines": [], "stdout": " 19:45:15 up 20 days, 6:36, 1 user, load average: 0.24, 0.24, 0.18", "stdout_lines": [" 19:45:15 up 20 days, 6:36, 1 user, load average: 0.24, 0.24, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003714", "end": "2025-12-15 19:44:46.498473", "msg": "", "rc": 0, "start": "2025-12-15 19:44:46.494759", "stderr": "", "stderr_lines": [], "stdout": " 19:44:46 up 16 days, 3:46, 0 user, load average: 0.07, 0.03, 0.00", "stdout_lines": [" 19:44:46 up 16 days, 3:46, 0 user, load average: 0.07, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004728", "end": "2025-12-15 19:45:17.199499", "msg": "", "rc": 0, "start": "2025-12-15 19:45:17.194771", "stderr": "", "stderr_lines": [], "stdout": " 19:45:17 up 1 day, 9:16, 1 user, load average: 0.13, 0.05, 0.01", "stdout_lines": [" 19:45:17 up 1 day, 9:16, 1 user, load average: 0.13, 0.05, 0.01"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003309", "end": "2025-12-15 19:44:55.305915", "msg": "", "rc": 0, "start": "2025-12-15 19:44:55.302606", "stderr": "", "stderr_lines": [], "stdout": " 19:44:55 up 15 days, 9:00, 0 user, load average: 0.26, 0.29, 0.20", "stdout_lines": [" 19:44:55 up 15 days, 9:00, 0 user, load average: 0.26, 0.29, 0.20"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003286", "end": "2025-12-15 19:44:49.384094", "msg": "", "rc": 0, "start": "2025-12-15 19:44:49.380808", "stderr": "", "stderr_lines": [], "stdout": " 19:44:49 up 18 days, 22:39, 0 user, load average: 0.32, 0.38, 0.42", "stdout_lines": [" 19:44:49 up 18 days, 22:39, 0 user, load average: 0.32, 0.38, 0.42"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019481", "end": "2025-12-15 19:45:17.226021", "msg": "", "rc": 0, "start": "2025-12-15 19:45:17.206540", "stderr": "", "stderr_lines": [], "stdout": " 19:45:17 up 13 days, 9:11, 1 user, load average: 0.23, 0.13, 0.10", "stdout_lines": [" 19:45:17 up 13 days, 9:11, 1 user, load average: 0.23, 0.13, 0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004250", "end": "2025-12-15 16:45:17.635178", "msg": "", "rc": 0, "start": "2025-12-15 16:45:17.630928", "stderr": "", "stderr_lines": [], "stdout": " 4:45PM up 20 days, 6:35, 1 user, load averages: 0.17, 0.20, 0.21", "stdout_lines": [" 4:45PM up 20 days, 6:35, 1 user, load averages: 0.17, 0.20, 0.21"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003788", "end": "2025-12-15 19:45:17.764479", "msg": "", "rc": 0, "start": "2025-12-15 19:45:17.760691", "stderr": "", "stderr_lines": [], "stdout": " 19:45:17 up 1 day, 9:16, 1 user, load average: 0.27, 0.09, 0.02", "stdout_lines": [" 19:45:17 up 1 day, 9:16, 1 user, load average: 0.27, 0.09, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.010006", "end": "2025-12-15 19:45:18.235812", "msg": "", "rc": 0, "start": "2025-12-15 19:45:18.225806", "stderr": "", "stderr_lines": [], "stdout": " 19:45:18 up 6:20, 1 user, load average: 1.77, 1.43, 1.32", "stdout_lines": [" 19:45:18 up 6:20, 1 user, load average: 1.77, 1.43, 1.32"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004351", "end": "2025-12-15 19:45:18.582943", "msg": "", "rc": 0, "start": "2025-12-15 19:45:18.578592", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004253", "end": "2025-12-15 19:45:18.592880", "msg": "", "rc": 0, "start": "2025-12-15 19:45:18.588627", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004972", "end": "2025-12-15 19:45:18.633858", "msg": "", "rc": 0, "start": "2025-12-15 19:45:18.628886", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004875", "end": "2025-12-15 19:45:18.686725", "msg": "", "rc": 0, "start": "2025-12-15 19:45:18.681850", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005572", "end": "2025-12-15 19:45:18.682145", "msg": "", "rc": 0, "start": "2025-12-15 19:45:18.676573", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004897", "end": "2025-12-15 19:44:54.699407", "msg": "", "rc": 0, "start": "2025-12-15 19:44:54.694510", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005428", "end": "2025-12-15 19:44:48.855736", "msg": "", "rc": 0, "start": "2025-12-15 19:44:48.850308", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010488", "end": "2025-12-15 19:45:19.582854", "msg": "", "rc": 0, "start": "2025-12-15 19:45:19.572366", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011566", "end": "2025-12-15 19:45:19.583286", "msg": "", "rc": 0, "start": "2025-12-15 19:45:19.571720", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005789", "end": "2025-12-15 19:45:19.962515", "msg": "", "rc": 0, "start": "2025-12-15 19:45:19.956726", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005508", "end": "2025-12-15 19:44:52.201137", "msg": "", "rc": 0, "start": "2025-12-15 19:44:52.195629", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005415", "end": "2025-12-15 16:45:20.236915", "msg": "", "rc": 0, "start": "2025-12-15 16:45:20.231500", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004823", "end": "2025-12-15 19:44:58.240087", "msg": "", "rc": 0, "start": "2025-12-15 19:44:58.235264", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025620", "end": "2025-12-15 19:45:20.163131", "msg": "", "rc": 0, "start": "2025-12-15 19:45:20.137511", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005597", "end": "2025-12-15 19:45:20.500919", "msg": "", "rc": 0, "start": "2025-12-15 19:45:20.495322", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.009191", "end": "2025-12-15 19:45:21.088874", "msg": "", "rc": 0, "start": "2025-12-15 19:45:21.079683", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004433", "end": "2025-12-15 19:45:21.515163", "msg": "", "rc": 0, "start": "2025-12-15 19:45:21.510730", "stderr": "", "stderr_lines": [], "stdout": "80.5%", "stdout_lines": ["80.5%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004234", "end": "2025-12-15 19:45:21.525555", "msg": "", "rc": 0, "start": "2025-12-15 19:45:21.521321", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004697", "end": "2025-12-15 19:45:21.550974", "msg": "", "rc": 0, "start": "2025-12-15 19:45:21.546277", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005905", "end": "2025-12-15 19:45:21.605882", "msg": "", "rc": 0, "start": "2025-12-15 19:45:21.599977", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005096", "end": "2025-12-15 19:45:21.662859", "msg": "", "rc": 0, "start": "2025-12-15 19:45:21.657763", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003872", "end": "2025-12-15 19:44:57.600783", "msg": "", "rc": 0, "start": "2025-12-15 19:44:57.596911", "stderr": "", "stderr_lines": [], "stdout": "71.1%", "stdout_lines": ["71.1%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004487", "end": "2025-12-15 19:44:51.785884", "msg": "", "rc": 0, "start": "2025-12-15 19:44:51.781397", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011006", "end": "2025-12-15 19:45:22.394695", "msg": "", "rc": 0, "start": "2025-12-15 19:45:22.383689", "stderr": "", "stderr_lines": [], "stdout": "6.9%", "stdout_lines": ["6.9%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012035", "end": "2025-12-15 19:45:22.422268", "msg": "", "rc": 0, "start": "2025-12-15 19:45:22.410233", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005795", "end": "2025-12-15 19:45:22.827106", "msg": "", "rc": 0, "start": "2025-12-15 19:45:22.821311", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005393", "end": "2025-12-15 16:45:23.009040", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:45:23.003647", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004349", "end": "2025-12-15 19:44:55.076770", "msg": "", "rc": 0, "start": "2025-12-15 19:44:55.072421", "stderr": "", "stderr_lines": [], "stdout": "25.8%", "stdout_lines": ["25.8%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005354", "end": "2025-12-15 19:45:01.047680", "msg": "", "rc": 0, "start": "2025-12-15 19:45:01.042326", "stderr": "", "stderr_lines": [], "stdout": "63.0%", "stdout_lines": ["63.0%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025689", "end": "2025-12-15 19:45:23.063503", "msg": "", "rc": 0, "start": "2025-12-15 19:45:23.037814", "stderr": "", "stderr_lines": [], "stdout": "19.2%", "stdout_lines": ["19.2%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005443", "end": "2025-12-15 19:45:23.393136", "msg": "", "rc": 0, "start": "2025-12-15 19:45:23.387693", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011480", "end": "2025-12-15 19:45:23.905370", "msg": "", "rc": 0, "start": "2025-12-15 19:45:23.893890", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005089", "end": "2025-12-15 19:45:24.325928", "msg": "", "rc": 0, "start": "2025-12-15 19:45:24.320839", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005011", "end": "2025-12-15 19:45:24.324739", "msg": "", "rc": 0, "start": "2025-12-15 19:45:24.319728", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006065", "end": "2025-12-15 19:45:24.384278", "msg": "", "rc": 0, "start": "2025-12-15 19:45:24.378213", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003178", "end": "2025-12-15 19:45:24.423829", "msg": "", "rc": 0, "start": "2025-12-15 19:45:24.420651", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006154", "end": "2025-12-15 19:45:24.448730", "msg": "", "rc": 0, "start": "2025-12-15 19:45:24.442576", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002733", "end": "2025-12-15 19:45:00.431801", "msg": "", "rc": 0, "start": "2025-12-15 19:45:00.429068", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003276", "end": "2025-12-15 19:44:54.593962", "msg": "", "rc": 0, "start": "2025-12-15 19:44:54.590686", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011863", "end": "2025-12-15 19:45:25.291803", "msg": "", "rc": 0, "start": "2025-12-15 19:45:25.279940", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013184", "end": "2025-12-15 19:45:25.284907", "msg": "", "rc": 0, "start": "2025-12-15 19:45:25.271723", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003170", "end": "2025-12-15 19:45:25.656294", "msg": "", "rc": 0, "start": "2025-12-15 19:45:25.653124", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003061", "end": "2025-12-15 19:44:57.905571", "msg": "", "rc": 0, "start": "2025-12-15 19:44:57.902510", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003981", "end": "2025-12-15 16:45:25.882575", "msg": "", "rc": 0, "start": "2025-12-15 16:45:25.878594", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.008958", "end": "2025-12-15 19:45:03.909566", "msg": "", "rc": 0, "start": "2025-12-15 19:45:03.900608", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028423", "end": "2025-12-15 19:45:25.960045", "msg": "", "rc": 0, "start": "2025-12-15 19:45:25.931622", "stderr": "", "stderr_lines": [], "stdout": "35.6°C", "stdout_lines": ["35.6°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002982", "end": "2025-12-15 19:45:26.207337", "msg": "", "rc": 0, "start": "2025-12-15 19:45:26.204355", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.018216", "end": "2025-12-15 19:45:26.697159", "msg": "", "rc": 0, "start": "2025-12-15 19:45:26.678943", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004226", "end": "2025-12-15 19:45:27.161474", "msg": "", "rc": 0, "start": "2025-12-15 19:45:27.157248", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004141", "end": "2025-12-15 19:45:27.167271", "msg": "", "rc": 0, "start": "2025-12-15 19:45:27.163130", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004354", "end": "2025-12-15 19:45:27.250330", "msg": "", "rc": 0, "start": "2025-12-15 19:45:27.245976", "stderr": "", "stderr_lines": [], "stdout": "1.14", "stdout_lines": ["1.14"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005078", "end": "2025-12-15 19:45:27.273839", "msg": "", "rc": 0, "start": "2025-12-15 19:45:27.268761", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005601", "end": "2025-12-15 19:45:27.276858", "msg": "", "rc": 0, "start": "2025-12-15 19:45:27.271257", "stderr": "", "stderr_lines": [], "stdout": "0.77", "stdout_lines": ["0.77"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005274", "end": "2025-12-15 19:45:03.263659", "msg": "", "rc": 0, "start": "2025-12-15 19:45:03.258385", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005023", "end": "2025-12-15 19:44:57.432349", "msg": "", "rc": 0, "start": "2025-12-15 19:44:57.427326", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011356", "end": "2025-12-15 19:45:28.018977", "msg": "", "rc": 0, "start": "2025-12-15 19:45:28.007621", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010247", "end": "2025-12-15 19:45:28.043862", "msg": "", "rc": 0, "start": "2025-12-15 19:45:28.033615", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005770", "end": "2025-12-15 19:45:28.486626", "msg": "", "rc": 0, "start": "2025-12-15 19:45:28.480856", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005918", "end": "2025-12-15 16:45:28.644968", "msg": "", "rc": 0, "start": "2025-12-15 16:45:28.639050", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004812", "end": "2025-12-15 19:45:06.680895", "msg": "", "rc": 0, "start": "2025-12-15 19:45:06.676083", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005001", "end": "2025-12-15 19:45:00.757462", "msg": "", "rc": 0, "start": "2025-12-15 19:45:00.752461", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024318", "end": "2025-12-15 19:45:28.679661", "msg": "", "rc": 0, "start": "2025-12-15 19:45:28.655343", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005317", "end": "2025-12-15 19:45:29.020442", "msg": "", "rc": 0, "start": "2025-12-15 19:45:29.015125", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.012039", "end": "2025-12-15 19:45:29.469946", "msg": "", "rc": 0, "start": "2025-12-15 19:45:29.457907", "stderr": "", "stderr_lines": [], "stdout": "1.89", "stdout_lines": ["1.89"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:15 up 1 day, 9:17, 1 user, load average: 0.40, 0.32, 0.34\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.42\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:15 up 20 days, 6:36, 1 user, load average: 0.24, 0.24, 0.18\nDisk Usage: 23%\nMemory Usage: 80.5%\nCPU Load: 0.19\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:15 up 20 days, 6:56, 1 user, load average: 0.98, 0.78, 0.69\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 1.14\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:15 up 20 days, 8:09, 1 user, load average: 0.74, 0.64, 0.64\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.77\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:15 up 20 days, 8:55, 1 user, load average: 0.00, 0.03, 0.06\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:17 up 13 days, 9:11, 1 user, load average: 0.23, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.2%\nCPU Load: 0.25\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:16 up 192 days, 11:18, 1 user, load average: 0.33, 0.31, 0.28\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.40\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:16 up 192 days, 11:18, 1 user, load average: 0.14, 0.12, 0.09\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.26\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:51 up 9 days, 7:34, 0 user, load average: 0.03, 0.08, 0.08\nDisk Usage: 48%\nMemory Usage: 71.1%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:46 up 16 days, 3:46, 0 user, load average: 0.07, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:17 up 1 day, 9:16, 1 user, load average: 0.13, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:49 up 18 days, 22:39, 0 user, load average: 0.32, 0.38, 0.42\nDisk Usage: 28%\nMemory Usage: 25.8%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:55 up 15 days, 9:00, 0 user, load average: 0.26, 0.29, 0.20\nDisk Usage: 75%\nMemory Usage: 63.0%\nCPU Load: 0.30\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:45PM up 20 days, 6:35, 1 user, load averages: 0.17, 0.20, 0.21\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:17 up 1 day, 9:16, 1 user, load average: 0.27, 0.09, 0.02\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:18 up 6:20, 1 user, load average: 1.77, 1.43, 1.32\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.89\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:45:31.488547+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `5af40b2890cd4ae48d6d690607291c2a` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:50:00.002572+00:00 |
| **Fin** | 2025-12-16T00:50:31.397910+00:00 |
| **Durée** | 31.4s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003092", "end": "2025-12-15 19:50:15.763946", "msg": "", "rc": 0, "start": "2025-12-15 19:50:15.760854", "stderr": "", "stderr_lines": [], "stdout": " 19:50:15 up 20 days, 6:41, 1 user, load average: 0.31, 0.26, 0.19", "stdout_lines": [" 19:50:15 up 20 days, 6:41, 1 user, load average: 0.31, 0.26, 0.19"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003738", "end": "2025-12-15 19:50:15.779886", "msg": "", "rc": 0, "start": "2025-12-15 19:50:15.776148", "stderr": "", "stderr_lines": [], "stdout": " 19:50:15 up 20 days, 9:00, 1 user, load average: 0.00, 0.00, 0.03", "stdout_lines": [" 19:50:15 up 20 days, 9:00, 1 user, load average: 0.00, 0.00, 0.03"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003328", "end": "2025-12-15 19:50:15.776344", "msg": "", "rc": 0, "start": "2025-12-15 19:50:15.773016", "stderr": "", "stderr_lines": [], "stdout": " 19:50:15 up 20 days, 7:01, 1 user, load average: 0.87, 0.90, 0.77", "stdout_lines": [" 19:50:15 up 20 days, 7:01, 1 user, load average: 0.87, 0.90, 0.77"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002881", "end": "2025-12-15 19:50:15.795115", "msg": "", "rc": 0, "start": "2025-12-15 19:50:15.792234", "stderr": "", "stderr_lines": [], "stdout": " 19:50:15 up 1 day, 9:22, 1 user, load average: 0.28, 0.29, 0.33", "stdout_lines": [" 19:50:15 up 1 day, 9:22, 1 user, load average: 0.28, 0.29, 0.33"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004211", "end": "2025-12-15 19:50:15.805725", "msg": "", "rc": 0, "start": "2025-12-15 19:50:15.801514", "stderr": "", "stderr_lines": [], "stdout": " 19:50:15 up 20 days, 8:14, 1 user, load average: 0.83, 0.65, 0.64", "stdout_lines": [" 19:50:15 up 20 days, 8:14, 1 user, load average: 0.83, 0.65, 0.64"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002763", "end": "2025-12-15 19:49:51.799047", "msg": "", "rc": 0, "start": "2025-12-15 19:49:51.796284", "stderr": "", "stderr_lines": [], "stdout": " 19:49:51 up 9 days, 7:39, 0 user, load average: 0.24, 0.36, 0.21", "stdout_lines": [" 19:49:51 up 9 days, 7:39, 0 user, load average: 0.24, 0.36, 0.21"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003525", "end": "2025-12-15 19:49:45.968106", "msg": "", "rc": 0, "start": "2025-12-15 19:49:45.964581", "stderr": "", "stderr_lines": [], "stdout": " 19:49:45 up 16 days, 3:51, 0 user, load average: 0.11, 0.05, 0.01", "stdout_lines": [" 19:49:45 up 16 days, 3:51, 0 user, load average: 0.11, 0.05, 0.01"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009427", "end": "2025-12-15 19:50:16.626741", "msg": "", "rc": 0, "start": "2025-12-15 19:50:16.617314", "stderr": "", "stderr_lines": [], "stdout": " 19:50:16 up 192 days, 11:23, 1 user, load average: 0.27, 0.31, 0.28", "stdout_lines": [" 19:50:16 up 192 days, 11:23, 1 user, load average: 0.27, 0.31, 0.28"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008549", "end": "2025-12-15 19:50:16.675496", "msg": "", "rc": 0, "start": "2025-12-15 19:50:16.666947", "stderr": "", "stderr_lines": [], "stdout": " 19:50:16 up 192 days, 11:23, 1 user, load average: 0.10, 0.10, 0.09", "stdout_lines": [" 19:50:16 up 192 days, 11:23, 1 user, load average: 0.10, 0.10, 0.09"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004822", "end": "2025-12-15 19:50:17.052605", "msg": "", "rc": 0, "start": "2025-12-15 19:50:17.047783", "stderr": "", "stderr_lines": [], "stdout": " 19:50:17 up 1 day, 9:21, 1 user, load average: 0.10, 0.07, 0.01", "stdout_lines": [" 19:50:17 up 1 day, 9:21, 1 user, load average: 0.10, 0.07, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003124", "end": "2025-12-15 19:49:49.301650", "msg": "", "rc": 0, "start": "2025-12-15 19:49:49.298526", "stderr": "", "stderr_lines": [], "stdout": " 19:49:49 up 18 days, 22:44, 0 user, load average: 0.35, 0.41, 0.42", "stdout_lines": [" 19:49:49 up 18 days, 22:44, 0 user, load average: 0.35, 0.41, 0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004290", "end": "2025-12-15 16:50:17.257392", "msg": "", "rc": 0, "start": "2025-12-15 16:50:17.253102", "stderr": "", "stderr_lines": [], "stdout": " 4:50PM up 20 days, 6:40, 1 user, load averages: 0.30, 0.24, 0.22", "stdout_lines": [" 4:50PM up 20 days, 6:40, 1 user, load averages: 0.30, 0.24, 0.22"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005445", "end": "2025-12-15 19:49:55.286867", "msg": "", "rc": 0, "start": "2025-12-15 19:49:55.281422", "stderr": "", "stderr_lines": [], "stdout": " 19:49:55 up 15 days, 9:05, 0 user, load average: 0.19, 0.22, 0.18", "stdout_lines": [" 19:49:55 up 15 days, 9:05, 0 user, load average: 0.19, 0.22, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019654", "end": "2025-12-15 19:50:17.274231", "msg": "", "rc": 0, "start": "2025-12-15 19:50:17.254577", "stderr": "", "stderr_lines": [], "stdout": " 19:50:17 up 13 days, 9:16, 1 user, load average: 0.22, 0.12, 0.10", "stdout_lines": [" 19:50:17 up 13 days, 9:16, 1 user, load average: 0.22, 0.12, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003807", "end": "2025-12-15 19:50:17.580012", "msg": "", "rc": 0, "start": "2025-12-15 19:50:17.576205", "stderr": "", "stderr_lines": [], "stdout": " 19:50:17 up 1 day, 9:21, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 19:50:17 up 1 day, 9:21, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.016450", "end": "2025-12-15 19:50:18.098637", "msg": "", "rc": 0, "start": "2025-12-15 19:50:18.082187", "stderr": "", "stderr_lines": [], "stdout": " 19:50:18 up 6:25, 1 user, load average: 1.24, 1.27, 1.28", "stdout_lines": [" 19:50:18 up 6:25, 1 user, load average: 1.24, 1.27, 1.28"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004438", "end": "2025-12-15 19:50:18.527479", "msg": "", "rc": 0, "start": "2025-12-15 19:50:18.523041", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004265", "end": "2025-12-15 19:50:18.550011", "msg": "", "rc": 0, "start": "2025-12-15 19:50:18.545746", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004358", "end": "2025-12-15 19:50:18.576654", "msg": "", "rc": 0, "start": "2025-12-15 19:50:18.572296", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005398", "end": "2025-12-15 19:50:18.617865", "msg": "", "rc": 0, "start": "2025-12-15 19:50:18.612467", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004751", "end": "2025-12-15 19:50:18.636559", "msg": "", "rc": 0, "start": "2025-12-15 19:50:18.631808", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005360", "end": "2025-12-15 19:49:54.577896", "msg": "", "rc": 0, "start": "2025-12-15 19:49:54.572536", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005807", "end": "2025-12-15 19:49:48.734592", "msg": "", "rc": 0, "start": "2025-12-15 19:49:48.728785", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010849", "end": "2025-12-15 19:50:19.383668", "msg": "", "rc": 0, "start": "2025-12-15 19:50:19.372819", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011582", "end": "2025-12-15 19:50:19.489190", "msg": "", "rc": 0, "start": "2025-12-15 19:50:19.477608", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005662", "end": "2025-12-15 19:50:19.815077", "msg": "", "rc": 0, "start": "2025-12-15 19:50:19.809415", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005427", "end": "2025-12-15 19:49:57.976162", "msg": "", "rc": 0, "start": "2025-12-15 19:49:57.970735", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005565", "end": "2025-12-15 19:49:52.054401", "msg": "", "rc": 0, "start": "2025-12-15 19:49:52.048836", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005566", "end": "2025-12-15 16:50:20.049559", "msg": "", "rc": 0, "start": "2025-12-15 16:50:20.043993", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.024968", "end": "2025-12-15 19:50:20.044563", "msg": "", "rc": 0, "start": "2025-12-15 19:50:20.019595", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005380", "end": "2025-12-15 19:50:20.383085", "msg": "", "rc": 0, "start": "2025-12-15 19:50:20.377705", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020645", "end": "2025-12-15 19:50:20.893233", "msg": "", "rc": 0, "start": "2025-12-15 19:50:20.872588", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004814", "end": "2025-12-15 19:50:21.344671", "msg": "", "rc": 0, "start": "2025-12-15 19:50:21.339857", "stderr": "", "stderr_lines": [], "stdout": "80.6%", "stdout_lines": ["80.6%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004211", "end": "2025-12-15 19:50:21.374650", "msg": "", "rc": 0, "start": "2025-12-15 19:50:21.370439", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004742", "end": "2025-12-15 19:50:21.421916", "msg": "", "rc": 0, "start": "2025-12-15 19:50:21.417174", "stderr": "", "stderr_lines": [], "stdout": "48.8%", "stdout_lines": ["48.8%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004742", "end": "2025-12-15 19:50:21.475417", "msg": "", "rc": 0, "start": "2025-12-15 19:50:21.470675", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005732", "end": "2025-12-15 19:50:21.494287", "msg": "", "rc": 0, "start": "2025-12-15 19:50:21.488555", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003689", "end": "2025-12-15 19:49:57.419876", "msg": "", "rc": 0, "start": "2025-12-15 19:49:57.416187", "stderr": "", "stderr_lines": [], "stdout": "71.0%", "stdout_lines": ["71.0%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004217", "end": "2025-12-15 19:49:51.564392", "msg": "", "rc": 0, "start": "2025-12-15 19:49:51.560175", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012078", "end": "2025-12-15 19:50:22.220220", "msg": "", "rc": 0, "start": "2025-12-15 19:50:22.208142", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011145", "end": "2025-12-15 19:50:22.305707", "msg": "", "rc": 0, "start": "2025-12-15 19:50:22.294562", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005773", "end": "2025-12-15 19:50:22.646051", "msg": "", "rc": 0, "start": "2025-12-15 19:50:22.640278", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004185", "end": "2025-12-15 19:49:54.871752", "msg": "", "rc": 0, "start": "2025-12-15 19:49:54.867567", "stderr": "", "stderr_lines": [], "stdout": "25.6%", "stdout_lines": ["25.6%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005811", "end": "2025-12-15 16:50:22.877265", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:50:22.871454", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007112", "end": "2025-12-15 19:50:00.871314", "msg": "", "rc": 0, "start": "2025-12-15 19:50:00.864202", "stderr": "", "stderr_lines": [], "stdout": "55.7%", "stdout_lines": ["55.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025786", "end": "2025-12-15 19:50:22.878233", "msg": "", "rc": 0, "start": "2025-12-15 19:50:22.852447", "stderr": "", "stderr_lines": [], "stdout": "19.1%", "stdout_lines": ["19.1%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005452", "end": "2025-12-15 19:50:23.202474", "msg": "", "rc": 0, "start": "2025-12-15 19:50:23.197022", "stderr": "", "stderr_lines": [], "stdout": "13.8%", "stdout_lines": ["13.8%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.019223", "end": "2025-12-15 19:50:23.752255", "msg": "", "rc": 0, "start": "2025-12-15 19:50:23.733032", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004826", "end": "2025-12-15 19:50:24.165397", "msg": "", "rc": 0, "start": "2025-12-15 19:50:24.160571", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005057", "end": "2025-12-15 19:50:24.156712", "msg": "", "rc": 0, "start": "2025-12-15 19:50:24.151655", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005467", "end": "2025-12-15 19:50:24.221336", "msg": "", "rc": 0, "start": "2025-12-15 19:50:24.215869", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006251", "end": "2025-12-15 19:50:24.264897", "msg": "", "rc": 0, "start": "2025-12-15 19:50:24.258646", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003496", "end": "2025-12-15 19:50:24.277528", "msg": "", "rc": 0, "start": "2025-12-15 19:50:24.274032", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002400", "end": "2025-12-15 19:50:00.206915", "msg": "", "rc": 0, "start": "2025-12-15 19:50:00.204515", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002845", "end": "2025-12-15 19:49:54.384255", "msg": "", "rc": 0, "start": "2025-12-15 19:49:54.381410", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011930", "end": "2025-12-15 19:50:25.039370", "msg": "", "rc": 0, "start": "2025-12-15 19:50:25.027440", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012982", "end": "2025-12-15 19:50:25.036594", "msg": "", "rc": 0, "start": "2025-12-15 19:50:25.023612", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003202", "end": "2025-12-15 19:50:25.438581", "msg": "", "rc": 0, "start": "2025-12-15 19:50:25.435379", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003440", "end": "2025-12-15 19:49:57.676751", "msg": "", "rc": 0, "start": "2025-12-15 19:49:57.673311", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003949", "end": "2025-12-15 16:50:25.660814", "msg": "", "rc": 0, "start": "2025-12-15 16:50:25.656865", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002679", "end": "2025-12-15 19:50:03.661262", "msg": "", "rc": 0, "start": "2025-12-15 19:50:03.658583", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028334", "end": "2025-12-15 19:50:25.758739", "msg": "", "rc": 0, "start": "2025-12-15 19:50:25.730405", "stderr": "", "stderr_lines": [], "stdout": "35.5°C", "stdout_lines": ["35.5°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003117", "end": "2025-12-15 19:50:26.107169", "msg": "", "rc": 0, "start": "2025-12-15 19:50:26.104052", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012410", "end": "2025-12-15 19:50:26.554603", "msg": "", "rc": 0, "start": "2025-12-15 19:50:26.542193", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004150", "end": "2025-12-15 19:50:26.943521", "msg": "", "rc": 0, "start": "2025-12-15 19:50:26.939371", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004358", "end": "2025-12-15 19:50:26.961230", "msg": "", "rc": 0, "start": "2025-12-15 19:50:26.956872", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004699", "end": "2025-12-15 19:50:27.024659", "msg": "", "rc": 0, "start": "2025-12-15 19:50:27.019960", "stderr": "", "stderr_lines": [], "stdout": "0.82", "stdout_lines": ["0.82"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005614", "end": "2025-12-15 19:50:27.061012", "msg": "", "rc": 0, "start": "2025-12-15 19:50:27.055398", "stderr": "", "stderr_lines": [], "stdout": "0.78", "stdout_lines": ["0.78"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005359", "end": "2025-12-15 19:50:27.072921", "msg": "", "rc": 0, "start": "2025-12-15 19:50:27.067562", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004247", "end": "2025-12-15 19:50:03.053020", "msg": "", "rc": 0, "start": "2025-12-15 19:50:03.048773", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005126", "end": "2025-12-15 19:49:57.196865", "msg": "", "rc": 0, "start": "2025-12-15 19:49:57.191739", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011114", "end": "2025-12-15 19:50:27.833334", "msg": "", "rc": 0, "start": "2025-12-15 19:50:27.822220", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010058", "end": "2025-12-15 19:50:27.931107", "msg": "", "rc": 0, "start": "2025-12-15 19:50:27.921049", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005960", "end": "2025-12-15 19:50:28.304585", "msg": "", "rc": 0, "start": "2025-12-15 19:50:28.298625", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004431", "end": "2025-12-15 19:50:06.471306", "msg": "", "rc": 0, "start": "2025-12-15 19:50:06.466875", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006179", "end": "2025-12-15 16:50:28.504079", "msg": "", "rc": 0, "start": "2025-12-15 16:50:28.497900", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005147", "end": "2025-12-15 19:50:00.581239", "msg": "", "rc": 0, "start": "2025-12-15 19:50:00.576092", "stderr": "", "stderr_lines": [], "stdout": "0.85", "stdout_lines": ["0.85"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024329", "end": "2025-12-15 19:50:28.481875", "msg": "", "rc": 0, "start": "2025-12-15 19:50:28.457546", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005321", "end": "2025-12-15 19:50:28.864546", "msg": "", "rc": 0, "start": "2025-12-15 19:50:28.859225", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.017766", "end": "2025-12-15 19:50:29.417810", "msg": "", "rc": 0, "start": "2025-12-15 19:50:29.400044", "stderr": "", "stderr_lines": [], "stdout": "1.76", "stdout_lines": ["1.76"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:15 up 1 day, 9:22, 1 user, load average: 0.28, 0.29, 0.33\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.39\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:15 up 20 days, 6:41, 1 user, load average: 0.31, 0.26, 0.19\nDisk Usage: 23%\nMemory Usage: 80.6%\nCPU Load: 0.39\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:15 up 20 days, 7:01, 1 user, load average: 0.87, 0.90, 0.77\nDisk Usage: 14%\nMemory Usage: 48.8%\nCPU Load: 0.82\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:15 up 20 days, 8:14, 1 user, load average: 0.83, 0.65, 0.64\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.78\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:15 up 20 days, 9:00, 1 user, load average: 0.00, 0.00, 0.03\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:17 up 13 days, 9:16, 1 user, load average: 0.22, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.33\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:16 up 192 days, 11:23, 1 user, load average: 0.27, 0.31, 0.28\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.29\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:16 up 192 days, 11:23, 1 user, load average: 0.10, 0.10, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.16\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:51 up 9 days, 7:39, 0 user, load average: 0.24, 0.36, 0.21\nDisk Usage: 48%\nMemory Usage: 71.0%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:45 up 16 days, 3:51, 0 user, load average: 0.11, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:17 up 1 day, 9:21, 1 user, load average: 0.10, 0.07, 0.01\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:49 up 18 days, 22:44, 0 user, load average: 0.35, 0.41, 0.42\nDisk Usage: 28%\nMemory Usage: 25.6%\nCPU Load: 0.85\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:55 up 15 days, 9:05, 0 user, load average: 0.19, 0.22, 0.18\nDisk Usage: 75%\nMemory Usage: 55.7%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:50PM up 20 days, 6:40, 1 user, load averages: 0.30, 0.24, 0.22\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:17 up 1 day, 9:21, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:18 up 6:25, 1 user, load average: 1.24, 1.27, 1.28\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.76\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:50:31.473778+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `dc79e9f01624477e963714f52197d49e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T00:55:00.003017+00:00 |
| **Fin** | 2025-12-16T00:55:31.764800+00:00 |
| **Durée** | 31.8s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003093", "end": "2025-12-15 19:55:16.044053", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.040960", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 20 days, 6:46, 1 user, load average: 0.27, 0.28, 0.21", "stdout_lines": [" 19:55:16 up 20 days, 6:46, 1 user, load average: 0.27, 0.28, 0.21"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003227", "end": "2025-12-15 19:55:16.071981", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.068754", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 20 days, 7:06, 1 user, load average: 0.63, 0.78, 0.75", "stdout_lines": [" 19:55:16 up 20 days, 7:06, 1 user, load average: 0.63, 0.78, 0.75"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003891", "end": "2025-12-15 19:55:16.076467", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.072576", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 20 days, 9:05, 1 user, load average: 0.01, 0.01, 0.01", "stdout_lines": [" 19:55:16 up 20 days, 9:05, 1 user, load average: 0.01, 0.01, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003040", "end": "2025-12-15 19:55:16.095096", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.092056", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 1 day, 9:27, 1 user, load average: 0.11, 0.18, 0.27", "stdout_lines": [" 19:55:16 up 1 day, 9:27, 1 user, load average: 0.11, 0.18, 0.27"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002866", "end": "2025-12-15 19:54:52.078809", "msg": "", "rc": 0, "start": "2025-12-15 19:54:52.075943", "stderr": "", "stderr_lines": [], "stdout": " 19:54:52 up 9 days, 7:44, 0 user, load average: 0.04, 0.14, 0.15", "stdout_lines": [" 19:54:52 up 9 days, 7:44, 0 user, load average: 0.04, 0.14, 0.15"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008665", "end": "2025-12-15 19:55:16.888537", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.879872", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 192 days, 11:28, 1 user, load average: 0.04, 0.08, 0.08", "stdout_lines": [" 19:55:16 up 192 days, 11:28, 1 user, load average: 0.04, 0.08, 0.08"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009353", "end": "2025-12-15 19:55:16.920389", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.911036", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 192 days, 11:28, 1 user, load average: 0.23, 0.31, 0.28", "stdout_lines": [" 19:55:16 up 192 days, 11:28, 1 user, load average: 0.23, 0.31, 0.28"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.006924", "end": "2025-12-15 19:55:17.116378", "msg": "", "rc": 0, "start": "2025-12-15 19:55:16.109454", "stderr": "", "stderr_lines": [], "stdout": " 19:55:16 up 20 days, 8:19, 1 user, load average: 0.74, 0.58, 0.61", "stdout_lines": [" 19:55:16 up 20 days, 8:19, 1 user, load average: 0.74, 0.58, 0.61"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003680", "end": "2025-12-15 19:54:46.793430", "msg": "", "rc": 0, "start": "2025-12-15 19:54:46.789750", "stderr": "", "stderr_lines": [], "stdout": " 19:54:46 up 16 days, 3:56, 0 user, load average: 0.08, 0.04, 0.00", "stdout_lines": [" 19:54:46 up 16 days, 3:56, 0 user, load average: 0.08, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004792", "end": "2025-12-15 19:55:17.533523", "msg": "", "rc": 0, "start": "2025-12-15 19:55:17.528731", "stderr": "", "stderr_lines": [], "stdout": " 19:55:17 up 1 day, 9:26, 1 user, load average: 0.08, 0.07, 0.02", "stdout_lines": [" 19:55:17 up 1 day, 9:26, 1 user, load average: 0.08, 0.07, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003064", "end": "2025-12-15 19:54:49.687641", "msg": "", "rc": 0, "start": "2025-12-15 19:54:49.684577", "stderr": "", "stderr_lines": [], "stdout": " 19:54:49 up 18 days, 22:49, 0 user, load average: 0.39, 0.47, 0.45", "stdout_lines": [" 19:54:49 up 18 days, 22:49, 0 user, load average: 0.39, 0.47, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003324", "end": "2025-12-15 19:54:55.722421", "msg": "", "rc": 0, "start": "2025-12-15 19:54:55.719097", "stderr": "", "stderr_lines": [], "stdout": " 19:54:55 up 15 days, 9:10, 0 user, load average: 0.16, 0.23, 0.19", "stdout_lines": [" 19:54:55 up 15 days, 9:10, 0 user, load average: 0.16, 0.23, 0.19"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019520", "end": "2025-12-15 19:55:17.667355", "msg": "", "rc": 0, "start": "2025-12-15 19:55:17.647835", "stderr": "", "stderr_lines": [], "stdout": " 19:55:17 up 13 days, 9:21, 1 user, load average: 0.21, 0.11, 0.09", "stdout_lines": [" 19:55:17 up 13 days, 9:21, 1 user, load average: 0.21, 0.11, 0.09"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004146", "end": "2025-12-15 16:55:17.934779", "msg": "", "rc": 0, "start": "2025-12-15 16:55:17.930633", "stderr": "", "stderr_lines": [], "stdout": " 4:55PM up 20 days, 6:45, 1 user, load averages: 0.39, 0.29, 0.24", "stdout_lines": [" 4:55PM up 20 days, 6:45, 1 user, load averages: 0.39, 0.29, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003734", "end": "2025-12-15 19:55:18.108077", "msg": "", "rc": 0, "start": "2025-12-15 19:55:18.104343", "stderr": "", "stderr_lines": [], "stdout": " 19:55:18 up 1 day, 9:26, 1 user, load average: 0.04, 0.05, 0.01", "stdout_lines": [" 19:55:18 up 1 day, 9:26, 1 user, load average: 0.04, 0.05, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.010151", "end": "2025-12-15 19:55:18.599930", "msg": "", "rc": 0, "start": "2025-12-15 19:55:18.589779", "stderr": "", "stderr_lines": [], "stdout": " 19:55:18 up 6:30, 1 user, load average: 1.40, 1.27, 1.27", "stdout_lines": [" 19:55:18 up 6:30, 1 user, load average: 1.40, 1.27, 1.27"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004349", "end": "2025-12-15 19:55:19.018111", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.013762", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004259", "end": "2025-12-15 19:55:19.017936", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.013677", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004714", "end": "2025-12-15 19:55:19.064228", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.059514", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004821", "end": "2025-12-15 19:55:19.095694", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.090873", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005744", "end": "2025-12-15 19:55:19.114355", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.108611", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005063", "end": "2025-12-15 19:54:55.118940", "msg": "", "rc": 0, "start": "2025-12-15 19:54:55.113877", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005695", "end": "2025-12-15 19:54:49.268255", "msg": "", "rc": 0, "start": "2025-12-15 19:54:49.262560", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011539", "end": "2025-12-15 19:55:19.915240", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.903701", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010694", "end": "2025-12-15 19:55:19.999432", "msg": "", "rc": 0, "start": "2025-12-15 19:55:19.988738", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005756", "end": "2025-12-15 19:55:20.338005", "msg": "", "rc": 0, "start": "2025-12-15 19:55:20.332249", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005417", "end": "2025-12-15 19:54:52.566815", "msg": "", "rc": 0, "start": "2025-12-15 19:54:52.561398", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004557", "end": "2025-12-15 19:54:58.537615", "msg": "", "rc": 0, "start": "2025-12-15 19:54:58.533058", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005503", "end": "2025-12-15 16:55:20.558627", "msg": "", "rc": 0, "start": "2025-12-15 16:55:20.553124", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025468", "end": "2025-12-15 19:55:20.587735", "msg": "", "rc": 0, "start": "2025-12-15 19:55:20.562267", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005326", "end": "2025-12-15 19:55:20.908127", "msg": "", "rc": 0, "start": "2025-12-15 19:55:20.902801", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.022547", "end": "2025-12-15 19:55:21.494387", "msg": "", "rc": 0, "start": "2025-12-15 19:55:21.471840", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004178", "end": "2025-12-15 19:55:21.879141", "msg": "", "rc": 0, "start": "2025-12-15 19:55:21.874963", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004394", "end": "2025-12-15 19:55:21.879806", "msg": "", "rc": 0, "start": "2025-12-15 19:55:21.875412", "stderr": "", "stderr_lines": [], "stdout": "80.7%", "stdout_lines": ["80.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004861", "end": "2025-12-15 19:55:21.915144", "msg": "", "rc": 0, "start": "2025-12-15 19:55:21.910283", "stderr": "", "stderr_lines": [], "stdout": "48.8%", "stdout_lines": ["48.8%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005383", "end": "2025-12-15 19:55:21.966941", "msg": "", "rc": 0, "start": "2025-12-15 19:55:21.961558", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005316", "end": "2025-12-15 19:55:21.975150", "msg": "", "rc": 0, "start": "2025-12-15 19:55:21.969834", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004343", "end": "2025-12-15 19:54:57.916038", "msg": "", "rc": 0, "start": "2025-12-15 19:54:57.911695", "stderr": "", "stderr_lines": [], "stdout": "71.0%", "stdout_lines": ["71.0%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004876", "end": "2025-12-15 19:54:52.054637", "msg": "", "rc": 0, "start": "2025-12-15 19:54:52.049761", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010787", "end": "2025-12-15 19:55:22.735492", "msg": "", "rc": 0, "start": "2025-12-15 19:55:22.724705", "stderr": "", "stderr_lines": [], "stdout": "6.9%", "stdout_lines": ["6.9%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011981", "end": "2025-12-15 19:55:22.753980", "msg": "", "rc": 0, "start": "2025-12-15 19:55:22.741999", "stderr": "", "stderr_lines": [], "stdout": "12.8%", "stdout_lines": ["12.8%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005806", "end": "2025-12-15 19:55:23.176396", "msg": "", "rc": 0, "start": "2025-12-15 19:55:23.170590", "stderr": "", "stderr_lines": [], "stdout": "34.2%", "stdout_lines": ["34.2%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004343", "end": "2025-12-15 19:54:55.390043", "msg": "", "rc": 0, "start": "2025-12-15 19:54:55.385700", "stderr": "", "stderr_lines": [], "stdout": "26.0%", "stdout_lines": ["26.0%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005258", "end": "2025-12-15 16:55:23.376937", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 16:55:23.371679", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003922", "end": "2025-12-15 19:55:01.397642", "msg": "", "rc": 0, "start": "2025-12-15 19:55:01.393720", "stderr": "", "stderr_lines": [], "stdout": "55.8%", "stdout_lines": ["55.8%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025661", "end": "2025-12-15 19:55:23.393353", "msg": "", "rc": 0, "start": "2025-12-15 19:55:23.367692", "stderr": "", "stderr_lines": [], "stdout": "19.3%", "stdout_lines": ["19.3%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005344", "end": "2025-12-15 19:55:23.748834", "msg": "", "rc": 0, "start": "2025-12-15 19:55:23.743490", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.013314", "end": "2025-12-15 19:55:24.289744", "msg": "", "rc": 0, "start": "2025-12-15 19:55:24.276430", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005105", "end": "2025-12-15 19:55:24.634024", "msg": "", "rc": 0, "start": "2025-12-15 19:55:24.628919", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004950", "end": "2025-12-15 19:55:24.681784", "msg": "", "rc": 0, "start": "2025-12-15 19:55:24.676834", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006039", "end": "2025-12-15 19:55:24.718436", "msg": "", "rc": 0, "start": "2025-12-15 19:55:24.712397", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006757", "end": "2025-12-15 19:55:24.761381", "msg": "", "rc": 0, "start": "2025-12-15 19:55:24.754624", "stderr": "", "stderr_lines": [], "stdout": "53.0°C", "stdout_lines": ["53.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003264", "end": "2025-12-15 19:55:24.772054", "msg": "", "rc": 0, "start": "2025-12-15 19:55:24.768790", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002703", "end": "2025-12-15 19:55:00.711797", "msg": "", "rc": 0, "start": "2025-12-15 19:55:00.709094", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003137", "end": "2025-12-15 19:54:54.854679", "msg": "", "rc": 0, "start": "2025-12-15 19:54:54.851542", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011766", "end": "2025-12-15 19:55:25.628653", "msg": "", "rc": 0, "start": "2025-12-15 19:55:25.616887", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013020", "end": "2025-12-15 19:55:25.624598", "msg": "", "rc": 0, "start": "2025-12-15 19:55:25.611578", "stderr": "", "stderr_lines": [], "stdout": "34.6°C", "stdout_lines": ["34.6°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003247", "end": "2025-12-15 19:55:25.964589", "msg": "", "rc": 0, "start": "2025-12-15 19:55:25.961342", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003045", "end": "2025-12-15 19:54:58.190935", "msg": "", "rc": 0, "start": "2025-12-15 19:54:58.187890", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004232", "end": "2025-12-15 16:55:26.232626", "msg": "", "rc": 0, "start": "2025-12-15 16:55:26.228394", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003513", "end": "2025-12-15 19:55:04.287974", "msg": "", "rc": 0, "start": "2025-12-15 19:55:04.284461", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028526", "end": "2025-12-15 19:55:26.261350", "msg": "", "rc": 0, "start": "2025-12-15 19:55:26.232824", "stderr": "", "stderr_lines": [], "stdout": "35.4°C", "stdout_lines": ["35.4°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002946", "end": "2025-12-15 19:55:26.526644", "msg": "", "rc": 0, "start": "2025-12-15 19:55:26.523698", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003971", "end": "2025-12-15 19:55:27.078057", "msg": "", "rc": 0, "start": "2025-12-15 19:55:27.074086", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004284", "end": "2025-12-15 19:55:27.421873", "msg": "", "rc": 0, "start": "2025-12-15 19:55:27.417589", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004130", "end": "2025-12-15 19:55:27.439819", "msg": "", "rc": 0, "start": "2025-12-15 19:55:27.435689", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004769", "end": "2025-12-15 19:55:27.456755", "msg": "", "rc": 0, "start": "2025-12-15 19:55:27.451986", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005387", "end": "2025-12-15 19:55:27.518970", "msg": "", "rc": 0, "start": "2025-12-15 19:55:27.513583", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005654", "end": "2025-12-15 19:55:27.537005", "msg": "", "rc": 0, "start": "2025-12-15 19:55:27.531351", "stderr": "", "stderr_lines": [], "stdout": "0.78", "stdout_lines": ["0.78"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004281", "end": "2025-12-15 19:55:03.515735", "msg": "", "rc": 0, "start": "2025-12-15 19:55:03.511454", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005056", "end": "2025-12-15 19:54:57.649763", "msg": "", "rc": 0, "start": "2025-12-15 19:54:57.644707", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.009988", "end": "2025-12-15 19:55:28.326880", "msg": "", "rc": 0, "start": "2025-12-15 19:55:28.316892", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011142", "end": "2025-12-15 19:55:28.333737", "msg": "", "rc": 0, "start": "2025-12-15 19:55:28.322595", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005983", "end": "2025-12-15 19:55:28.762692", "msg": "", "rc": 0, "start": "2025-12-15 19:55:28.756709", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005894", "end": "2025-12-15 19:55:00.970629", "msg": "", "rc": 0, "start": "2025-12-15 19:55:00.964735", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006416", "end": "2025-12-15 16:55:28.975385", "msg": "", "rc": 0, "start": "2025-12-15 16:55:28.968969", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004657", "end": "2025-12-15 19:55:06.959512", "msg": "", "rc": 0, "start": "2025-12-15 19:55:06.954855", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024316", "end": "2025-12-15 19:55:28.958270", "msg": "", "rc": 0, "start": "2025-12-15 19:55:28.933954", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005335", "end": "2025-12-15 19:55:29.313294", "msg": "", "rc": 0, "start": "2025-12-15 19:55:29.307959", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.020866", "end": "2025-12-15 19:55:29.908132", "msg": "", "rc": 0, "start": "2025-12-15 19:55:29.887266", "stderr": "", "stderr_lines": [], "stdout": "1.73", "stdout_lines": ["1.73"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 1 day, 9:27, 1 user, load average: 0.11, 0.18, 0.27\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.09\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 20 days, 6:46, 1 user, load average: 0.27, 0.28, 0.21\nDisk Usage: 23%\nMemory Usage: 80.7%\nCPU Load: 0.29\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 20 days, 7:06, 1 user, load average: 0.63, 0.78, 0.75\nDisk Usage: 14%\nMemory Usage: 48.8%\nCPU Load: 0.53\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 20 days, 8:19, 1 user, load average: 0.74, 0.58, 0.61\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.78\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 20 days, 9:05, 1 user, load average: 0.01, 0.01, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:17 up 13 days, 9:21, 1 user, load average: 0.21, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.32\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 192 days, 11:28, 1 user, load average: 0.23, 0.31, 0.28\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.42\nCPU Temp: 34.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:16 up 192 days, 11:28, 1 user, load average: 0.04, 0.08, 0.08\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.03\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:52 up 9 days, 7:44, 0 user, load average: 0.04, 0.14, 0.15\nDisk Usage: 48%\nMemory Usage: 71.0%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:46 up 16 days, 3:56, 0 user, load average: 0.08, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:17 up 1 day, 9:26, 1 user, load average: 0.08, 0.07, 0.02\nDisk Usage: 1%\nMemory Usage: 34.2%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:49 up 18 days, 22:49, 0 user, load average: 0.39, 0.47, 0.45\nDisk Usage: 28%\nMemory Usage: 26.0%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:55 up 15 days, 9:10, 0 user, load average: 0.16, 0.23, 0.19\nDisk Usage: 75%\nMemory Usage: 55.8%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:55PM up 20 days, 6:45, 1 user, load averages: 0.39, 0.29, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:18 up 1 day, 9:26, 1 user, load average: 0.04, 0.05, 0.01\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:18 up 6:30, 1 user, load average: 1.40, 1.27, 1.27\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.73\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T00:55:31.823374+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `67f86e211bc54d2b91c889949e0d4846` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:00:00.000539+00:00 |
| **Fin** | 2025-12-16T01:00:22.761178+00:00 |
| **Durée** | 22.8s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002982", "end": "2025-12-15 20:00:11.800238", "msg": "", "rc": 0, "start": "2025-12-15 20:00:11.797256", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 20 days, 6:51, 1 user, load average: 0.31, 0.32, 0.25", "stdout_lines": [" 20:00:11 up 20 days, 6:51, 1 user, load average: 0.31, 0.32, 0.25"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003883", "end": "2025-12-15 20:00:11.819677", "msg": "", "rc": 0, "start": "2025-12-15 20:00:11.815794", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 20 days, 9:10, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 20:00:11 up 20 days, 9:10, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003480", "end": "2025-12-15 20:00:11.834388", "msg": "", "rc": 0, "start": "2025-12-15 20:00:11.830908", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 20 days, 7:11, 1 user, load average: 0.58, 0.67, 0.71", "stdout_lines": [" 20:00:11 up 20 days, 7:11, 1 user, load average: 0.58, 0.67, 0.71"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002944", "end": "2025-12-15 20:00:11.849861", "msg": "", "rc": 0, "start": "2025-12-15 20:00:11.846917", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 1 day, 9:32, 1 user, load average: 0.10, 0.17, 0.24", "stdout_lines": [" 20:00:11 up 1 day, 9:32, 1 user, load average: 0.10, 0.17, 0.24"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003997", "end": "2025-12-15 20:00:11.844496", "msg": "", "rc": 0, "start": "2025-12-15 20:00:11.840499", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 20 days, 8:24, 1 user, load average: 0.42, 0.59, 0.62", "stdout_lines": [" 20:00:11 up 20 days, 8:24, 1 user, load average: 0.42, 0.59, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002997", "end": "2025-12-15 19:59:47.677383", "msg": "", "rc": 0, "start": "2025-12-15 19:59:47.674386", "stderr": "", "stderr_lines": [], "stdout": " 19:59:47 up 9 days, 7:49, 0 user, load average: 0.12, 0.11, 0.12", "stdout_lines": [" 19:59:47 up 9 days, 7:49, 0 user, load average: 0.12, 0.11, 0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003516", "end": "2025-12-15 19:59:41.815679", "msg": "", "rc": 0, "start": "2025-12-15 19:59:41.812163", "stderr": "", "stderr_lines": [], "stdout": " 19:59:41 up 16 days, 4:01, 0 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 19:59:41 up 16 days, 4:01, 0 user, load average: 0.01, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008532", "end": "2025-12-15 20:00:12.511083", "msg": "", "rc": 0, "start": "2025-12-15 20:00:12.502551", "stderr": "", "stderr_lines": [], "stdout": " 20:00:12 up 192 days, 11:33, 1 user, load average: 0.04, 0.09, 0.08", "stdout_lines": [" 20:00:12 up 192 days, 11:33, 1 user, load average: 0.04, 0.09, 0.08"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009391", "end": "2025-12-15 20:00:12.557064", "msg": "", "rc": 0, "start": "2025-12-15 20:00:12.547673", "stderr": "", "stderr_lines": [], "stdout": " 20:00:12 up 192 days, 11:33, 1 user, load average: 0.38, 0.35, 0.30", "stdout_lines": [" 20:00:12 up 192 days, 11:33, 1 user, load average: 0.38, 0.35, 0.30"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004738", "end": "2025-12-15 20:00:12.782436", "msg": "", "rc": 0, "start": "2025-12-15 20:00:12.777698", "stderr": "", "stderr_lines": [], "stdout": " 20:00:12 up 1 day, 9:31, 1 user, load average: 0.20, 0.10, 0.03", "stdout_lines": [" 20:00:12 up 1 day, 9:31, 1 user, load average: 0.20, 0.10, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003551", "end": "2025-12-15 19:59:44.993449", "msg": "", "rc": 0, "start": "2025-12-15 19:59:44.989898", "stderr": "", "stderr_lines": [], "stdout": " 19:59:44 up 18 days, 22:54, 0 user, load average: 0.40, 0.43, 0.44", "stdout_lines": [" 19:59:44 up 18 days, 22:54, 0 user, load average: 0.40, 0.43, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002827", "end": "2025-12-15 19:59:50.966006", "msg": "", "rc": 0, "start": "2025-12-15 19:59:50.963179", "stderr": "", "stderr_lines": [], "stdout": " 19:59:50 up 15 days, 9:15, 0 user, load average: 0.34, 0.35, 0.24", "stdout_lines": [" 19:59:50 up 15 days, 9:15, 0 user, load average: 0.34, 0.35, 0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004301", "end": "2025-12-15 17:00:13.038643", "msg": "", "rc": 0, "start": "2025-12-15 17:00:13.034342", "stderr": "", "stderr_lines": [], "stdout": " 5:00PM up 20 days, 6:50, 1 user, load averages: 0.11, 0.17, 0.20", "stdout_lines": [" 5:00PM up 20 days, 6:50, 1 user, load averages: 0.11, 0.17, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003688", "end": "2025-12-15 20:00:13.208548", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.204860", "stderr": "", "stderr_lines": [], "stdout": " 20:00:13 up 1 day, 9:31, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 20:00:13 up 1 day, 9:31, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004590", "end": "2025-12-15 20:00:13.496219", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.491629", "stderr": "", "stderr_lines": [], "stdout": " 20:00:13 up 6:35, 1 user, load average: 1.58, 1.29, 1.27", "stdout_lines": [" 20:00:13 up 6:35, 1 user, load average: 1.58, 1.29, 1.27"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019287", "end": "2025-12-15 20:00:13.201465", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.182178", "stderr": "", "stderr_lines": [], "stdout": " 20:00:13 up 13 days, 9:26, 1 user, load average: 0.13, 0.13, 0.10", "stdout_lines": [" 20:00:13 up 13 days, 9:26, 1 user, load average: 0.13, 0.13, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004299", "end": "2025-12-15 20:00:13.744074", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.739775", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004129", "end": "2025-12-15 20:00:13.767924", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.763795", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004897", "end": "2025-12-15 20:00:13.783663", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.778766", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004829", "end": "2025-12-15 20:00:13.794740", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.789911", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007295", "end": "2025-12-15 20:00:13.807286", "msg": "", "rc": 0, "start": "2025-12-15 20:00:13.799991", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005019", "end": "2025-12-15 19:59:49.599590", "msg": "", "rc": 0, "start": "2025-12-15 19:59:49.594571", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005510", "end": "2025-12-15 19:59:43.763278", "msg": "", "rc": 0, "start": "2025-12-15 19:59:43.757768", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010572", "end": "2025-12-15 20:00:14.500940", "msg": "", "rc": 0, "start": "2025-12-15 20:00:14.490368", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011621", "end": "2025-12-15 20:00:14.524745", "msg": "", "rc": 0, "start": "2025-12-15 20:00:14.513124", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005956", "end": "2025-12-15 20:00:14.705721", "msg": "", "rc": 0, "start": "2025-12-15 20:00:14.699765", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005365", "end": "2025-12-15 19:59:46.979442", "msg": "", "rc": 0, "start": "2025-12-15 19:59:46.974077", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005583", "end": "2025-12-15 17:00:14.971152", "msg": "", "rc": 0, "start": "2025-12-15 17:00:14.965569", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005505", "end": "2025-12-15 19:59:52.986522", "msg": "", "rc": 0, "start": "2025-12-15 19:59:52.981017", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005393", "end": "2025-12-15 20:00:15.125702", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.120309", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007280", "end": "2025-12-15 20:00:15.496075", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.488795", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025369", "end": "2025-12-15 20:00:15.119869", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.094500", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004502", "end": "2025-12-15 20:00:15.661041", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.656539", "stderr": "", "stderr_lines": [], "stdout": "80.8%", "stdout_lines": ["80.8%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004151", "end": "2025-12-15 20:00:15.665841", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.661690", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005042", "end": "2025-12-15 20:00:15.713793", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.708751", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005135", "end": "2025-12-15 20:00:15.706989", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.701854", "stderr": "", "stderr_lines": [], "stdout": "48.9%", "stdout_lines": ["48.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006888", "end": "2025-12-15 20:00:15.743633", "msg": "", "rc": 0, "start": "2025-12-15 20:00:15.736745", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003939", "end": "2025-12-15 19:59:51.534887", "msg": "", "rc": 0, "start": "2025-12-15 19:59:51.530948", "stderr": "", "stderr_lines": [], "stdout": "71.2%", "stdout_lines": ["71.2%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004861", "end": "2025-12-15 19:59:45.711496", "msg": "", "rc": 0, "start": "2025-12-15 19:59:45.706635", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012067", "end": "2025-12-15 20:00:16.371119", "msg": "", "rc": 0, "start": "2025-12-15 20:00:16.359052", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011078", "end": "2025-12-15 20:00:16.378598", "msg": "", "rc": 0, "start": "2025-12-15 20:00:16.367520", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005747", "end": "2025-12-15 20:00:16.609565", "msg": "", "rc": 0, "start": "2025-12-15 20:00:16.603818", "stderr": "", "stderr_lines": [], "stdout": "34.3%", "stdout_lines": ["34.3%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005905", "end": "2025-12-15 17:00:16.852230", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:00:16.846325", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004494", "end": "2025-12-15 19:59:48.912657", "msg": "", "rc": 0, "start": "2025-12-15 19:59:48.908163", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004256", "end": "2025-12-15 19:59:54.865286", "msg": "", "rc": 0, "start": "2025-12-15 19:59:54.861030", "stderr": "", "stderr_lines": [], "stdout": "57.0%", "stdout_lines": ["57.0%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005383", "end": "2025-12-15 20:00:17.028312", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.022929", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007357", "end": "2025-12-15 20:00:17.428915", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.421558", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025495", "end": "2025-12-15 20:00:17.042310", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.016815", "stderr": "", "stderr_lines": [], "stdout": "19.1%", "stdout_lines": ["19.1%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005731", "end": "2025-12-15 20:00:17.555070", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.549339", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004818", "end": "2025-12-15 20:00:17.574000", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.569182", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005717", "end": "2025-12-15 20:00:17.583904", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.578187", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003524", "end": "2025-12-15 20:00:17.612484", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.608960", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006619", "end": "2025-12-15 20:00:17.638721", "msg": "", "rc": 0, "start": "2025-12-15 20:00:17.632102", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002697", "end": "2025-12-15 19:59:53.405550", "msg": "", "rc": 0, "start": "2025-12-15 19:59:53.402853", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003352", "end": "2025-12-15 19:59:47.582115", "msg": "", "rc": 0, "start": "2025-12-15 19:59:47.578763", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011861", "end": "2025-12-15 20:00:18.252687", "msg": "", "rc": 0, "start": "2025-12-15 20:00:18.240826", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013028", "end": "2025-12-15 20:00:18.280420", "msg": "", "rc": 0, "start": "2025-12-15 20:00:18.267392", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003324", "end": "2025-12-15 20:00:18.524007", "msg": "", "rc": 0, "start": "2025-12-15 20:00:18.520683", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002882", "end": "2025-12-15 19:59:50.764830", "msg": "", "rc": 0, "start": "2025-12-15 19:59:50.761948", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003895", "end": "2025-12-15 17:00:18.744525", "msg": "", "rc": 0, "start": "2025-12-15 17:00:18.740630", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002642", "end": "2025-12-15 19:59:56.729095", "msg": "", "rc": 0, "start": "2025-12-15 19:59:56.726453", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002905", "end": "2025-12-15 20:00:18.936024", "msg": "", "rc": 0, "start": "2025-12-15 20:00:18.933119", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003759", "end": "2025-12-15 20:00:19.297031", "msg": "", "rc": 0, "start": "2025-12-15 20:00:19.293272", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028837", "end": "2025-12-15 20:00:18.952637", "msg": "", "rc": 0, "start": "2025-12-15 20:00:18.923800", "stderr": "", "stderr_lines": [], "stdout": "35.6°C", "stdout_lines": ["35.6°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004265", "end": "2025-12-15 20:00:19.488334", "msg": "", "rc": 0, "start": "2025-12-15 20:00:19.484069", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003986", "end": "2025-12-15 20:00:19.498969", "msg": "", "rc": 0, "start": "2025-12-15 20:00:19.494983", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004710", "end": "2025-12-15 20:00:19.515233", "msg": "", "rc": 0, "start": "2025-12-15 20:00:19.510523", "stderr": "", "stderr_lines": [], "stdout": "0.70", "stdout_lines": ["0.70"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004466", "end": "2025-12-15 20:00:19.532480", "msg": "", "rc": 0, "start": "2025-12-15 20:00:19.528014", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005345", "end": "2025-12-15 20:00:19.537735", "msg": "", "rc": 0, "start": "2025-12-15 20:00:19.532390", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004813", "end": "2025-12-15 19:59:55.403548", "msg": "", "rc": 0, "start": "2025-12-15 19:59:55.398735", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005248", "end": "2025-12-15 19:59:49.536596", "msg": "", "rc": 0, "start": "2025-12-15 19:59:49.531348", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010181", "end": "2025-12-15 20:00:20.287858", "msg": "", "rc": 0, "start": "2025-12-15 20:00:20.277677", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011060", "end": "2025-12-15 20:00:20.333480", "msg": "", "rc": 0, "start": "2025-12-15 20:00:20.322420", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005750", "end": "2025-12-15 20:00:20.563628", "msg": "", "rc": 0, "start": "2025-12-15 20:00:20.557878", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005035", "end": "2025-12-15 19:59:52.816238", "msg": "", "rc": 0, "start": "2025-12-15 19:59:52.811203", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003954", "end": "2025-12-15 19:59:58.866382", "msg": "", "rc": 0, "start": "2025-12-15 19:59:58.862428", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006242", "end": "2025-12-15 17:00:20.928430", "msg": "", "rc": 0, "start": "2025-12-15 17:00:20.922188", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024395", "end": "2025-12-15 20:00:20.906219", "msg": "", "rc": 0, "start": "2025-12-15 20:00:20.881824", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005305", "end": "2025-12-15 20:00:21.170344", "msg": "", "rc": 0, "start": "2025-12-15 20:00:21.165039", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006803", "end": "2025-12-15 20:00:21.820407", "msg": "", "rc": 0, "start": "2025-12-15 20:00:21.813604", "stderr": "", "stderr_lines": [], "stdout": "1.54", "stdout_lines": ["1.54"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 1 day, 9:32, 1 user, load average: 0.10, 0.17, 0.24\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.16\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 20 days, 6:51, 1 user, load average: 0.31, 0.32, 0.25\nDisk Usage: 23%\nMemory Usage: 80.8%\nCPU Load: 0.28\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 20 days, 7:11, 1 user, load average: 0.58, 0.67, 0.71\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.70\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 20 days, 8:24, 1 user, load average: 0.42, 0.59, 0.62\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.58\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 20 days, 9:10, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:13 up 13 days, 9:26, 1 user, load average: 0.13, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.27\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:12 up 192 days, 11:33, 1 user, load average: 0.38, 0.35, 0.30\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.48\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:12 up 192 days, 11:33, 1 user, load average: 0.04, 0.09, 0.08\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.04\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:47 up 9 days, 7:49, 0 user, load average: 0.12, 0.11, 0.12\nDisk Usage: 48%\nMemory Usage: 71.2%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:41 up 16 days, 4:01, 0 user, load average: 0.01, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:12 up 1 day, 9:31, 1 user, load average: 0.20, 0.10, 0.03\nDisk Usage: 1%\nMemory Usage: 34.3%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:44 up 18 days, 22:54, 0 user, load average: 0.40, 0.43, 0.44\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.45\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:50 up 15 days, 9:15, 0 user, load average: 0.34, 0.35, 0.24\nDisk Usage: 75%\nMemory Usage: 57.0%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:00PM up 20 days, 6:50, 1 user, load averages: 0.11, 0.17, 0.20\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:13 up 1 day, 9:31, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:13 up 6:35, 1 user, load average: 1.58, 1.29, 1.27\nDisk Usage: 1%\nMemory Usage: 12.6%\nCPU Load: 1.54\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:00:22.792574+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `7a812f98696743119795d31659050840` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:05:00.001063+00:00 |
| **Fin** | 2025-12-16T01:05:22.917696+00:00 |
| **Durée** | 22.9s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003302", "end": "2025-12-15 20:05:11.782850", "msg": "", "rc": 0, "start": "2025-12-15 20:05:11.779548", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 20 days, 6:56, 1 user, load average: 0.31, 0.31, 0.26", "stdout_lines": [" 20:05:11 up 20 days, 6:56, 1 user, load average: 0.31, 0.31, 0.26"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003659", "end": "2025-12-15 20:05:11.800483", "msg": "", "rc": 0, "start": "2025-12-15 20:05:11.796824", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 20 days, 9:15, 1 user, load average: 0.02, 0.02, 0.00", "stdout_lines": [" 20:05:11 up 20 days, 9:15, 1 user, load average: 0.02, 0.02, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003341", "end": "2025-12-15 20:05:11.817241", "msg": "", "rc": 0, "start": "2025-12-15 20:05:11.813900", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 20 days, 7:16, 1 user, load average: 0.76, 0.75, 0.73", "stdout_lines": [" 20:05:11 up 20 days, 7:16, 1 user, load average: 0.76, 0.75, 0.73"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004167", "end": "2025-12-15 20:05:11.813457", "msg": "", "rc": 0, "start": "2025-12-15 20:05:11.809290", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 20 days, 8:29, 1 user, load average: 0.91, 0.60, 0.60", "stdout_lines": [" 20:05:11 up 20 days, 8:29, 1 user, load average: 0.91, 0.60, 0.60"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002804", "end": "2025-12-15 20:05:11.821702", "msg": "", "rc": 0, "start": "2025-12-15 20:05:11.818898", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 1 day, 9:37, 1 user, load average: 0.38, 0.20, 0.22", "stdout_lines": [" 20:05:11 up 1 day, 9:37, 1 user, load average: 0.38, 0.20, 0.22"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002919", "end": "2025-12-15 20:04:47.633776", "msg": "", "rc": 0, "start": "2025-12-15 20:04:47.630857", "stderr": "", "stderr_lines": [], "stdout": " 20:04:47 up 9 days, 7:54, 0 user, load average: 0.01, 0.06, 0.09", "stdout_lines": [" 20:04:47 up 9 days, 7:54, 0 user, load average: 0.01, 0.06, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003418", "end": "2025-12-15 20:04:41.767097", "msg": "", "rc": 0, "start": "2025-12-15 20:04:41.763679", "stderr": "", "stderr_lines": [], "stdout": " 20:04:41 up 16 days, 4:06, 0 user, load average: 0.37, 0.09, 0.02", "stdout_lines": [" 20:04:41 up 16 days, 4:06, 0 user, load average: 0.37, 0.09, 0.02"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008562", "end": "2025-12-15 20:05:12.461863", "msg": "", "rc": 0, "start": "2025-12-15 20:05:12.453301", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 192 days, 11:38, 1 user, load average: 0.15, 0.13, 0.09", "stdout_lines": [" 20:05:12 up 192 days, 11:38, 1 user, load average: 0.15, 0.13, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009327", "end": "2025-12-15 20:05:12.518590", "msg": "", "rc": 0, "start": "2025-12-15 20:05:12.509263", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 192 days, 11:38, 1 user, load average: 0.31, 0.28, 0.27", "stdout_lines": [" 20:05:12 up 192 days, 11:38, 1 user, load average: 0.31, 0.28, 0.27"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004662", "end": "2025-12-15 20:05:12.741166", "msg": "", "rc": 0, "start": "2025-12-15 20:05:12.736504", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 1 day, 9:36, 1 user, load average: 0.00, 0.04, 0.01", "stdout_lines": [" 20:05:12 up 1 day, 9:36, 1 user, load average: 0.00, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003279", "end": "2025-12-15 20:04:44.954602", "msg": "", "rc": 0, "start": "2025-12-15 20:04:44.951323", "stderr": "", "stderr_lines": [], "stdout": " 20:04:44 up 18 days, 22:59, 0 user, load average: 0.34, 0.48, 0.47", "stdout_lines": [" 20:04:44 up 18 days, 22:59, 0 user, load average: 0.34, 0.48, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003070", "end": "2025-12-15 20:04:50.930804", "msg": "", "rc": 0, "start": "2025-12-15 20:04:50.927734", "stderr": "", "stderr_lines": [], "stdout": " 20:04:50 up 15 days, 9:20, 0 user, load average: 0.13, 0.26, 0.24", "stdout_lines": [" 20:04:50 up 15 days, 9:20, 0 user, load average: 0.13, 0.26, 0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004338", "end": "2025-12-15 17:05:12.984631", "msg": "", "rc": 0, "start": "2025-12-15 17:05:12.980293", "stderr": "", "stderr_lines": [], "stdout": " 5:05PM up 20 days, 6:55, 1 user, load averages: 0.19, 0.22, 0.21", "stdout_lines": [" 5:05PM up 20 days, 6:55, 1 user, load averages: 0.19, 0.22, 0.21"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003690", "end": "2025-12-15 20:05:13.193988", "msg": "", "rc": 0, "start": "2025-12-15 20:05:13.190298", "stderr": "", "stderr_lines": [], "stdout": " 20:05:13 up 1 day, 9:36, 1 user, load average: 0.08, 0.03, 0.01", "stdout_lines": [" 20:05:13 up 1 day, 9:36, 1 user, load average: 0.08, 0.03, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005431", "end": "2025-12-15 20:05:13.468898", "msg": "", "rc": 0, "start": "2025-12-15 20:05:13.463467", "stderr": "", "stderr_lines": [], "stdout": " 20:05:13 up 6:40, 1 user, load average: 1.94, 1.45, 1.33", "stdout_lines": [" 20:05:13 up 6:40, 1 user, load average: 1.94, 1.45, 1.33"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.022364", "end": "2025-12-15 20:05:13.409042", "msg": "", "rc": 0, "start": "2025-12-15 20:05:13.386678", "stderr": "", "stderr_lines": [], "stdout": " 20:05:13 up 13 days, 9:31, 2 users, load average: 0.24, 0.12, 0.09", "stdout_lines": [" 20:05:13 up 13 days, 9:31, 2 users, load average: 0.24, 0.12, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004851", "end": "2025-12-15 20:05:13.955639", "msg": "", "rc": 0, "start": "2025-12-15 20:05:13.950788", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004214", "end": "2025-12-15 20:05:13.989249", "msg": "", "rc": 0, "start": "2025-12-15 20:05:13.985035", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004691", "end": "2025-12-15 20:05:13.991167", "msg": "", "rc": 0, "start": "2025-12-15 20:05:13.986476", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004975", "end": "2025-12-15 20:05:14.025264", "msg": "", "rc": 0, "start": "2025-12-15 20:05:14.020289", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006879", "end": "2025-12-15 20:05:14.045383", "msg": "", "rc": 0, "start": "2025-12-15 20:05:14.038504", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005474", "end": "2025-12-15 20:04:49.831974", "msg": "", "rc": 0, "start": "2025-12-15 20:04:49.826500", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005365", "end": "2025-12-15 20:04:44.001221", "msg": "", "rc": 0, "start": "2025-12-15 20:04:43.995856", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010699", "end": "2025-12-15 20:05:14.757802", "msg": "", "rc": 0, "start": "2025-12-15 20:05:14.747103", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011527", "end": "2025-12-15 20:05:14.795200", "msg": "", "rc": 0, "start": "2025-12-15 20:05:14.783673", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005714", "end": "2025-12-15 20:05:14.965372", "msg": "", "rc": 0, "start": "2025-12-15 20:05:14.959658", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005110", "end": "2025-12-15 20:04:47.189260", "msg": "", "rc": 0, "start": "2025-12-15 20:04:47.184150", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005529", "end": "2025-12-15 17:05:15.255559", "msg": "", "rc": 0, "start": "2025-12-15 17:05:15.250030", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004966", "end": "2025-12-15 20:04:53.256332", "msg": "", "rc": 0, "start": "2025-12-15 20:04:53.251366", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005413", "end": "2025-12-15 20:05:15.391277", "msg": "", "rc": 0, "start": "2025-12-15 20:05:15.385864", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.008744", "end": "2025-12-15 20:05:15.666231", "msg": "", "rc": 0, "start": "2025-12-15 20:05:15.657487", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025445", "end": "2025-12-15 20:05:15.497810", "msg": "", "rc": 0, "start": "2025-12-15 20:05:15.472365", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004372", "end": "2025-12-15 20:05:16.059620", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.055248", "stderr": "", "stderr_lines": [], "stdout": "80.8%", "stdout_lines": ["80.8%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004253", "end": "2025-12-15 20:05:16.071171", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.066918", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004811", "end": "2025-12-15 20:05:16.103738", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.098927", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.0%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005149", "end": "2025-12-15 20:05:16.110791", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.105642", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005613", "end": "2025-12-15 20:05:16.109137", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.103524", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005238", "end": "2025-12-15 20:04:51.964691", "msg": "", "rc": 0, "start": "2025-12-15 20:04:51.959453", "stderr": "", "stderr_lines": [], "stdout": "71.2%", "stdout_lines": ["71.2%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004331", "end": "2025-12-15 20:04:46.061737", "msg": "", "rc": 0, "start": "2025-12-15 20:04:46.057406", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011019", "end": "2025-12-15 20:05:16.767306", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.756287", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012067", "end": "2025-12-15 20:05:16.794546", "msg": "", "rc": 0, "start": "2025-12-15 20:05:16.782479", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006990", "end": "2025-12-15 20:05:17.093181", "msg": "", "rc": 0, "start": "2025-12-15 20:05:17.086191", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004272", "end": "2025-12-15 20:04:49.288521", "msg": "", "rc": 0, "start": "2025-12-15 20:04:49.284249", "stderr": "", "stderr_lines": [], "stdout": "24.6%", "stdout_lines": ["24.6%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005365", "end": "2025-12-15 17:05:17.267072", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:05:17.261707", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003873", "end": "2025-12-15 20:04:55.249314", "msg": "", "rc": 0, "start": "2025-12-15 20:04:55.245441", "stderr": "", "stderr_lines": [], "stdout": "56.0%", "stdout_lines": ["56.0%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005403", "end": "2025-12-15 20:05:17.543229", "msg": "", "rc": 0, "start": "2025-12-15 20:05:17.537826", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007469", "end": "2025-12-15 20:05:17.772918", "msg": "", "rc": 0, "start": "2025-12-15 20:05:17.765449", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.028807", "end": "2025-12-15 20:05:17.612184", "msg": "", "rc": 0, "start": "2025-12-15 20:05:17.583377", "stderr": "", "stderr_lines": [], "stdout": "19.5%", "stdout_lines": ["19.5%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005072", "end": "2025-12-15 20:05:18.149567", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.144495", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005534", "end": "2025-12-15 20:05:18.182395", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.176861", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004913", "end": "2025-12-15 20:05:18.187947", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.183034", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002939", "end": "2025-12-15 20:05:18.207699", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.204760", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007509", "end": "2025-12-15 20:05:18.250786", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.243277", "stderr": "", "stderr_lines": [], "stdout": "53.0°C", "stdout_lines": ["53.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003406", "end": "2025-12-15 20:04:54.038447", "msg": "", "rc": 0, "start": "2025-12-15 20:04:54.035041", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003354", "end": "2025-12-15 20:04:48.227555", "msg": "", "rc": 0, "start": "2025-12-15 20:04:48.224201", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011915", "end": "2025-12-15 20:05:18.867558", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.855643", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013044", "end": "2025-12-15 20:05:18.920635", "msg": "", "rc": 0, "start": "2025-12-15 20:05:18.907591", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003162", "end": "2025-12-15 20:05:19.170759", "msg": "", "rc": 0, "start": "2025-12-15 20:05:19.167597", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003902", "end": "2025-12-15 17:05:19.387925", "msg": "", "rc": 0, "start": "2025-12-15 17:05:19.384023", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002496", "end": "2025-12-15 20:04:57.363362", "msg": "", "rc": 0, "start": "2025-12-15 20:04:57.360866", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007361", "end": "2025-12-15 20:04:51.437087", "msg": "", "rc": 0, "start": "2025-12-15 20:04:51.429726", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003038", "end": "2025-12-15 20:05:19.610045", "msg": "", "rc": 0, "start": "2025-12-15 20:05:19.607007", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004350", "end": "2025-12-15 20:05:19.879155", "msg": "", "rc": 0, "start": "2025-12-15 20:05:19.874805", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.031600", "end": "2025-12-15 20:05:19.716128", "msg": "", "rc": 0, "start": "2025-12-15 20:05:19.684528", "stderr": "", "stderr_lines": [], "stdout": "39.0°C", "stdout_lines": ["39.0°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004255", "end": "2025-12-15 20:05:20.248909", "msg": "", "rc": 0, "start": "2025-12-15 20:05:20.244654", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005106", "end": "2025-12-15 20:05:20.274169", "msg": "", "rc": 0, "start": "2025-12-15 20:05:20.269063", "stderr": "", "stderr_lines": [], "stdout": "0.79", "stdout_lines": ["0.79"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004018", "end": "2025-12-15 20:05:20.283404", "msg": "", "rc": 0, "start": "2025-12-15 20:05:20.279386", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005153", "end": "2025-12-15 20:05:20.298679", "msg": "", "rc": 0, "start": "2025-12-15 20:05:20.293526", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005536", "end": "2025-12-15 20:05:20.330939", "msg": "", "rc": 0, "start": "2025-12-15 20:05:20.325403", "stderr": "", "stderr_lines": [], "stdout": "0.93", "stdout_lines": ["0.93"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005663", "end": "2025-12-15 20:04:56.127645", "msg": "", "rc": 0, "start": "2025-12-15 20:04:56.121982", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005099", "end": "2025-12-15 20:04:50.292420", "msg": "", "rc": 0, "start": "2025-12-15 20:04:50.287321", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010265", "end": "2025-12-15 20:05:21.038927", "msg": "", "rc": 0, "start": "2025-12-15 20:05:21.028662", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011202", "end": "2025-12-15 20:05:21.045694", "msg": "", "rc": 0, "start": "2025-12-15 20:05:21.034492", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005547", "end": "2025-12-15 20:05:21.251415", "msg": "", "rc": 0, "start": "2025-12-15 20:05:21.245868", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004798", "end": "2025-12-15 20:04:53.463085", "msg": "", "rc": 0, "start": "2025-12-15 20:04:53.458287", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006154", "end": "2025-12-15 17:05:21.512731", "msg": "", "rc": 0, "start": "2025-12-15 17:05:21.506577", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004799", "end": "2025-12-15 20:04:59.546666", "msg": "", "rc": 0, "start": "2025-12-15 20:04:59.541867", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005290", "end": "2025-12-15 20:05:21.681782", "msg": "", "rc": 0, "start": "2025-12-15 20:05:21.676492", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007166", "end": "2025-12-15 20:05:21.912434", "msg": "", "rc": 0, "start": "2025-12-15 20:05:21.905268", "stderr": "", "stderr_lines": [], "stdout": "1.94", "stdout_lines": ["1.94"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.026459", "end": "2025-12-15 20:05:21.788393", "msg": "", "rc": 0, "start": "2025-12-15 20:05:21.761934", "stderr": "", "stderr_lines": [], "stdout": "0.59", "stdout_lines": ["0.59"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 1 day, 9:37, 1 user, load average: 0.38, 0.20, 0.22\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.40\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 20 days, 6:56, 1 user, load average: 0.31, 0.31, 0.26\nDisk Usage: 23%\nMemory Usage: 80.8%\nCPU Load: 0.37\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 20 days, 7:16, 1 user, load average: 0.76, 0.75, 0.73\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.79\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 20 days, 8:29, 1 user, load average: 0.91, 0.60, 0.60\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.93\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 20 days, 9:15, 1 user, load average: 0.02, 0.02, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:13 up 13 days, 9:31, 2 users, load average: 0.24, 0.12, 0.09\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.59\nCPU Temp: 39.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 192 days, 11:38, 1 user, load average: 0.31, 0.28, 0.27\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.26\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 192 days, 11:38, 1 user, load average: 0.15, 0.13, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.12\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:47 up 9 days, 7:54, 0 user, load average: 0.01, 0.06, 0.09\nDisk Usage: 48%\nMemory Usage: 71.2%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:41 up 16 days, 4:06, 0 user, load average: 0.37, 0.09, 0.02\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 1 day, 9:36, 1 user, load average: 0.00, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:44 up 18 days, 22:59, 0 user, load average: 0.34, 0.48, 0.47\nDisk Usage: 28%\nMemory Usage: 24.6%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:50 up 15 days, 9:20, 0 user, load average: 0.13, 0.26, 0.24\nDisk Usage: 75%\nMemory Usage: 56.0%\nCPU Load: 0.50\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:05PM up 20 days, 6:55, 1 user, load averages: 0.19, 0.22, 0.21\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:13 up 1 day, 9:36, 1 user, load average: 0.08, 0.03, 0.01\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:13 up 6:40, 1 user, load average: 1.94, 1.45, 1.33\nDisk Usage: 1%\nMemory Usage: 13.1%\nCPU Load: 1.94\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:05:22.959566+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `65143541bd64425e91aa80f729823fa0` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:10:00.001100+00:00 |
| **Fin** | 2025-12-16T01:10:21.154299+00:00 |
| **Durée** | 21.2s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003162", "end": "2025-12-15 20:10:11.034181", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.031019", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 20 days, 7:01, 1 user, load average: 0.74, 0.48, 0.34", "stdout_lines": [" 20:10:11 up 20 days, 7:01, 1 user, load average: 0.74, 0.48, 0.34"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003975", "end": "2025-12-15 20:10:11.051859", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.047884", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 20 days, 9:20, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 20:10:11 up 20 days, 9:20, 1 user, load average: 0.04, 0.03, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003146", "end": "2025-12-15 20:10:11.069851", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.066705", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 20 days, 7:21, 1 user, load average: 0.68, 0.83, 0.79", "stdout_lines": [" 20:10:11 up 20 days, 7:21, 1 user, load average: 0.68, 0.83, 0.79"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003993", "end": "2025-12-15 20:10:11.070890", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.066897", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 20 days, 8:34, 1 user, load average: 0.69, 0.68, 0.64", "stdout_lines": [" 20:10:11 up 20 days, 8:34, 1 user, load average: 0.69, 0.68, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003036", "end": "2025-12-15 20:10:11.077473", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.074437", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 1 day, 9:42, 1 user, load average: 0.51, 0.34, 0.26", "stdout_lines": [" 20:10:11 up 1 day, 9:42, 1 user, load average: 0.51, 0.34, 0.26"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003185", "end": "2025-12-15 20:09:46.885229", "msg": "", "rc": 0, "start": "2025-12-15 20:09:46.882044", "stderr": "", "stderr_lines": [], "stdout": " 20:09:46 up 9 days, 7:59, 0 user, load average: 0.05, 0.07, 0.09", "stdout_lines": [" 20:09:46 up 9 days, 7:59, 0 user, load average: 0.05, 0.07, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003385", "end": "2025-12-15 20:09:41.006649", "msg": "", "rc": 0, "start": "2025-12-15 20:09:41.003264", "stderr": "", "stderr_lines": [], "stdout": " 20:09:41 up 16 days, 4:11, 0 user, load average: 0.11, 0.11, 0.05", "stdout_lines": [" 20:09:41 up 16 days, 4:11, 0 user, load average: 0.11, 0.11, 0.05"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008499", "end": "2025-12-15 20:10:11.732159", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.723660", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 192 days, 11:43, 1 user, load average: 0.23, 0.19, 0.12", "stdout_lines": [" 20:10:11 up 192 days, 11:43, 1 user, load average: 0.23, 0.19, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009364", "end": "2025-12-15 20:10:11.786024", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.776660", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 192 days, 11:43, 1 user, load average: 0.37, 0.31, 0.28", "stdout_lines": [" 20:10:11 up 192 days, 11:43, 1 user, load average: 0.37, 0.31, 0.28"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004732", "end": "2025-12-15 20:10:11.987798", "msg": "", "rc": 0, "start": "2025-12-15 20:10:11.983066", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 1 day, 9:41, 1 user, load average: 0.14, 0.12, 0.04", "stdout_lines": [" 20:10:11 up 1 day, 9:41, 1 user, load average: 0.14, 0.12, 0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003145", "end": "2025-12-15 20:09:44.167841", "msg": "", "rc": 0, "start": "2025-12-15 20:09:44.164696", "stderr": "", "stderr_lines": [], "stdout": " 20:09:44 up 18 days, 23:04, 0 user, load average: 0.22, 0.39, 0.44", "stdout_lines": [" 20:09:44 up 18 days, 23:04, 0 user, load average: 0.22, 0.39, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002859", "end": "2025-12-15 20:09:50.193406", "msg": "", "rc": 0, "start": "2025-12-15 20:09:50.190547", "stderr": "", "stderr_lines": [], "stdout": " 20:09:50 up 15 days, 9:25, 0 user, load average: 0.20, 0.22, 0.23", "stdout_lines": [" 20:09:50 up 15 days, 9:25, 0 user, load average: 0.20, 0.22, 0.23"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004292", "end": "2025-12-15 17:10:12.237828", "msg": "", "rc": 0, "start": "2025-12-15 17:10:12.233536", "stderr": "", "stderr_lines": [], "stdout": " 5:10PM up 20 days, 6:59, 1 user, load averages: 0.22, 0.26, 0.24", "stdout_lines": [" 5:10PM up 20 days, 6:59, 1 user, load averages: 0.22, 0.26, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003768", "end": "2025-12-15 20:10:12.394777", "msg": "", "rc": 0, "start": "2025-12-15 20:10:12.391009", "stderr": "", "stderr_lines": [], "stdout": " 20:10:12 up 1 day, 9:41, 1 user, load average: 0.24, 0.13, 0.06", "stdout_lines": [" 20:10:12 up 1 day, 9:41, 1 user, load average: 0.24, 0.13, 0.06"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005361", "end": "2025-12-15 20:10:12.649619", "msg": "", "rc": 0, "start": "2025-12-15 20:10:12.644258", "stderr": "", "stderr_lines": [], "stdout": " 20:10:12 up 6:45, 1 user, load average: 1.36, 1.41, 1.35", "stdout_lines": [" 20:10:12 up 6:45, 1 user, load average: 1.36, 1.41, 1.35"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019411", "end": "2025-12-15 20:10:12.426509", "msg": "", "rc": 0, "start": "2025-12-15 20:10:12.407098", "stderr": "", "stderr_lines": [], "stdout": " 20:10:12 up 13 days, 9:36, 1 user, load average: 0.16, 0.13, 0.10", "stdout_lines": [" 20:10:12 up 13 days, 9:36, 1 user, load average: 0.16, 0.13, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004473", "end": "2025-12-15 20:10:12.963423", "msg": "", "rc": 0, "start": "2025-12-15 20:10:12.958950", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005470", "end": "2025-12-15 20:10:12.987450", "msg": "", "rc": 0, "start": "2025-12-15 20:10:12.981980", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004097", "end": "2025-12-15 20:10:12.991422", "msg": "", "rc": 0, "start": "2025-12-15 20:10:12.987325", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004938", "end": "2025-12-15 20:10:13.007189", "msg": "", "rc": 0, "start": "2025-12-15 20:10:13.002251", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005668", "end": "2025-12-15 20:10:13.047038", "msg": "", "rc": 0, "start": "2025-12-15 20:10:13.041370", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005325", "end": "2025-12-15 20:09:48.833856", "msg": "", "rc": 0, "start": "2025-12-15 20:09:48.828531", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005755", "end": "2025-12-15 20:09:42.980949", "msg": "", "rc": 0, "start": "2025-12-15 20:09:42.975194", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010666", "end": "2025-12-15 20:10:13.712395", "msg": "", "rc": 0, "start": "2025-12-15 20:10:13.701729", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011813", "end": "2025-12-15 20:10:13.752229", "msg": "", "rc": 0, "start": "2025-12-15 20:10:13.740416", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005721", "end": "2025-12-15 20:10:13.937169", "msg": "", "rc": 0, "start": "2025-12-15 20:10:13.931448", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005106", "end": "2025-12-15 20:09:46.157332", "msg": "", "rc": 0, "start": "2025-12-15 20:09:46.152226", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005392", "end": "2025-12-15 17:10:14.217363", "msg": "", "rc": 0, "start": "2025-12-15 17:10:14.211971", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005075", "end": "2025-12-15 20:09:52.188584", "msg": "", "rc": 0, "start": "2025-12-15 20:09:52.183509", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005632", "end": "2025-12-15 20:10:14.358095", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.352463", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007044", "end": "2025-12-15 20:10:14.584727", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.577683", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025591", "end": "2025-12-15 20:10:14.346207", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.320616", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004444", "end": "2025-12-15 20:10:14.871347", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.866903", "stderr": "", "stderr_lines": [], "stdout": "80.9%", "stdout_lines": ["80.9%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004102", "end": "2025-12-15 20:10:14.881391", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.877289", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004794", "end": "2025-12-15 20:10:14.898384", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.893590", "stderr": "", "stderr_lines": [], "stdout": "48.9%", "stdout_lines": ["48.9%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004843", "end": "2025-12-15 20:10:14.919994", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.915151", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005518", "end": "2025-12-15 20:10:14.938198", "msg": "", "rc": 0, "start": "2025-12-15 20:10:14.932680", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004397", "end": "2025-12-15 20:09:50.769494", "msg": "", "rc": 0, "start": "2025-12-15 20:09:50.765097", "stderr": "", "stderr_lines": [], "stdout": "71.3%", "stdout_lines": ["71.3%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004658", "end": "2025-12-15 20:09:44.880851", "msg": "", "rc": 0, "start": "2025-12-15 20:09:44.876193", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012357", "end": "2025-12-15 20:10:15.561625", "msg": "", "rc": 0, "start": "2025-12-15 20:10:15.549268", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012057", "end": "2025-12-15 20:10:15.590231", "msg": "", "rc": 0, "start": "2025-12-15 20:10:15.578174", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005988", "end": "2025-12-15 20:10:15.884859", "msg": "", "rc": 0, "start": "2025-12-15 20:10:15.878871", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004064", "end": "2025-12-15 20:09:48.045575", "msg": "", "rc": 0, "start": "2025-12-15 20:09:48.041511", "stderr": "", "stderr_lines": [], "stdout": "26.1%", "stdout_lines": ["26.1%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005531", "end": "2025-12-15 17:10:16.041122", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:10:16.035591", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003896", "end": "2025-12-15 20:09:54.031658", "msg": "", "rc": 0, "start": "2025-12-15 20:09:54.027762", "stderr": "", "stderr_lines": [], "stdout": "56.2%", "stdout_lines": ["56.2%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007780", "end": "2025-12-15 20:10:16.470473", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.462693", "stderr": "", "stderr_lines": [], "stdout": "12.7%", "stdout_lines": ["12.7%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006055", "end": "2025-12-15 20:10:16.300857", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.294802", "stderr": "", "stderr_lines": [], "stdout": "13.7%", "stdout_lines": ["13.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025776", "end": "2025-12-15 20:10:16.245219", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.219443", "stderr": "", "stderr_lines": [], "stdout": "19.4%", "stdout_lines": ["19.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005317", "end": "2025-12-15 20:10:16.783991", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.778674", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005293", "end": "2025-12-15 20:10:16.792300", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.787007", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004867", "end": "2025-12-15 20:10:16.795925", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.791058", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003377", "end": "2025-12-15 20:10:16.811042", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.807665", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006600", "end": "2025-12-15 20:10:16.830951", "msg": "", "rc": 0, "start": "2025-12-15 20:10:16.824351", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002683", "end": "2025-12-15 20:09:52.632415", "msg": "", "rc": 0, "start": "2025-12-15 20:09:52.629732", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003271", "end": "2025-12-15 20:09:46.773739", "msg": "", "rc": 0, "start": "2025-12-15 20:09:46.770468", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011707", "end": "2025-12-15 20:10:17.466281", "msg": "", "rc": 0, "start": "2025-12-15 20:10:17.454574", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013250", "end": "2025-12-15 20:10:17.518123", "msg": "", "rc": 0, "start": "2025-12-15 20:10:17.504873", "stderr": "", "stderr_lines": [], "stdout": "35.5°C", "stdout_lines": ["35.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003102", "end": "2025-12-15 20:10:17.740654", "msg": "", "rc": 0, "start": "2025-12-15 20:10:17.737552", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002895", "end": "2025-12-15 20:09:49.920462", "msg": "", "rc": 0, "start": "2025-12-15 20:09:49.917567", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002883", "end": "2025-12-15 20:09:55.918060", "msg": "", "rc": 0, "start": "2025-12-15 20:09:55.915177", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004037", "end": "2025-12-15 17:10:17.972533", "msg": "", "rc": 0, "start": "2025-12-15 17:10:17.968496", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002981", "end": "2025-12-15 20:10:18.151950", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.148969", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004447", "end": "2025-12-15 20:10:18.368585", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.364138", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028446", "end": "2025-12-15 20:10:18.169043", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.140597", "stderr": "", "stderr_lines": [], "stdout": "36.4°C", "stdout_lines": ["36.4°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004183", "end": "2025-12-15 20:10:18.681514", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.677331", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004001", "end": "2025-12-15 20:10:18.712970", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.708969", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004764", "end": "2025-12-15 20:10:18.723810", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.719046", "stderr": "", "stderr_lines": [], "stdout": "0.70", "stdout_lines": ["0.70"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005199", "end": "2025-12-15 20:10:18.739890", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.734691", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007140", "end": "2025-12-15 20:10:18.756236", "msg": "", "rc": 0, "start": "2025-12-15 20:10:18.749096", "stderr": "", "stderr_lines": [], "stdout": "0.71", "stdout_lines": ["0.71"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004142", "end": "2025-12-15 20:09:54.548974", "msg": "", "rc": 0, "start": "2025-12-15 20:09:54.544832", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005609", "end": "2025-12-15 20:09:48.711637", "msg": "", "rc": 0, "start": "2025-12-15 20:09:48.706028", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010219", "end": "2025-12-15 20:10:19.449078", "msg": "", "rc": 0, "start": "2025-12-15 20:10:19.438859", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011353", "end": "2025-12-15 20:10:19.505442", "msg": "", "rc": 0, "start": "2025-12-15 20:10:19.494089", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005603", "end": "2025-12-15 20:10:19.670739", "msg": "", "rc": 0, "start": "2025-12-15 20:10:19.665136", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005330", "end": "2025-12-15 20:09:51.898081", "msg": "", "rc": 0, "start": "2025-12-15 20:09:51.892751", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004265", "end": "2025-12-15 20:09:57.897877", "msg": "", "rc": 0, "start": "2025-12-15 20:09:57.893612", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005890", "end": "2025-12-15 17:10:19.958576", "msg": "", "rc": 0, "start": "2025-12-15 17:10:19.952686", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005294", "end": "2025-12-15 20:10:20.087409", "msg": "", "rc": 0, "start": "2025-12-15 20:10:20.082115", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006431", "end": "2025-12-15 20:10:20.365105", "msg": "", "rc": 0, "start": "2025-12-15 20:10:20.358674", "stderr": "", "stderr_lines": [], "stdout": "1.38", "stdout_lines": ["1.38"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024238", "end": "2025-12-15 20:10:20.080236", "msg": "", "rc": 0, "start": "2025-12-15 20:10:20.055998", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 1 day, 9:42, 1 user, load average: 0.51, 0.34, 0.26\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.55\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 20 days, 7:01, 1 user, load average: 0.74, 0.48, 0.34\nDisk Usage: 23%\nMemory Usage: 80.9%\nCPU Load: 0.63\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 20 days, 7:21, 1 user, load average: 0.68, 0.83, 0.79\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.70\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 20 days, 8:34, 1 user, load average: 0.69, 0.68, 0.64\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.71\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 20 days, 9:20, 1 user, load average: 0.04, 0.03, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:12 up 13 days, 9:36, 1 user, load average: 0.16, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.21\nCPU Temp: 36.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 192 days, 11:43, 1 user, load average: 0.37, 0.31, 0.28\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.39\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 192 days, 11:43, 1 user, load average: 0.23, 0.19, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.28\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:46 up 9 days, 7:59, 0 user, load average: 0.05, 0.07, 0.09\nDisk Usage: 48%\nMemory Usage: 71.3%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:41 up 16 days, 4:11, 0 user, load average: 0.11, 0.11, 0.05\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 1 day, 9:41, 1 user, load average: 0.14, 0.12, 0.04\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:44 up 18 days, 23:04, 0 user, load average: 0.22, 0.39, 0.44\nDisk Usage: 28%\nMemory Usage: 26.1%\nCPU Load: 0.36\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:50 up 15 days, 9:25, 0 user, load average: 0.20, 0.22, 0.23\nDisk Usage: 75%\nMemory Usage: 56.2%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:10PM up 20 days, 6:59, 1 user, load averages: 0.22, 0.26, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:12 up 1 day, 9:41, 1 user, load average: 0.24, 0.13, 0.06\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:12 up 6:45, 1 user, load average: 1.36, 1.41, 1.35\nDisk Usage: 1%\nMemory Usage: 12.7%\nCPU Load: 1.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:10:21.187670+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `b3b86b51f655407f92a12ccf7bb847eb` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:15:00.000904+00:00 |
| **Fin** | 2025-12-16T01:15:21.722933+00:00 |
| **Durée** | 21.7s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003054", "end": "2025-12-15 20:15:11.393040", "msg": "", "rc": 0, "start": "2025-12-15 20:15:11.389986", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 20 days, 7:06, 1 user, load average: 0.52, 0.45, 0.36", "stdout_lines": [" 20:15:11 up 20 days, 7:06, 1 user, load average: 0.52, 0.45, 0.36"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003947", "end": "2025-12-15 20:15:11.411279", "msg": "", "rc": 0, "start": "2025-12-15 20:15:11.407332", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 20 days, 9:25, 1 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 20:15:11 up 20 days, 9:25, 1 user, load average: 0.01, 0.02, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003848", "end": "2025-12-15 20:15:11.417576", "msg": "", "rc": 0, "start": "2025-12-15 20:15:11.413728", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 20 days, 7:26, 1 user, load average: 0.96, 0.85, 0.80", "stdout_lines": [" 20:15:11 up 20 days, 7:26, 1 user, load average: 0.96, 0.85, 0.80"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002986", "end": "2025-12-15 20:15:11.437212", "msg": "", "rc": 0, "start": "2025-12-15 20:15:11.434226", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 1 day, 9:47, 1 user, load average: 0.52, 0.48, 0.35", "stdout_lines": [" 20:15:11 up 1 day, 9:47, 1 user, load average: 0.52, 0.48, 0.35"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003442", "end": "2025-12-15 20:14:47.254633", "msg": "", "rc": 0, "start": "2025-12-15 20:14:47.251191", "stderr": "", "stderr_lines": [], "stdout": " 20:14:47 up 9 days, 8:04, 0 user, load average: 0.04, 0.10, 0.09", "stdout_lines": [" 20:14:47 up 9 days, 8:04, 0 user, load average: 0.04, 0.10, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008613", "end": "2025-12-15 20:15:12.081145", "msg": "", "rc": 0, "start": "2025-12-15 20:15:12.072532", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 192 days, 11:48, 1 user, load average: 0.37, 0.25, 0.15", "stdout_lines": [" 20:15:12 up 192 days, 11:48, 1 user, load average: 0.37, 0.25, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009374", "end": "2025-12-15 20:15:12.124656", "msg": "", "rc": 0, "start": "2025-12-15 20:15:12.115282", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 192 days, 11:48, 1 user, load average: 0.40, 0.26, 0.26", "stdout_lines": [" 20:15:12 up 192 days, 11:48, 1 user, load average: 0.40, 0.26, 0.26"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005080", "end": "2025-12-15 20:15:12.426376", "msg": "", "rc": 0, "start": "2025-12-15 20:15:11.421296", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 20 days, 8:39, 1 user, load average: 1.05, 0.70, 0.64", "stdout_lines": [" 20:15:11 up 20 days, 8:39, 1 user, load average: 1.05, 0.70, 0.64"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003757", "end": "2025-12-15 20:14:41.837745", "msg": "", "rc": 0, "start": "2025-12-15 20:14:41.833988", "stderr": "", "stderr_lines": [], "stdout": " 20:14:41 up 16 days, 4:16, 0 user, load average: 0.01, 0.04, 0.02", "stdout_lines": [" 20:14:41 up 16 days, 4:16, 0 user, load average: 0.01, 0.04, 0.02"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004569", "end": "2025-12-15 20:15:12.584967", "msg": "", "rc": 0, "start": "2025-12-15 20:15:12.580398", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 1 day, 9:46, 1 user, load average: 0.00, 0.04, 0.02", "stdout_lines": [" 20:15:12 up 1 day, 9:46, 1 user, load average: 0.00, 0.04, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003264", "end": "2025-12-15 20:14:44.723695", "msg": "", "rc": 0, "start": "2025-12-15 20:14:44.720431", "stderr": "", "stderr_lines": [], "stdout": " 20:14:44 up 18 days, 23:09, 0 user, load average: 0.28, 0.37, 0.42", "stdout_lines": [" 20:14:44 up 18 days, 23:09, 0 user, load average: 0.28, 0.37, 0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004290", "end": "2025-12-15 17:15:12.865577", "msg": "", "rc": 0, "start": "2025-12-15 17:15:12.861287", "stderr": "", "stderr_lines": [], "stdout": " 5:15PM up 20 days, 7:05, 1 user, load averages: 0.37, 0.25, 0.24", "stdout_lines": [" 5:15PM up 20 days, 7:05, 1 user, load averages: 0.37, 0.25, 0.24"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002918", "end": "2025-12-15 20:14:50.876361", "msg": "", "rc": 0, "start": "2025-12-15 20:14:50.873443", "stderr": "", "stderr_lines": [], "stdout": " 20:14:50 up 15 days, 9:30, 0 user, load average: 0.13, 0.22, 0.23", "stdout_lines": [" 20:14:50 up 15 days, 9:30, 0 user, load average: 0.13, 0.22, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019744", "end": "2025-12-15 20:15:12.792405", "msg": "", "rc": 0, "start": "2025-12-15 20:15:12.772661", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 13 days, 9:41, 1 user, load average: 0.20, 0.10, 0.09", "stdout_lines": [" 20:15:12 up 13 days, 9:41, 1 user, load average: 0.20, 0.10, 0.09"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003853", "end": "2025-12-15 20:15:13.001730", "msg": "", "rc": 0, "start": "2025-12-15 20:15:12.997877", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 1 day, 9:46, 1 user, load average: 0.12, 0.29, 0.16", "stdout_lines": [" 20:15:12 up 1 day, 9:46, 1 user, load average: 0.12, 0.29, 0.16"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004771", "end": "2025-12-15 20:15:13.219449", "msg": "", "rc": 0, "start": "2025-12-15 20:15:13.214678", "stderr": "", "stderr_lines": [], "stdout": " 20:15:13 up 6:50, 1 user, load average: 1.29, 1.27, 1.29", "stdout_lines": [" 20:15:13 up 6:50, 1 user, load average: 1.29, 1.27, 1.29"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004342", "end": "2025-12-15 20:15:13.396696", "msg": "", "rc": 0, "start": "2025-12-15 20:15:13.392354", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004297", "end": "2025-12-15 20:15:13.409015", "msg": "", "rc": 0, "start": "2025-12-15 20:15:13.404718", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004962", "end": "2025-12-15 20:15:13.415975", "msg": "", "rc": 0, "start": "2025-12-15 20:15:13.411013", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005097", "end": "2025-12-15 20:15:13.442020", "msg": "", "rc": 0, "start": "2025-12-15 20:15:13.436923", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005779", "end": "2025-12-15 20:15:13.457736", "msg": "", "rc": 0, "start": "2025-12-15 20:15:13.451957", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004988", "end": "2025-12-15 20:14:49.242958", "msg": "", "rc": 0, "start": "2025-12-15 20:14:49.237970", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005519", "end": "2025-12-15 20:14:43.374919", "msg": "", "rc": 0, "start": "2025-12-15 20:14:43.369400", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010673", "end": "2025-12-15 20:15:14.136941", "msg": "", "rc": 0, "start": "2025-12-15 20:15:14.126268", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011730", "end": "2025-12-15 20:15:14.154614", "msg": "", "rc": 0, "start": "2025-12-15 20:15:14.142884", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006373", "end": "2025-12-15 20:15:14.347320", "msg": "", "rc": 0, "start": "2025-12-15 20:15:14.340947", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005270", "end": "2025-12-15 20:14:46.529243", "msg": "", "rc": 0, "start": "2025-12-15 20:14:46.523973", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005522", "end": "2025-12-15 17:15:14.608171", "msg": "", "rc": 0, "start": "2025-12-15 17:15:14.602649", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005115", "end": "2025-12-15 20:14:52.595907", "msg": "", "rc": 0, "start": "2025-12-15 20:14:52.590792", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005398", "end": "2025-12-15 20:15:14.773899", "msg": "", "rc": 0, "start": "2025-12-15 20:15:14.768501", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007104", "end": "2025-12-15 20:15:15.041752", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.034648", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025141", "end": "2025-12-15 20:15:14.790005", "msg": "", "rc": 0, "start": "2025-12-15 20:15:14.764864", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004558", "end": "2025-12-15 20:15:15.311025", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.306467", "stderr": "", "stderr_lines": [], "stdout": "81.0%", "stdout_lines": ["81.0%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004326", "end": "2025-12-15 20:15:15.318541", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.314215", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004740", "end": "2025-12-15 20:15:15.345413", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.340673", "stderr": "", "stderr_lines": [], "stdout": "48.9%", "stdout_lines": ["48.9%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004689", "end": "2025-12-15 20:15:15.346050", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.341361", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005419", "end": "2025-12-15 20:15:15.362352", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.356933", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004354", "end": "2025-12-15 20:14:51.149254", "msg": "", "rc": 0, "start": "2025-12-15 20:14:51.144900", "stderr": "", "stderr_lines": [], "stdout": "71.5%", "stdout_lines": ["71.5%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004350", "end": "2025-12-15 20:14:45.290693", "msg": "", "rc": 0, "start": "2025-12-15 20:14:45.286343", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011026", "end": "2025-12-15 20:15:15.999614", "msg": "", "rc": 0, "start": "2025-12-15 20:15:15.988588", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012148", "end": "2025-12-15 20:15:16.017990", "msg": "", "rc": 0, "start": "2025-12-15 20:15:16.005842", "stderr": "", "stderr_lines": [], "stdout": "12.2%", "stdout_lines": ["12.2%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005814", "end": "2025-12-15 20:15:16.272315", "msg": "", "rc": 0, "start": "2025-12-15 20:15:16.266501", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004174", "end": "2025-12-15 20:14:48.458016", "msg": "", "rc": 0, "start": "2025-12-15 20:14:48.453842", "stderr": "", "stderr_lines": [], "stdout": "26.2%", "stdout_lines": ["26.2%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005472", "end": "2025-12-15 17:15:16.485904", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:15:16.480432", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003574", "end": "2025-12-15 20:14:54.467376", "msg": "", "rc": 0, "start": "2025-12-15 20:14:54.463802", "stderr": "", "stderr_lines": [], "stdout": "56.0%", "stdout_lines": ["56.0%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005486", "end": "2025-12-15 20:15:16.703291", "msg": "", "rc": 0, "start": "2025-12-15 20:15:16.697805", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.008202", "end": "2025-12-15 20:15:16.972619", "msg": "", "rc": 0, "start": "2025-12-15 20:15:16.964417", "stderr": "", "stderr_lines": [], "stdout": "12.7%", "stdout_lines": ["12.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026047", "end": "2025-12-15 20:15:16.699645", "msg": "", "rc": 0, "start": "2025-12-15 20:15:16.673598", "stderr": "", "stderr_lines": [], "stdout": "19.6%", "stdout_lines": ["19.6%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005090", "end": "2025-12-15 20:15:17.211314", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.206224", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004834", "end": "2025-12-15 20:15:17.240616", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.235782", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005689", "end": "2025-12-15 20:15:17.243054", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.237365", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003098", "end": "2025-12-15 20:15:17.270316", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.267218", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007075", "end": "2025-12-15 20:15:17.288537", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.281462", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002818", "end": "2025-12-15 20:14:53.081596", "msg": "", "rc": 0, "start": "2025-12-15 20:14:53.078778", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002922", "end": "2025-12-15 20:14:47.244579", "msg": "", "rc": 0, "start": "2025-12-15 20:14:47.241657", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011958", "end": "2025-12-15 20:15:17.916040", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.904082", "stderr": "", "stderr_lines": [], "stdout": "31.2°C", "stdout_lines": ["31.2°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013001", "end": "2025-12-15 20:15:17.956275", "msg": "", "rc": 0, "start": "2025-12-15 20:15:17.943274", "stderr": "", "stderr_lines": [], "stdout": "37.0°C", "stdout_lines": ["37.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003160", "end": "2025-12-15 20:15:18.191862", "msg": "", "rc": 0, "start": "2025-12-15 20:15:18.188702", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002974", "end": "2025-12-15 20:14:50.403618", "msg": "", "rc": 0, "start": "2025-12-15 20:14:50.400644", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003906", "end": "2025-12-15 17:15:18.425103", "msg": "", "rc": 0, "start": "2025-12-15 17:15:18.421197", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003802", "end": "2025-12-15 20:14:56.406635", "msg": "", "rc": 0, "start": "2025-12-15 20:14:56.402833", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003231", "end": "2025-12-15 20:15:18.612014", "msg": "", "rc": 0, "start": "2025-12-15 20:15:18.608783", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006217", "end": "2025-12-15 20:15:18.924880", "msg": "", "rc": 0, "start": "2025-12-15 20:15:18.918663", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028512", "end": "2025-12-15 20:15:18.615469", "msg": "", "rc": 0, "start": "2025-12-15 20:15:18.586957", "stderr": "", "stderr_lines": [], "stdout": "35.8°C", "stdout_lines": ["35.8°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004318", "end": "2025-12-15 20:15:19.136506", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.132188", "stderr": "", "stderr_lines": [], "stdout": "0.44", "stdout_lines": ["0.44"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004009", "end": "2025-12-15 20:15:19.147573", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.143564", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004873", "end": "2025-12-15 20:15:19.181874", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.177001", "stderr": "", "stderr_lines": [], "stdout": "0.89", "stdout_lines": ["0.89"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005976", "end": "2025-12-15 20:15:19.196226", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.190250", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005592", "end": "2025-12-15 20:15:19.198844", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.193252", "stderr": "", "stderr_lines": [], "stdout": "1.04", "stdout_lines": ["1.04"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004930", "end": "2025-12-15 20:14:49.137939", "msg": "", "rc": 0, "start": "2025-12-15 20:14:49.133009", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005666", "end": "2025-12-15 20:14:55.111639", "msg": "", "rc": 0, "start": "2025-12-15 20:14:55.105973", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010149", "end": "2025-12-15 20:15:19.947422", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.937273", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011264", "end": "2025-12-15 20:15:19.957592", "msg": "", "rc": 0, "start": "2025-12-15 20:15:19.946328", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005521", "end": "2025-12-15 20:15:20.218762", "msg": "", "rc": 0, "start": "2025-12-15 20:15:20.213241", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005015", "end": "2025-12-15 20:14:52.370166", "msg": "", "rc": 0, "start": "2025-12-15 20:14:52.365151", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005852", "end": "2025-12-15 17:15:20.436505", "msg": "", "rc": 0, "start": "2025-12-15 17:15:20.430653", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.009100", "end": "2025-12-15 20:14:58.462624", "msg": "", "rc": 0, "start": "2025-12-15 20:14:58.453524", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006489", "end": "2025-12-15 20:15:20.901981", "msg": "", "rc": 0, "start": "2025-12-15 20:15:20.895492", "stderr": "", "stderr_lines": [], "stdout": "1.33", "stdout_lines": ["1.33"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005264", "end": "2025-12-15 20:15:20.649651", "msg": "", "rc": 0, "start": "2025-12-15 20:15:20.644387", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024254", "end": "2025-12-15 20:15:20.535176", "msg": "", "rc": 0, "start": "2025-12-15 20:15:20.510922", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 1 day, 9:47, 1 user, load average: 0.52, 0.48, 0.35\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.48\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 20 days, 7:06, 1 user, load average: 0.52, 0.45, 0.36\nDisk Usage: 23%\nMemory Usage: 81.0%\nCPU Load: 0.44\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 20 days, 7:26, 1 user, load average: 0.96, 0.85, 0.80\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.89\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 20 days, 8:39, 1 user, load average: 1.05, 0.70, 0.64\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 1.04\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 20 days, 9:25, 1 user, load average: 0.01, 0.02, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 192 days, 11:48, 1 user, load average: 0.40, 0.26, 0.26\nDisk Usage: 6%\nMemory Usage: 12.2%\nCPU Load: 0.41\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 13 days, 9:41, 1 user, load average: 0.20, 0.10, 0.09\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.24\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 192 days, 11:48, 1 user, load average: 0.37, 0.25, 0.15\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.31\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:47 up 9 days, 8:04, 0 user, load average: 0.04, 0.10, 0.09\nDisk Usage: 48%\nMemory Usage: 71.5%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:41 up 16 days, 4:16, 0 user, load average: 0.01, 0.04, 0.02\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 1 day, 9:46, 1 user, load average: 0.00, 0.04, 0.02\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:44 up 18 days, 23:09, 0 user, load average: 0.28, 0.37, 0.42\nDisk Usage: 28%\nMemory Usage: 26.2%\nCPU Load: 0.26\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:50 up 15 days, 9:30, 0 user, load average: 0.13, 0.22, 0.23\nDisk Usage: 75%\nMemory Usage: 56.0%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:15PM up 20 days, 7:05, 1 user, load averages: 0.37, 0.25, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 1 day, 9:46, 1 user, load average: 0.12, 0.29, 0.16\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:13 up 6:50, 1 user, load average: 1.29, 1.27, 1.29\nDisk Usage: 1%\nMemory Usage: 12.7%\nCPU Load: 1.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:15:21.756603+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `ed7e678ab9b7436bb66283d14ebc343b` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:20:00.000967+00:00 |
| **Fin** | 2025-12-16T01:20:22.483971+00:00 |
| **Durée** | 22.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003094", "end": "2025-12-15 20:20:12.003700", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.000606", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 20 days, 7:11, 1 user, load average: 0.41, 0.41, 0.37", "stdout_lines": [" 20:20:12 up 20 days, 7:11, 1 user, load average: 0.41, 0.41, 0.37"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003831", "end": "2025-12-15 20:20:12.020900", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.017069", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 20 days, 9:30, 1 user, load average: 0.01, 0.01, 0.00", "stdout_lines": [" 20:20:12 up 20 days, 9:30, 1 user, load average: 0.01, 0.01, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003045", "end": "2025-12-15 20:20:12.047938", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.044893", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 1 day, 9:52, 1 user, load average: 0.10, 0.23, 0.27", "stdout_lines": [" 20:20:12 up 1 day, 9:52, 1 user, load average: 0.10, 0.23, 0.27"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008591", "end": "2025-12-15 20:20:12.671683", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.663092", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 192 days, 11:53, 1 user, load average: 0.44, 0.27, 0.19", "stdout_lines": [" 20:20:12 up 192 days, 11:53, 1 user, load average: 0.44, 0.27, 0.19"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009353", "end": "2025-12-15 20:20:12.702416", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.693063", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 192 days, 11:53, 1 user, load average: 0.20, 0.21, 0.24", "stdout_lines": [" 20:20:12 up 192 days, 11:53, 1 user, load average: 0.20, 0.21, 0.24"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004085", "end": "2025-12-15 20:20:13.020867", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.016782", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 20 days, 7:31, 1 user, load average: 1.40, 1.01, 0.87", "stdout_lines": [" 20:20:12 up 20 days, 7:31, 1 user, load average: 1.40, 1.01, 0.87"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004907", "end": "2025-12-15 20:20:13.037478", "msg": "", "rc": 0, "start": "2025-12-15 20:20:12.032571", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 20 days, 8:44, 1 user, load average: 1.01, 0.74, 0.67", "stdout_lines": [" 20:20:12 up 20 days, 8:44, 1 user, load average: 1.01, 0.74, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003019", "end": "2025-12-15 20:19:48.508891", "msg": "", "rc": 0, "start": "2025-12-15 20:19:48.505872", "stderr": "", "stderr_lines": [], "stdout": " 20:19:48 up 9 days, 8:09, 0 user, load average: 0.00, 0.04, 0.07", "stdout_lines": [" 20:19:48 up 9 days, 8:09, 0 user, load average: 0.00, 0.04, 0.07"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003303", "end": "2025-12-15 20:19:42.671217", "msg": "", "rc": 0, "start": "2025-12-15 20:19:42.667914", "stderr": "", "stderr_lines": [], "stdout": " 20:19:42 up 16 days, 4:21, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 20:19:42 up 16 days, 4:21, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004680", "end": "2025-12-15 20:20:13.480154", "msg": "", "rc": 0, "start": "2025-12-15 20:20:13.475474", "stderr": "", "stderr_lines": [], "stdout": " 20:20:13 up 1 day, 9:51, 1 user, load average: 0.19, 0.10, 0.04", "stdout_lines": [" 20:20:13 up 1 day, 9:51, 1 user, load average: 0.19, 0.10, 0.04"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019584", "end": "2025-12-15 20:20:13.374984", "msg": "", "rc": 0, "start": "2025-12-15 20:20:13.355400", "stderr": "", "stderr_lines": [], "stdout": " 20:20:13 up 13 days, 9:46, 1 user, load average: 0.14, 0.10, 0.09", "stdout_lines": [" 20:20:13 up 13 days, 9:46, 1 user, load average: 0.14, 0.10, 0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003336", "end": "2025-12-15 20:19:45.608614", "msg": "", "rc": 0, "start": "2025-12-15 20:19:45.605278", "stderr": "", "stderr_lines": [], "stdout": " 20:19:45 up 18 days, 23:14, 0 user, load average: 0.31, 0.34, 0.39", "stdout_lines": [" 20:19:45 up 18 days, 23:14, 0 user, load average: 0.31, 0.34, 0.39"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005220", "end": "2025-12-15 20:19:51.597076", "msg": "", "rc": 0, "start": "2025-12-15 20:19:51.591856", "stderr": "", "stderr_lines": [], "stdout": " 20:19:51 up 15 days, 9:35, 0 user, load average: 0.66, 0.46, 0.32", "stdout_lines": [" 20:19:51 up 15 days, 9:35, 0 user, load average: 0.66, 0.46, 0.32"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004794", "end": "2025-12-15 17:20:13.720689", "msg": "", "rc": 0, "start": "2025-12-15 17:20:13.715895", "stderr": "", "stderr_lines": [], "stdout": " 5:20PM up 20 days, 7:10, 1 user, load averages: 0.25, 0.27, 0.25", "stdout_lines": [" 5:20PM up 20 days, 7:10, 1 user, load averages: 0.25, 0.27, 0.25"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007340", "end": "2025-12-15 20:20:14.037196", "msg": "", "rc": 0, "start": "2025-12-15 20:20:14.029856", "stderr": "", "stderr_lines": [], "stdout": " 20:20:14 up 6:55, 1 user, load average: 1.40, 1.23, 1.26", "stdout_lines": [" 20:20:14 up 6:55, 1 user, load average: 1.40, 1.23, 1.26"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003700", "end": "2025-12-15 20:20:13.904315", "msg": "", "rc": 0, "start": "2025-12-15 20:20:13.900615", "stderr": "", "stderr_lines": [], "stdout": " 20:20:13 up 1 day, 9:51, 1 user, load average: 0.09, 0.20, 0.16", "stdout_lines": [" 20:20:13 up 1 day, 9:51, 1 user, load average: 0.09, 0.20, 0.16"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004547", "end": "2025-12-15 20:20:14.295519", "msg": "", "rc": 0, "start": "2025-12-15 20:20:14.290972", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004232", "end": "2025-12-15 20:20:14.324380", "msg": "", "rc": 0, "start": "2025-12-15 20:20:14.320148", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005206", "end": "2025-12-15 20:20:14.318481", "msg": "", "rc": 0, "start": "2025-12-15 20:20:14.313275", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005032", "end": "2025-12-15 20:20:14.352494", "msg": "", "rc": 0, "start": "2025-12-15 20:20:14.347462", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005620", "end": "2025-12-15 20:20:14.357986", "msg": "", "rc": 0, "start": "2025-12-15 20:20:14.352366", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005476", "end": "2025-12-15 20:19:50.152262", "msg": "", "rc": 0, "start": "2025-12-15 20:19:50.146786", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005652", "end": "2025-12-15 20:19:44.280117", "msg": "", "rc": 0, "start": "2025-12-15 20:19:44.274465", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010525", "end": "2025-12-15 20:20:15.078169", "msg": "", "rc": 0, "start": "2025-12-15 20:20:15.067644", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011651", "end": "2025-12-15 20:20:15.112273", "msg": "", "rc": 0, "start": "2025-12-15 20:20:15.100622", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006037", "end": "2025-12-15 20:20:15.268109", "msg": "", "rc": 0, "start": "2025-12-15 20:20:15.262072", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005334", "end": "2025-12-15 20:19:47.450390", "msg": "", "rc": 0, "start": "2025-12-15 20:19:47.445056", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004795", "end": "2025-12-15 20:19:53.538592", "msg": "", "rc": 0, "start": "2025-12-15 20:19:53.533797", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005547", "end": "2025-12-15 17:20:15.580003", "msg": "", "rc": 0, "start": "2025-12-15 17:20:15.574456", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005337", "end": "2025-12-15 20:20:15.695022", "msg": "", "rc": 0, "start": "2025-12-15 20:20:15.689685", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020848", "end": "2025-12-15 20:20:15.978998", "msg": "", "rc": 0, "start": "2025-12-15 20:20:15.958150", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.024947", "end": "2025-12-15 20:20:15.685808", "msg": "", "rc": 0, "start": "2025-12-15 20:20:15.660861", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004409", "end": "2025-12-15 20:20:16.214486", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.210077", "stderr": "", "stderr_lines": [], "stdout": "81.1%", "stdout_lines": ["81.1%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004091", "end": "2025-12-15 20:20:16.244183", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.240092", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004735", "end": "2025-12-15 20:20:16.270642", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.265907", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004584", "end": "2025-12-15 20:20:16.272378", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.267794", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005358", "end": "2025-12-15 20:20:16.293074", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.287716", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003869", "end": "2025-12-15 20:19:52.117143", "msg": "", "rc": 0, "start": "2025-12-15 20:19:52.113274", "stderr": "", "stderr_lines": [], "stdout": "71.8%", "stdout_lines": ["71.8%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004586", "end": "2025-12-15 20:19:46.239371", "msg": "", "rc": 0, "start": "2025-12-15 20:19:46.234785", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010835", "end": "2025-12-15 20:20:16.976782", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.965947", "stderr": "", "stderr_lines": [], "stdout": "6.9%", "stdout_lines": ["6.9%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011941", "end": "2025-12-15 20:20:16.988262", "msg": "", "rc": 0, "start": "2025-12-15 20:20:16.976321", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005771", "end": "2025-12-15 20:20:17.248731", "msg": "", "rc": 0, "start": "2025-12-15 20:20:17.242960", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004297", "end": "2025-12-15 20:19:49.408508", "msg": "", "rc": 0, "start": "2025-12-15 20:19:49.404211", "stderr": "", "stderr_lines": [], "stdout": "26.1%", "stdout_lines": ["26.1%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005216", "end": "2025-12-15 17:20:17.442067", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:20:17.436851", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004819", "end": "2025-12-15 20:19:55.426858", "msg": "", "rc": 0, "start": "2025-12-15 20:19:55.422039", "stderr": "", "stderr_lines": [], "stdout": "57.4%", "stdout_lines": ["57.4%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005515", "end": "2025-12-15 20:20:17.678458", "msg": "", "rc": 0, "start": "2025-12-15 20:20:17.672943", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.008477", "end": "2025-12-15 20:20:17.872659", "msg": "", "rc": 0, "start": "2025-12-15 20:20:17.864182", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025475", "end": "2025-12-15 20:20:17.618038", "msg": "", "rc": 0, "start": "2025-12-15 20:20:17.592563", "stderr": "", "stderr_lines": [], "stdout": "19.6%", "stdout_lines": ["19.6%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005050", "end": "2025-12-15 20:20:18.132742", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.127692", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004942", "end": "2025-12-15 20:20:18.155066", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.150124", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005995", "end": "2025-12-15 20:20:18.167018", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.161023", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004038", "end": "2025-12-15 20:20:18.197201", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.193163", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.007006", "end": "2025-12-15 20:20:18.201730", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.194724", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002864", "end": "2025-12-15 20:19:54.001020", "msg": "", "rc": 0, "start": "2025-12-15 20:19:53.998156", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002991", "end": "2025-12-15 20:19:48.130710", "msg": "", "rc": 0, "start": "2025-12-15 20:19:48.127719", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011915", "end": "2025-12-15 20:20:18.840427", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.828512", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013124", "end": "2025-12-15 20:20:18.878959", "msg": "", "rc": 0, "start": "2025-12-15 20:20:18.865835", "stderr": "", "stderr_lines": [], "stdout": "35.0°C", "stdout_lines": ["35.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003296", "end": "2025-12-15 20:20:19.129927", "msg": "", "rc": 0, "start": "2025-12-15 20:20:19.126631", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003299", "end": "2025-12-15 20:19:51.350537", "msg": "", "rc": 0, "start": "2025-12-15 20:19:51.347238", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002569", "end": "2025-12-15 20:19:57.310571", "msg": "", "rc": 0, "start": "2025-12-15 20:19:57.308002", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003892", "end": "2025-12-15 17:20:19.347868", "msg": "", "rc": 0, "start": "2025-12-15 17:20:19.343976", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003436", "end": "2025-12-15 20:20:19.557205", "msg": "", "rc": 0, "start": "2025-12-15 20:20:19.553769", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004052", "end": "2025-12-15 20:20:19.796572", "msg": "", "rc": 0, "start": "2025-12-15 20:20:19.792520", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028748", "end": "2025-12-15 20:20:19.527741", "msg": "", "rc": 0, "start": "2025-12-15 20:20:19.498993", "stderr": "", "stderr_lines": [], "stdout": "35.5°C", "stdout_lines": ["35.5°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004222", "end": "2025-12-15 20:20:20.043886", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.039664", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004680", "end": "2025-12-15 20:20:20.068355", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.063675", "stderr": "", "stderr_lines": [], "stdout": "1.29", "stdout_lines": ["1.29"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004184", "end": "2025-12-15 20:20:20.079271", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.075087", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005362", "end": "2025-12-15 20:20:20.098086", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.092724", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005363", "end": "2025-12-15 20:20:20.109412", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.104049", "stderr": "", "stderr_lines": [], "stdout": "1.02", "stdout_lines": ["1.02"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004442", "end": "2025-12-15 20:19:55.917465", "msg": "", "rc": 0, "start": "2025-12-15 20:19:55.913023", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005099", "end": "2025-12-15 20:19:50.043699", "msg": "", "rc": 0, "start": "2025-12-15 20:19:50.038600", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011185", "end": "2025-12-15 20:20:20.872479", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.861294", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010199", "end": "2025-12-15 20:20:20.893735", "msg": "", "rc": 0, "start": "2025-12-15 20:20:20.883536", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005664", "end": "2025-12-15 20:20:21.049553", "msg": "", "rc": 0, "start": "2025-12-15 20:20:21.043889", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004838", "end": "2025-12-15 20:19:53.216572", "msg": "", "rc": 0, "start": "2025-12-15 20:19:53.211734", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005901", "end": "2025-12-15 17:20:21.354447", "msg": "", "rc": 0, "start": "2025-12-15 17:20:21.348546", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004442", "end": "2025-12-15 20:19:59.342217", "msg": "", "rc": 0, "start": "2025-12-15 20:19:59.337775", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005356", "end": "2025-12-15 20:20:21.483183", "msg": "", "rc": 0, "start": "2025-12-15 20:20:21.477827", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006153", "end": "2025-12-15 20:20:21.667302", "msg": "", "rc": 0, "start": "2025-12-15 20:20:21.661149", "stderr": "", "stderr_lines": [], "stdout": "1.42", "stdout_lines": ["1.42"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024539", "end": "2025-12-15 20:20:21.434562", "msg": "", "rc": 0, "start": "2025-12-15 20:20:21.410023", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 20 days, 7:11, 1 user, load average: 0.41, 0.41, 0.37\nDisk Usage: 23%\nMemory Usage: 81.1%\nCPU Load: 0.37\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 1 day, 9:52, 1 user, load average: 0.10, 0.23, 0.27\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.16\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 20 days, 7:31, 1 user, load average: 1.40, 1.01, 0.87\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 1.29\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 20 days, 8:44, 1 user, load average: 1.01, 0.74, 0.67\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 1.02\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 20 days, 9:30, 1 user, load average: 0.01, 0.01, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:13 up 13 days, 9:46, 1 user, load average: 0.14, 0.10, 0.09\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.20\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 192 days, 11:53, 1 user, load average: 0.20, 0.21, 0.24\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.33\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 192 days, 11:53, 1 user, load average: 0.44, 0.27, 0.19\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.45\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:48 up 9 days, 8:09, 0 user, load average: 0.00, 0.04, 0.07\nDisk Usage: 48%\nMemory Usage: 71.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:42 up 16 days, 4:21, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:13 up 1 day, 9:51, 1 user, load average: 0.19, 0.10, 0.04\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:45 up 18 days, 23:14, 0 user, load average: 0.31, 0.34, 0.39\nDisk Usage: 28%\nMemory Usage: 26.1%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:51 up 15 days, 9:35, 0 user, load average: 0.66, 0.46, 0.32\nDisk Usage: 75%\nMemory Usage: 57.4%\nCPU Load: 0.61\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:20PM up 20 days, 7:10, 1 user, load averages: 0.25, 0.27, 0.25\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:13 up 1 day, 9:51, 1 user, load average: 0.09, 0.20, 0.16\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:14 up 6:55, 1 user, load average: 1.40, 1.23, 1.26\nDisk Usage: 1%\nMemory Usage: 12.6%\nCPU Load: 1.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:20:22.519655+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `1d43a904e4bc4618986d7ba3288a7625` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:25:00.001100+00:00 |
| **Fin** | 2025-12-16T01:25:22.121727+00:00 |
| **Durée** | 22.1s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002990", "end": "2025-12-15 20:25:11.825235", "msg": "", "rc": 0, "start": "2025-12-15 20:25:11.822245", "stderr": "", "stderr_lines": [], "stdout": " 20:25:11 up 20 days, 7:16, 1 user, load average: 0.50, 0.43, 0.38", "stdout_lines": [" 20:25:11 up 20 days, 7:16, 1 user, load average: 0.50, 0.43, 0.38"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004045", "end": "2025-12-15 20:25:11.839367", "msg": "", "rc": 0, "start": "2025-12-15 20:25:11.835322", "stderr": "", "stderr_lines": [], "stdout": " 20:25:11 up 20 days, 9:35, 1 user, load average: 0.12, 0.03, 0.01", "stdout_lines": [" 20:25:11 up 20 days, 9:35, 1 user, load average: 0.12, 0.03, 0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003926", "end": "2025-12-15 20:25:11.853539", "msg": "", "rc": 0, "start": "2025-12-15 20:25:11.849613", "stderr": "", "stderr_lines": [], "stdout": " 20:25:11 up 20 days, 8:49, 1 user, load average: 0.71, 0.67, 0.65", "stdout_lines": [" 20:25:11 up 20 days, 8:49, 1 user, load average: 0.71, 0.67, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002813", "end": "2025-12-15 20:25:11.866061", "msg": "", "rc": 0, "start": "2025-12-15 20:25:11.863248", "stderr": "", "stderr_lines": [], "stdout": " 20:25:11 up 1 day, 9:57, 1 user, load average: 0.25, 0.18, 0.23", "stdout_lines": [" 20:25:11 up 1 day, 9:57, 1 user, load average: 0.25, 0.18, 0.23"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002765", "end": "2025-12-15 20:24:47.703256", "msg": "", "rc": 0, "start": "2025-12-15 20:24:47.700491", "stderr": "", "stderr_lines": [], "stdout": " 20:24:47 up 9 days, 8:14, 0 user, load average: 0.19, 0.36, 0.21", "stdout_lines": [" 20:24:47 up 9 days, 8:14, 0 user, load average: 0.19, 0.36, 0.21"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008426", "end": "2025-12-15 20:25:12.521565", "msg": "", "rc": 0, "start": "2025-12-15 20:25:12.513139", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 192 days, 11:58, 1 user, load average: 0.50, 0.29, 0.20", "stdout_lines": [" 20:25:12 up 192 days, 11:58, 1 user, load average: 0.50, 0.29, 0.20"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009314", "end": "2025-12-15 20:25:12.553361", "msg": "", "rc": 0, "start": "2025-12-15 20:25:12.544047", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 192 days, 11:58, 1 user, load average: 0.50, 0.32, 0.28", "stdout_lines": [" 20:25:12 up 192 days, 11:58, 1 user, load average: 0.50, 0.32, 0.28"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004482", "end": "2025-12-15 20:25:12.839874", "msg": "", "rc": 0, "start": "2025-12-15 20:25:11.835392", "stderr": "", "stderr_lines": [], "stdout": " 20:25:11 up 20 days, 7:36, 1 user, load average: 0.75, 0.91, 0.88", "stdout_lines": [" 20:25:11 up 20 days, 7:36, 1 user, load average: 0.75, 0.91, 0.88"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003947", "end": "2025-12-15 20:24:42.277813", "msg": "", "rc": 0, "start": "2025-12-15 20:24:42.273866", "stderr": "", "stderr_lines": [], "stdout": " 20:24:42 up 16 days, 4:26, 0 user, load average: 0.08, 0.02, 0.00", "stdout_lines": [" 20:24:42 up 16 days, 4:26, 0 user, load average: 0.08, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004777", "end": "2025-12-15 20:25:13.027188", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.022411", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 1 day, 9:56, 1 user, load average: 0.04, 0.06, 0.03", "stdout_lines": [" 20:25:13 up 1 day, 9:56, 1 user, load average: 0.04, 0.06, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003847", "end": "2025-12-15 20:24:45.162104", "msg": "", "rc": 0, "start": "2025-12-15 20:24:45.158257", "stderr": "", "stderr_lines": [], "stdout": " 20:24:45 up 18 days, 23:19, 0 user, load average: 0.40, 0.39, 0.39", "stdout_lines": [" 20:24:45 up 18 days, 23:19, 0 user, load average: 0.40, 0.39, 0.39"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003878", "end": "2025-12-15 20:24:51.295563", "msg": "", "rc": 0, "start": "2025-12-15 20:24:51.291685", "stderr": "", "stderr_lines": [], "stdout": " 20:24:51 up 15 days, 9:40, 0 user, load average: 0.12, 0.31, 0.29", "stdout_lines": [" 20:24:51 up 15 days, 9:40, 0 user, load average: 0.12, 0.31, 0.29"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004298", "end": "2025-12-15 17:25:13.340736", "msg": "", "rc": 0, "start": "2025-12-15 17:25:13.336438", "stderr": "", "stderr_lines": [], "stdout": " 5:25PM up 20 days, 7:15, 1 user, load averages: 0.16, 0.25, 0.24", "stdout_lines": [" 5:25PM up 20 days, 7:15, 1 user, load averages: 0.16, 0.25, 0.24"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019458", "end": "2025-12-15 20:25:13.222959", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.203501", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 13 days, 9:51, 1 user, load average: 0.24, 0.16, 0.11", "stdout_lines": [" 20:25:13 up 13 days, 9:51, 1 user, load average: 0.24, 0.16, 0.11"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007755", "end": "2025-12-15 20:25:13.622058", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.614303", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 7:00, 1 user, load average: 1.41, 1.24, 1.25", "stdout_lines": [" 20:25:13 up 7:00, 1 user, load average: 1.41, 1.24, 1.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003797", "end": "2025-12-15 20:25:13.479179", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.475382", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 1 day, 9:56, 1 user, load average: 0.07, 0.13, 0.14", "stdout_lines": [" 20:25:13 up 1 day, 9:56, 1 user, load average: 0.07, 0.13, 0.14"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004090", "end": "2025-12-15 20:25:13.880270", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.876180", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004413", "end": "2025-12-15 20:25:13.884074", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.879661", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004676", "end": "2025-12-15 20:25:13.899787", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.895111", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004584", "end": "2025-12-15 20:25:13.923963", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.919379", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005701", "end": "2025-12-15 20:25:13.940021", "msg": "", "rc": 0, "start": "2025-12-15 20:25:13.934320", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004794", "end": "2025-12-15 20:24:49.736161", "msg": "", "rc": 0, "start": "2025-12-15 20:24:49.731367", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005242", "end": "2025-12-15 20:24:43.844287", "msg": "", "rc": 0, "start": "2025-12-15 20:24:43.839045", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010534", "end": "2025-12-15 20:25:14.624044", "msg": "", "rc": 0, "start": "2025-12-15 20:25:14.613510", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011601", "end": "2025-12-15 20:25:14.659364", "msg": "", "rc": 0, "start": "2025-12-15 20:25:14.647763", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005812", "end": "2025-12-15 20:25:14.850534", "msg": "", "rc": 0, "start": "2025-12-15 20:25:14.844722", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005194", "end": "2025-12-15 20:24:47.021417", "msg": "", "rc": 0, "start": "2025-12-15 20:24:47.016223", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005638", "end": "2025-12-15 17:25:15.118042", "msg": "", "rc": 0, "start": "2025-12-15 17:25:15.112404", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006729", "end": "2025-12-15 20:24:53.087065", "msg": "", "rc": 0, "start": "2025-12-15 20:24:53.080336", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005462", "end": "2025-12-15 20:25:15.275755", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.270293", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019118", "end": "2025-12-15 20:25:15.469376", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.450258", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025205", "end": "2025-12-15 20:25:15.265243", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.240038", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004459", "end": "2025-12-15 20:25:15.777927", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.773468", "stderr": "", "stderr_lines": [], "stdout": "81.2%", "stdout_lines": ["81.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004137", "end": "2025-12-15 20:25:15.786146", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.782009", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004809", "end": "2025-12-15 20:25:15.803559", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.798750", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.2%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004528", "end": "2025-12-15 20:25:15.840828", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.836300", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006114", "end": "2025-12-15 20:25:15.855325", "msg": "", "rc": 0, "start": "2025-12-15 20:25:15.849211", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003565", "end": "2025-12-15 20:24:51.628287", "msg": "", "rc": 0, "start": "2025-12-15 20:24:51.624722", "stderr": "", "stderr_lines": [], "stdout": "71.6%", "stdout_lines": ["71.6%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004697", "end": "2025-12-15 20:24:45.764360", "msg": "", "rc": 0, "start": "2025-12-15 20:24:45.759663", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010972", "end": "2025-12-15 20:25:16.452408", "msg": "", "rc": 0, "start": "2025-12-15 20:25:16.441436", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012328", "end": "2025-12-15 20:25:16.496648", "msg": "", "rc": 0, "start": "2025-12-15 20:25:16.484320", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005791", "end": "2025-12-15 20:25:16.754738", "msg": "", "rc": 0, "start": "2025-12-15 20:25:16.748947", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004257", "end": "2025-12-15 20:24:48.928704", "msg": "", "rc": 0, "start": "2025-12-15 20:24:48.924447", "stderr": "", "stderr_lines": [], "stdout": "26.0%", "stdout_lines": ["26.0%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006447", "end": "2025-12-15 20:24:54.908175", "msg": "", "rc": 0, "start": "2025-12-15 20:24:54.901728", "stderr": "", "stderr_lines": [], "stdout": "58.1%", "stdout_lines": ["58.1%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005327", "end": "2025-12-15 17:25:16.966856", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:25:16.961529", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005478", "end": "2025-12-15 20:25:17.186005", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.180527", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.008809", "end": "2025-12-15 20:25:17.423486", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.414677", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025764", "end": "2025-12-15 20:25:17.156710", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.130946", "stderr": "", "stderr_lines": [], "stdout": "20.6%", "stdout_lines": ["20.6%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004974", "end": "2025-12-15 20:25:17.701317", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.696343", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005187", "end": "2025-12-15 20:25:17.713616", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.708429", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006260", "end": "2025-12-15 20:25:17.721594", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.715334", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003141", "end": "2025-12-15 20:25:17.756244", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.753103", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006439", "end": "2025-12-15 20:25:17.754241", "msg": "", "rc": 0, "start": "2025-12-15 20:25:17.747802", "stderr": "", "stderr_lines": [], "stdout": "53.0°C", "stdout_lines": ["53.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002753", "end": "2025-12-15 20:24:53.568495", "msg": "", "rc": 0, "start": "2025-12-15 20:24:53.565742", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002863", "end": "2025-12-15 20:24:47.668671", "msg": "", "rc": 0, "start": "2025-12-15 20:24:47.665808", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011853", "end": "2025-12-15 20:25:18.377936", "msg": "", "rc": 0, "start": "2025-12-15 20:25:18.366083", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013121", "end": "2025-12-15 20:25:18.413794", "msg": "", "rc": 0, "start": "2025-12-15 20:25:18.400673", "stderr": "", "stderr_lines": [], "stdout": "35.0°C", "stdout_lines": ["35.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003221", "end": "2025-12-15 20:25:18.706494", "msg": "", "rc": 0, "start": "2025-12-15 20:25:18.703273", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002819", "end": "2025-12-15 20:24:50.842757", "msg": "", "rc": 0, "start": "2025-12-15 20:24:50.839938", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002834", "end": "2025-12-15 20:24:56.833499", "msg": "", "rc": 0, "start": "2025-12-15 20:24:56.830665", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003893", "end": "2025-12-15 17:25:18.873323", "msg": "", "rc": 0, "start": "2025-12-15 17:25:18.869430", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005054", "end": "2025-12-15 20:25:19.309406", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.304352", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003244", "end": "2025-12-15 20:25:19.144815", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.141571", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028976", "end": "2025-12-15 20:25:19.079001", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.050025", "stderr": "", "stderr_lines": [], "stdout": "36.9°C", "stdout_lines": ["36.9°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004229", "end": "2025-12-15 20:25:19.601354", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.597125", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004159", "end": "2025-12-15 20:25:19.621358", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.617199", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004678", "end": "2025-12-15 20:25:19.641740", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.637062", "stderr": "", "stderr_lines": [], "stdout": "0.69", "stdout_lines": ["0.69"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006065", "end": "2025-12-15 20:25:19.653559", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.647494", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005812", "end": "2025-12-15 20:25:19.664969", "msg": "", "rc": 0, "start": "2025-12-15 20:25:19.659157", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005039", "end": "2025-12-15 20:24:55.450020", "msg": "", "rc": 0, "start": "2025-12-15 20:24:55.444981", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005582", "end": "2025-12-15 20:24:49.586736", "msg": "", "rc": 0, "start": "2025-12-15 20:24:49.581154", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010047", "end": "2025-12-15 20:25:20.378901", "msg": "", "rc": 0, "start": "2025-12-15 20:25:20.368854", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011119", "end": "2025-12-15 20:25:20.448156", "msg": "", "rc": 0, "start": "2025-12-15 20:25:20.437037", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005557", "end": "2025-12-15 20:25:20.594154", "msg": "", "rc": 0, "start": "2025-12-15 20:25:20.588597", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005018", "end": "2025-12-15 20:24:52.814576", "msg": "", "rc": 0, "start": "2025-12-15 20:24:52.809558", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004629", "end": "2025-12-15 20:24:58.868555", "msg": "", "rc": 0, "start": "2025-12-15 20:24:58.863926", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005975", "end": "2025-12-15 17:25:20.921084", "msg": "", "rc": 0, "start": "2025-12-15 17:25:20.915109", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005343", "end": "2025-12-15 20:25:21.029235", "msg": "", "rc": 0, "start": "2025-12-15 20:25:21.023892", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024172", "end": "2025-12-15 20:25:20.991830", "msg": "", "rc": 0, "start": "2025-12-15 20:25:20.967658", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007328", "end": "2025-12-15 20:25:21.328721", "msg": "", "rc": 0, "start": "2025-12-15 20:25:21.321393", "stderr": "", "stderr_lines": [], "stdout": "1.35", "stdout_lines": ["1.35"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:11 up 1 day, 9:57, 1 user, load average: 0.25, 0.18, 0.23\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.45\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:11 up 20 days, 7:16, 1 user, load average: 0.50, 0.43, 0.38\nDisk Usage: 23%\nMemory Usage: 81.2%\nCPU Load: 0.54\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:11 up 20 days, 7:36, 1 user, load average: 0.75, 0.91, 0.88\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.69\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:11 up 20 days, 8:49, 1 user, load average: 0.71, 0.67, 0.65\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.60\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:11 up 20 days, 9:35, 1 user, load average: 0.12, 0.03, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:13 up 13 days, 9:51, 1 user, load average: 0.24, 0.16, 0.11\nDisk Usage: 21%\nMemory Usage: 20.6%\nCPU Load: 0.27\nCPU Temp: 36.9°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 192 days, 11:58, 1 user, load average: 0.50, 0.32, 0.28\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.58\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 192 days, 11:58, 1 user, load average: 0.50, 0.29, 0.20\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.50\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:47 up 9 days, 8:14, 0 user, load average: 0.19, 0.36, 0.21\nDisk Usage: 48%\nMemory Usage: 71.6%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:42 up 16 days, 4:26, 0 user, load average: 0.08, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:13 up 1 day, 9:56, 1 user, load average: 0.04, 0.06, 0.03\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:45 up 18 days, 23:19, 0 user, load average: 0.40, 0.39, 0.39\nDisk Usage: 28%\nMemory Usage: 26.0%\nCPU Load: 0.36\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:51 up 15 days, 9:40, 0 user, load average: 0.12, 0.31, 0.29\nDisk Usage: 75%\nMemory Usage: 58.1%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:25PM up 20 days, 7:15, 1 user, load averages: 0.16, 0.25, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:13 up 1 day, 9:56, 1 user, load average: 0.07, 0.13, 0.14\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:13 up 7:00, 1 user, load average: 1.41, 1.24, 1.25\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:25:22.162099+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `bcc02d45642f4db7a6c979c17594ff14` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:30:00.000333+00:00 |
| **Fin** | 2025-12-16T01:30:22.498821+00:00 |
| **Durée** | 22.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003486", "end": "2025-12-15 20:30:12.142350", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.138864", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 20 days, 7:21, 1 user, load average: 0.32, 0.40, 0.37", "stdout_lines": [" 20:30:12 up 20 days, 7:21, 1 user, load average: 0.32, 0.40, 0.37"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003475", "end": "2025-12-15 20:30:12.152913", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.149438", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 20 days, 7:41, 1 user, load average: 0.29, 0.64, 0.79", "stdout_lines": [" 20:30:12 up 20 days, 7:41, 1 user, load average: 0.29, 0.64, 0.79"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003956", "end": "2025-12-15 20:30:12.158945", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.154989", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 20 days, 9:40, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 20:30:12 up 20 days, 9:40, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002797", "end": "2025-12-15 20:30:12.183353", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.180556", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 1 day, 10:02, 1 user, load average: 0.24, 0.23, 0.24", "stdout_lines": [" 20:30:12 up 1 day, 10:02, 1 user, load average: 0.24, 0.23, 0.24"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004280", "end": "2025-12-15 20:30:12.191441", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.187161", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 20 days, 8:54, 1 user, load average: 0.85, 0.72, 0.67", "stdout_lines": [" 20:30:12 up 20 days, 8:54, 1 user, load average: 0.85, 0.72, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003322", "end": "2025-12-15 20:29:48.001959", "msg": "", "rc": 0, "start": "2025-12-15 20:29:47.998637", "stderr": "", "stderr_lines": [], "stdout": " 20:29:48 up 9 days, 8:19, 0 user, load average: 0.11, 0.29, 0.22", "stdout_lines": [" 20:29:48 up 9 days, 8:19, 0 user, load average: 0.11, 0.29, 0.22"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003626", "end": "2025-12-15 20:29:42.142046", "msg": "", "rc": 0, "start": "2025-12-15 20:29:42.138420", "stderr": "", "stderr_lines": [], "stdout": " 20:29:42 up 16 days, 4:31, 0 user, load average: 0.02, 0.03, 0.00", "stdout_lines": [" 20:29:42 up 16 days, 4:31, 0 user, load average: 0.02, 0.03, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008549", "end": "2025-12-15 20:30:12.846307", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.837758", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 192 days, 12:03, 1 user, load average: 0.26, 0.20, 0.18", "stdout_lines": [" 20:30:12 up 192 days, 12:03, 1 user, load average: 0.26, 0.20, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009358", "end": "2025-12-15 20:30:12.895699", "msg": "", "rc": 0, "start": "2025-12-15 20:30:12.886341", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 192 days, 12:03, 1 user, load average: 0.32, 0.32, 0.28", "stdout_lines": [" 20:30:12 up 192 days, 12:03, 1 user, load average: 0.32, 0.32, 0.28"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004483", "end": "2025-12-15 20:30:13.145056", "msg": "", "rc": 0, "start": "2025-12-15 20:30:13.140573", "stderr": "", "stderr_lines": [], "stdout": " 20:30:13 up 1 day, 10:01, 1 user, load average: 0.14, 0.05, 0.01", "stdout_lines": [" 20:30:13 up 1 day, 10:01, 1 user, load average: 0.14, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003399", "end": "2025-12-15 20:29:45.329540", "msg": "", "rc": 0, "start": "2025-12-15 20:29:45.326141", "stderr": "", "stderr_lines": [], "stdout": " 20:29:45 up 18 days, 23:24, 0 user, load average: 0.37, 0.38, 0.37", "stdout_lines": [" 20:29:45 up 18 days, 23:24, 0 user, load average: 0.37, 0.38, 0.37"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002815", "end": "2025-12-15 20:29:51.313496", "msg": "", "rc": 0, "start": "2025-12-15 20:29:51.310681", "stderr": "", "stderr_lines": [], "stdout": " 20:29:51 up 15 days, 9:45, 0 user, load average: 0.25, 0.33, 0.30", "stdout_lines": [" 20:29:51 up 15 days, 9:45, 0 user, load average: 0.25, 0.33, 0.30"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004467", "end": "2025-12-15 17:30:13.360312", "msg": "", "rc": 0, "start": "2025-12-15 17:30:13.355845", "stderr": "", "stderr_lines": [], "stdout": " 5:30PM up 20 days, 7:20, 1 user, load averages: 0.22, 0.30, 0.27", "stdout_lines": [" 5:30PM up 20 days, 7:20, 1 user, load averages: 0.22, 0.30, 0.27"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003829", "end": "2025-12-15 20:30:13.567430", "msg": "", "rc": 0, "start": "2025-12-15 20:30:13.563601", "stderr": "", "stderr_lines": [], "stdout": " 20:30:13 up 1 day, 10:01, 1 user, load average: 0.45, 0.23, 0.17", "stdout_lines": [" 20:30:13 up 1 day, 10:01, 1 user, load average: 0.45, 0.23, 0.17"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008046", "end": "2025-12-15 20:30:13.871574", "msg": "", "rc": 0, "start": "2025-12-15 20:30:13.863528", "stderr": "", "stderr_lines": [], "stdout": " 20:30:13 up 7:05, 1 user, load average: 1.20, 1.17, 1.20", "stdout_lines": [" 20:30:13 up 7:05, 1 user, load average: 1.20, 1.17, 1.20"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019772", "end": "2025-12-15 20:30:13.570320", "msg": "", "rc": 0, "start": "2025-12-15 20:30:13.550548", "stderr": "", "stderr_lines": [], "stdout": " 20:30:13 up 13 days, 9:56, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 20:30:13 up 13 days, 9:56, 1 user, load average: 0.22, 0.14, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004273", "end": "2025-12-15 20:30:14.098081", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.093808", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004221", "end": "2025-12-15 20:30:14.118864", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.114643", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004786", "end": "2025-12-15 20:30:14.126077", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.121291", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004785", "end": "2025-12-15 20:30:14.156004", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.151219", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006821", "end": "2025-12-15 20:30:14.167511", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.160690", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004704", "end": "2025-12-15 20:29:49.959666", "msg": "", "rc": 0, "start": "2025-12-15 20:29:49.954962", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005844", "end": "2025-12-15 20:29:44.088526", "msg": "", "rc": 0, "start": "2025-12-15 20:29:44.082682", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011273", "end": "2025-12-15 20:30:14.842473", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.831200", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011671", "end": "2025-12-15 20:30:14.882478", "msg": "", "rc": 0, "start": "2025-12-15 20:30:14.870807", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005973", "end": "2025-12-15 20:30:15.108290", "msg": "", "rc": 0, "start": "2025-12-15 20:30:15.102317", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005116", "end": "2025-12-15 20:29:47.265240", "msg": "", "rc": 0, "start": "2025-12-15 20:29:47.260124", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005279", "end": "2025-12-15 20:29:53.299742", "msg": "", "rc": 0, "start": "2025-12-15 20:29:53.294463", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005758", "end": "2025-12-15 17:30:15.343525", "msg": "", "rc": 0, "start": "2025-12-15 17:30:15.337767", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005465", "end": "2025-12-15 20:30:15.541190", "msg": "", "rc": 0, "start": "2025-12-15 20:30:15.535725", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021013", "end": "2025-12-15 20:30:15.793525", "msg": "", "rc": 0, "start": "2025-12-15 20:30:15.772512", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025276", "end": "2025-12-15 20:30:15.484747", "msg": "", "rc": 0, "start": "2025-12-15 20:30:15.459471", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004606", "end": "2025-12-15 20:30:16.018523", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.013917", "stderr": "", "stderr_lines": [], "stdout": "81.2%", "stdout_lines": ["81.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004201", "end": "2025-12-15 20:30:16.029345", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.025144", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004917", "end": "2025-12-15 20:30:16.064134", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.059217", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.0%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004751", "end": "2025-12-15 20:30:16.088011", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.083260", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005517", "end": "2025-12-15 20:30:16.094831", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.089314", "stderr": "", "stderr_lines": [], "stdout": "59.6%", "stdout_lines": ["59.6%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003912", "end": "2025-12-15 20:29:51.894827", "msg": "", "rc": 0, "start": "2025-12-15 20:29:51.890915", "stderr": "", "stderr_lines": [], "stdout": "71.5%", "stdout_lines": ["71.5%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004313", "end": "2025-12-15 20:29:46.005979", "msg": "", "rc": 0, "start": "2025-12-15 20:29:46.001666", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011042", "end": "2025-12-15 20:30:16.731166", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.720124", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011989", "end": "2025-12-15 20:30:16.759179", "msg": "", "rc": 0, "start": "2025-12-15 20:30:16.747190", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005877", "end": "2025-12-15 20:30:17.028128", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.022251", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004134", "end": "2025-12-15 20:29:49.188819", "msg": "", "rc": 0, "start": "2025-12-15 20:29:49.184685", "stderr": "", "stderr_lines": [], "stdout": "26.2%", "stdout_lines": ["26.2%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005315", "end": "2025-12-15 17:30:17.221742", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:30:17.216427", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004459", "end": "2025-12-15 20:29:55.208895", "msg": "", "rc": 0, "start": "2025-12-15 20:29:55.204436", "stderr": "", "stderr_lines": [], "stdout": "58.8%", "stdout_lines": ["58.8%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005500", "end": "2025-12-15 20:30:17.474882", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.469382", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010538", "end": "2025-12-15 20:30:17.762067", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.751529", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025873", "end": "2025-12-15 20:30:17.422416", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.396543", "stderr": "", "stderr_lines": [], "stdout": "19.0%", "stdout_lines": ["19.0%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005039", "end": "2025-12-15 20:30:17.936571", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.931532", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004817", "end": "2025-12-15 20:30:17.956852", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.952035", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005995", "end": "2025-12-15 20:30:17.980470", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.974475", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003591", "end": "2025-12-15 20:30:18.002400", "msg": "", "rc": 0, "start": "2025-12-15 20:30:17.998809", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006365", "end": "2025-12-15 20:30:18.008284", "msg": "", "rc": 0, "start": "2025-12-15 20:30:18.001919", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002948", "end": "2025-12-15 20:29:53.796869", "msg": "", "rc": 0, "start": "2025-12-15 20:29:53.793921", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002965", "end": "2025-12-15 20:29:47.930040", "msg": "", "rc": 0, "start": "2025-12-15 20:29:47.927075", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011787", "end": "2025-12-15 20:30:18.628669", "msg": "", "rc": 0, "start": "2025-12-15 20:30:18.616882", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013175", "end": "2025-12-15 20:30:18.671681", "msg": "", "rc": 0, "start": "2025-12-15 20:30:18.658506", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003377", "end": "2025-12-15 20:30:18.926232", "msg": "", "rc": 0, "start": "2025-12-15 20:30:18.922855", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002975", "end": "2025-12-15 20:29:51.111907", "msg": "", "rc": 0, "start": "2025-12-15 20:29:51.108932", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003935", "end": "2025-12-15 17:30:19.136843", "msg": "", "rc": 0, "start": "2025-12-15 17:30:19.132908", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002704", "end": "2025-12-15 20:29:57.098568", "msg": "", "rc": 0, "start": "2025-12-15 20:29:57.095864", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003015", "end": "2025-12-15 20:30:19.361101", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.358086", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004013", "end": "2025-12-15 20:30:19.682888", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.678875", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028606", "end": "2025-12-15 20:30:19.323659", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.295053", "stderr": "", "stderr_lines": [], "stdout": "35.7°C", "stdout_lines": ["35.7°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004260", "end": "2025-12-15 20:30:19.852906", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.848646", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004043", "end": "2025-12-15 20:30:19.859835", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.855792", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004873", "end": "2025-12-15 20:30:19.899073", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.894200", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004719", "end": "2025-12-15 20:30:19.909331", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.904612", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005481", "end": "2025-12-15 20:30:19.914298", "msg": "", "rc": 0, "start": "2025-12-15 20:30:19.908817", "stderr": "", "stderr_lines": [], "stdout": "1.02", "stdout_lines": ["1.02"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004544", "end": "2025-12-15 20:29:55.707126", "msg": "", "rc": 0, "start": "2025-12-15 20:29:55.702582", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005259", "end": "2025-12-15 20:29:49.842283", "msg": "", "rc": 0, "start": "2025-12-15 20:29:49.837024", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010151", "end": "2025-12-15 20:30:20.661141", "msg": "", "rc": 0, "start": "2025-12-15 20:30:20.650990", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011275", "end": "2025-12-15 20:30:20.664616", "msg": "", "rc": 0, "start": "2025-12-15 20:30:20.653341", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005506", "end": "2025-12-15 20:30:20.846489", "msg": "", "rc": 0, "start": "2025-12-15 20:30:20.840983", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005064", "end": "2025-12-15 20:29:53.017500", "msg": "", "rc": 0, "start": "2025-12-15 20:29:53.012436", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006136", "end": "2025-12-15 17:30:21.142509", "msg": "", "rc": 0, "start": "2025-12-15 17:30:21.136373", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004466", "end": "2025-12-15 20:29:59.146291", "msg": "", "rc": 0, "start": "2025-12-15 20:29:59.141825", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005351", "end": "2025-12-15 20:30:21.300203", "msg": "", "rc": 0, "start": "2025-12-15 20:30:21.294852", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006911", "end": "2025-12-15 20:30:21.592328", "msg": "", "rc": 0, "start": "2025-12-15 20:30:21.585417", "stderr": "", "stderr_lines": [], "stdout": "1.32", "stdout_lines": ["1.32"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024107", "end": "2025-12-15 20:30:21.245000", "msg": "", "rc": 0, "start": "2025-12-15 20:30:21.220893", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 1 day, 10:02, 1 user, load average: 0.24, 0.23, 0.24\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.20\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 20 days, 7:21, 1 user, load average: 0.32, 0.40, 0.37\nDisk Usage: 23%\nMemory Usage: 81.2%\nCPU Load: 0.37\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 20 days, 7:41, 1 user, load average: 0.29, 0.64, 0.79\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.35\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 20 days, 8:54, 1 user, load average: 0.85, 0.72, 0.67\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 1.02\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 20 days, 9:40, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:13 up 13 days, 9:56, 1 user, load average: 0.22, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.0%\nCPU Load: 0.26\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 192 days, 12:03, 1 user, load average: 0.32, 0.32, 0.28\nDisk Usage: 6%\nMemory Usage: 12.5%\nCPU Load: 0.50\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 192 days, 12:03, 1 user, load average: 0.26, 0.20, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.22\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:48 up 9 days, 8:19, 0 user, load average: 0.11, 0.29, 0.22\nDisk Usage: 48%\nMemory Usage: 71.5%\nCPU Load: 0.39\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:42 up 16 days, 4:31, 0 user, load average: 0.02, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:13 up 1 day, 10:01, 1 user, load average: 0.14, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:45 up 18 days, 23:24, 0 user, load average: 0.37, 0.38, 0.37\nDisk Usage: 28%\nMemory Usage: 26.2%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:51 up 15 days, 9:45, 0 user, load average: 0.25, 0.33, 0.30\nDisk Usage: 75%\nMemory Usage: 58.8%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:30PM up 20 days, 7:20, 1 user, load averages: 0.22, 0.30, 0.27\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:13 up 1 day, 10:01, 1 user, load average: 0.45, 0.23, 0.17\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:13 up 7:05, 1 user, load average: 1.20, 1.17, 1.20\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:30:22.539437+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `cb71100d67714c119a347271527ea0a5` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T01:35:00.001369+00:00 |
| **Fin** | 2025-12-16T01:35:22.366948+00:00 |
| **Durée** | 22.4s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003110", "end": "2025-12-15 20:35:12.121175", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.118065", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 20 days, 7:26, 1 user, load average: 0.42, 0.43, 0.38", "stdout_lines": [" 20:35:12 up 20 days, 7:26, 1 user, load average: 0.42, 0.43, 0.38"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003263", "end": "2025-12-15 20:35:12.137833", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.134570", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 20 days, 7:46, 1 user, load average: 0.45, 0.65, 0.76", "stdout_lines": [" 20:35:12 up 20 days, 7:46, 1 user, load average: 0.45, 0.65, 0.76"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003877", "end": "2025-12-15 20:35:12.140766", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.136889", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 20 days, 9:45, 1 user, load average: 0.02, 0.01, 0.00", "stdout_lines": [" 20:35:12 up 20 days, 9:45, 1 user, load average: 0.02, 0.01, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002919", "end": "2025-12-15 20:35:12.165545", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.162626", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 1 day, 10:07, 1 user, load average: 0.07, 0.15, 0.20", "stdout_lines": [" 20:35:12 up 1 day, 10:07, 1 user, load average: 0.07, 0.15, 0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003017", "end": "2025-12-15 20:34:47.941116", "msg": "", "rc": 0, "start": "2025-12-15 20:34:47.938099", "stderr": "", "stderr_lines": [], "stdout": " 20:34:47 up 9 days, 8:24, 0 user, load average: 0.21, 0.20, 0.19", "stdout_lines": [" 20:34:47 up 9 days, 8:24, 0 user, load average: 0.21, 0.20, 0.19"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008515", "end": "2025-12-15 20:35:12.796632", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.788117", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 192 days, 12:08, 1 user, load average: 0.10, 0.13, 0.15", "stdout_lines": [" 20:35:12 up 192 days, 12:08, 1 user, load average: 0.10, 0.13, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009269", "end": "2025-12-15 20:35:12.845232", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.835963", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 192 days, 12:08, 1 user, load average: 0.29, 0.31, 0.28", "stdout_lines": [" 20:35:12 up 192 days, 12:08, 1 user, load average: 0.29, 0.31, 0.28"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004685", "end": "2025-12-15 20:34:42.526963", "msg": "", "rc": 0, "start": "2025-12-15 20:34:42.522278", "stderr": "", "stderr_lines": [], "stdout": " 20:34:42 up 16 days, 4:36, 0 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 20:34:42 up 16 days, 4:36, 0 user, load average: 0.01, 0.02, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005561", "end": "2025-12-15 20:35:13.180348", "msg": "", "rc": 0, "start": "2025-12-15 20:35:12.174787", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 20 days, 8:59, 1 user, load average: 0.83, 0.67, 0.65", "stdout_lines": [" 20:35:12 up 20 days, 8:59, 1 user, load average: 0.83, 0.67, 0.65"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004597", "end": "2025-12-15 20:35:13.300012", "msg": "", "rc": 0, "start": "2025-12-15 20:35:13.295415", "stderr": "", "stderr_lines": [], "stdout": " 20:35:13 up 1 day, 10:06, 1 user, load average: 0.08, 0.06, 0.01", "stdout_lines": [" 20:35:13 up 1 day, 10:06, 1 user, load average: 0.08, 0.06, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003430", "end": "2025-12-15 20:34:45.447152", "msg": "", "rc": 0, "start": "2025-12-15 20:34:45.443722", "stderr": "", "stderr_lines": [], "stdout": " 20:34:45 up 18 days, 23:29, 0 user, load average: 1.00, 0.53, 0.42", "stdout_lines": [" 20:34:45 up 18 days, 23:29, 0 user, load average: 1.00, 0.53, 0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004432", "end": "2025-12-15 17:35:13.601720", "msg": "", "rc": 0, "start": "2025-12-15 17:35:13.597288", "stderr": "", "stderr_lines": [], "stdout": " 5:35PM up 20 days, 7:25, 1 user, load averages: 0.26, 0.29, 0.25", "stdout_lines": [" 5:35PM up 20 days, 7:25, 1 user, load averages: 0.26, 0.29, 0.25"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019406", "end": "2025-12-15 20:35:13.492815", "msg": "", "rc": 0, "start": "2025-12-15 20:35:13.473409", "stderr": "", "stderr_lines": [], "stdout": " 20:35:13 up 13 days, 10:01, 1 user, load average: 0.22, 0.12, 0.10", "stdout_lines": [" 20:35:13 up 13 days, 10:01, 1 user, load average: 0.22, 0.12, 0.10"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002839", "end": "2025-12-15 20:34:51.597496", "msg": "", "rc": 0, "start": "2025-12-15 20:34:51.594657", "stderr": "", "stderr_lines": [], "stdout": " 20:34:51 up 15 days, 9:50, 0 user, load average: 0.25, 0.31, 0.29", "stdout_lines": [" 20:34:51 up 15 days, 9:50, 0 user, load average: 0.25, 0.31, 0.29"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003760", "end": "2025-12-15 20:35:13.729742", "msg": "", "rc": 0, "start": "2025-12-15 20:35:13.725982", "stderr": "", "stderr_lines": [], "stdout": " 20:35:13 up 1 day, 10:06, 1 user, load average: 0.33, 0.23, 0.17", "stdout_lines": [" 20:35:13 up 1 day, 10:06, 1 user, load average: 0.33, 0.23, 0.17"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006908", "end": "2025-12-15 20:35:14.024722", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.017814", "stderr": "", "stderr_lines": [], "stdout": " 20:35:14 up 7:10, 1 user, load average: 1.23, 1.24, 1.23", "stdout_lines": [" 20:35:14 up 7:10, 1 user, load average: 1.23, 1.24, 1.23"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004342", "end": "2025-12-15 20:35:14.123394", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.119052", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004122", "end": "2025-12-15 20:35:14.152870", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.148748", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004620", "end": "2025-12-15 20:35:14.164655", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.160035", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004939", "end": "2025-12-15 20:35:14.173620", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.168681", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005504", "end": "2025-12-15 20:35:14.203145", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.197641", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005779", "end": "2025-12-15 20:34:49.971083", "msg": "", "rc": 0, "start": "2025-12-15 20:34:49.965304", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005495", "end": "2025-12-15 20:34:44.104436", "msg": "", "rc": 0, "start": "2025-12-15 20:34:44.098941", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010598", "end": "2025-12-15 20:35:14.866660", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.856062", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011626", "end": "2025-12-15 20:35:14.890708", "msg": "", "rc": 0, "start": "2025-12-15 20:35:14.879082", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005751", "end": "2025-12-15 20:35:15.101493", "msg": "", "rc": 0, "start": "2025-12-15 20:35:15.095742", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005507", "end": "2025-12-15 20:34:47.282700", "msg": "", "rc": 0, "start": "2025-12-15 20:34:47.277193", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005710", "end": "2025-12-15 17:35:15.354955", "msg": "", "rc": 0, "start": "2025-12-15 17:35:15.349245", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004596", "end": "2025-12-15 20:34:53.346393", "msg": "", "rc": 0, "start": "2025-12-15 20:34:53.341797", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005333", "end": "2025-12-15 20:35:15.532642", "msg": "", "rc": 0, "start": "2025-12-15 20:35:15.527309", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019763", "end": "2025-12-15 20:35:15.842335", "msg": "", "rc": 0, "start": "2025-12-15 20:35:15.822572", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025599", "end": "2025-12-15 20:35:15.499749", "msg": "", "rc": 0, "start": "2025-12-15 20:35:15.474150", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004475", "end": "2025-12-15 20:35:16.047239", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.042764", "stderr": "", "stderr_lines": [], "stdout": "76.1%", "stdout_lines": ["76.1%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004240", "end": "2025-12-15 20:35:16.050660", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.046420", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004884", "end": "2025-12-15 20:35:16.056623", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.051739", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.0%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004837", "end": "2025-12-15 20:35:16.075074", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.070237", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005627", "end": "2025-12-15 20:35:16.089464", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.083837", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003706", "end": "2025-12-15 20:34:51.903405", "msg": "", "rc": 0, "start": "2025-12-15 20:34:51.899699", "stderr": "", "stderr_lines": [], "stdout": "71.3%", "stdout_lines": ["71.3%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004368", "end": "2025-12-15 20:34:46.001949", "msg": "", "rc": 0, "start": "2025-12-15 20:34:45.997581", "stderr": "", "stderr_lines": [], "stdout": "72.3%", "stdout_lines": ["72.3%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011052", "end": "2025-12-15 20:35:16.745690", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.734638", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012038", "end": "2025-12-15 20:35:16.790216", "msg": "", "rc": 0, "start": "2025-12-15 20:35:16.778178", "stderr": "", "stderr_lines": [], "stdout": "12.7%", "stdout_lines": ["12.7%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006034", "end": "2025-12-15 20:35:17.049403", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.043369", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004852", "end": "2025-12-15 20:34:49.180660", "msg": "", "rc": 0, "start": "2025-12-15 20:34:49.175808", "stderr": "", "stderr_lines": [], "stdout": "25.9%", "stdout_lines": ["25.9%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004577", "end": "2025-12-15 20:34:55.181524", "msg": "", "rc": 0, "start": "2025-12-15 20:34:55.176947", "stderr": "", "stderr_lines": [], "stdout": "57.8%", "stdout_lines": ["57.8%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005461", "end": "2025-12-15 17:35:17.249470", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 17:35:17.244009", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007665", "end": "2025-12-15 20:35:17.697627", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.689962", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005468", "end": "2025-12-15 20:35:17.492823", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.487355", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025869", "end": "2025-12-15 20:35:17.449064", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.423195", "stderr": "", "stderr_lines": [], "stdout": "19.9%", "stdout_lines": ["19.9%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005101", "end": "2025-12-15 20:35:17.960954", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.955853", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004859", "end": "2025-12-15 20:35:17.986954", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.982095", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006316", "end": "2025-12-15 20:35:18.002473", "msg": "", "rc": 0, "start": "2025-12-15 20:35:17.996157", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003602", "end": "2025-12-15 20:35:18.011530", "msg": "", "rc": 0, "start": "2025-12-15 20:35:18.007928", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006463", "end": "2025-12-15 20:35:18.025943", "msg": "", "rc": 0, "start": "2025-12-15 20:35:18.019480", "stderr": "", "stderr_lines": [], "stdout": "53.0°C", "stdout_lines": ["53.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002996", "end": "2025-12-15 20:34:53.785308", "msg": "", "rc": 0, "start": "2025-12-15 20:34:53.782312", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003313", "end": "2025-12-15 20:34:47.913892", "msg": "", "rc": 0, "start": "2025-12-15 20:34:47.910579", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011869", "end": "2025-12-15 20:35:18.674209", "msg": "", "rc": 0, "start": "2025-12-15 20:35:18.662340", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012914", "end": "2025-12-15 20:35:18.692579", "msg": "", "rc": 0, "start": "2025-12-15 20:35:18.679665", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003243", "end": "2025-12-15 20:35:18.905629", "msg": "", "rc": 0, "start": "2025-12-15 20:35:18.902386", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002908", "end": "2025-12-15 20:34:51.074070", "msg": "", "rc": 0, "start": "2025-12-15 20:34:51.071162", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003894", "end": "2025-12-15 17:35:19.138923", "msg": "", "rc": 0, "start": "2025-12-15 17:35:19.135029", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003457", "end": "2025-12-15 20:34:57.132753", "msg": "", "rc": 0, "start": "2025-12-15 20:34:57.129296", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002905", "end": "2025-12-15 20:35:19.318440", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.315535", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004024", "end": "2025-12-15 20:35:19.550277", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.546253", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028864", "end": "2025-12-15 20:35:19.341776", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.312912", "stderr": "", "stderr_lines": [], "stdout": "36.6°C", "stdout_lines": ["36.6°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004196", "end": "2025-12-15 20:35:19.875561", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.871365", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004002", "end": "2025-12-15 20:35:19.901783", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.897781", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005188", "end": "2025-12-15 20:35:19.925707", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.920519", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004980", "end": "2025-12-15 20:35:19.924801", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.919821", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005640", "end": "2025-12-15 20:35:19.935948", "msg": "", "rc": 0, "start": "2025-12-15 20:35:19.930308", "stderr": "", "stderr_lines": [], "stdout": "0.85", "stdout_lines": ["0.85"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004414", "end": "2025-12-15 20:34:55.736502", "msg": "", "rc": 0, "start": "2025-12-15 20:34:55.732088", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005196", "end": "2025-12-15 20:34:49.853668", "msg": "", "rc": 0, "start": "2025-12-15 20:34:49.848472", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010166", "end": "2025-12-15 20:35:20.685623", "msg": "", "rc": 0, "start": "2025-12-15 20:35:20.675457", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011104", "end": "2025-12-15 20:35:20.733559", "msg": "", "rc": 0, "start": "2025-12-15 20:35:20.722455", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005560", "end": "2025-12-15 20:35:20.866627", "msg": "", "rc": 0, "start": "2025-12-15 20:35:20.861067", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005124", "end": "2025-12-15 20:34:53.067464", "msg": "", "rc": 0, "start": "2025-12-15 20:34:53.062340", "stderr": "", "stderr_lines": [], "stdout": "0.92", "stdout_lines": ["0.92"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004356", "end": "2025-12-15 20:34:59.251114", "msg": "", "rc": 0, "start": "2025-12-15 20:34:59.246758", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006000", "end": "2025-12-15 17:35:21.299258", "msg": "", "rc": 0, "start": "2025-12-15 17:35:21.293258", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006603", "end": "2025-12-15 20:35:21.533952", "msg": "", "rc": 0, "start": "2025-12-15 20:35:21.527349", "stderr": "", "stderr_lines": [], "stdout": "1.28", "stdout_lines": ["1.28"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005333", "end": "2025-12-15 20:35:21.374106", "msg": "", "rc": 0, "start": "2025-12-15 20:35:21.368773", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024451", "end": "2025-12-15 20:35:21.261843", "msg": "", "rc": 0, "start": "2025-12-15 20:35:21.237392", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 1 day, 10:07, 1 user, load average: 0.07, 0.15, 0.20\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.06\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 20 days, 7:26, 1 user, load average: 0.42, 0.43, 0.38\nDisk Usage: 23%\nMemory Usage: 76.1%\nCPU Load: 0.54\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 20 days, 7:46, 1 user, load average: 0.45, 0.65, 0.76\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.57\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 20 days, 8:59, 1 user, load average: 0.83, 0.67, 0.65\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.85\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 20 days, 9:45, 1 user, load average: 0.02, 0.01, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:13 up 13 days, 10:01, 1 user, load average: 0.22, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.26\nCPU Temp: 36.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 192 days, 12:08, 1 user, load average: 0.29, 0.31, 0.28\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.32\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 192 days, 12:08, 1 user, load average: 0.10, 0.13, 0.15\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.16\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:47 up 9 days, 8:24, 0 user, load average: 0.21, 0.20, 0.19\nDisk Usage: 48%\nMemory Usage: 71.3%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:42 up 16 days, 4:36, 0 user, load average: 0.01, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.3%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:13 up 1 day, 10:06, 1 user, load average: 0.08, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:45 up 18 days, 23:29, 0 user, load average: 1.00, 0.53, 0.42\nDisk Usage: 28%\nMemory Usage: 25.9%\nCPU Load: 0.92\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:51 up 15 days, 9:50, 0 user, load average: 0.25, 0.31, 0.29\nDisk Usage: 75%\nMemory Usage: 57.8%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:35PM up 20 days, 7:25, 1 user, load averages: 0.26, 0.29, 0.25\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:13 up 1 day, 10:06, 1 user, load average: 0.33, 0.23, 0.17\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:14 up 7:10, 1 user, load average: 1.23, 1.24, 1.23\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-16T01:35:22.408042+00:00*
@@ -0,0 +1,58 @@
# ✅ Vérification de santé
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `bd926fe3c1444210a77c7592f70837c3` |
| **Nom** | Vérification de santé |
| **Cible** | `orangepi.pc.home` |
| **Statut** | completed |
| **Type** | Manuel |
| **Progression** | 100% |
| **Début** | 2025-12-15T16:12:05.182436+00:00 |
| **Fin** | 2025-12-15T16:12:29.301972+00:00 |
| **Durée** | 23.6s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.020031", "end": "2025-12-15 11:12:20.762022", "msg": "", "rc": 0, "start": "2025-12-15 11:12:20.741991", "stderr": "", "stderr_lines": [], "stdout": " 11:12:20 up 13 days, 38 min, 1 user, load average: 0.27, 0.10, 0.03", "stdout_lines": [" 11:12:20 up 13 days, 38 min, 1 user, load average: 0.27, 0.10, 0.03"]}
TASK [Get disk usage] **********************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025872", "end": "2025-12-15 11:12:22.606625", "msg": "", "rc": 0, "start": "2025-12-15 11:12:22.580753", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025841", "end": "2025-12-15 11:12:24.488734", "msg": "", "rc": 0, "start": "2025-12-15 11:12:24.462893", "stderr": "", "stderr_lines": [], "stdout": "18.3%", "stdout_lines": ["18.3%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028878", "end": "2025-12-15 11:12:26.407674", "msg": "", "rc": 0, "start": "2025-12-15 11:12:26.378796", "stderr": "", "stderr_lines": [], "stdout": "34.0°C", "stdout_lines": ["34.0°C"]}
TASK [Get CPU load] ************************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024449", "end": "2025-12-15 11:12:28.285386", "msg": "", "rc": 0, "start": "2025-12-15 11:12:28.260937", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
TASK [Display health status] ***************************************************
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:12:20 up 13 days, 38 min, 1 user, load average: 0.27, 0.10, 0.03\nDisk Usage: 21%\nMemory Usage: 18.3%\nCPU Load: 0.31\nCPU Temp: 34.0°C\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T16:12:29.375129+00:00*
@@ -0,0 +1,30 @@
# ✅ Ad-hoc: docker ps
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `adhoc_e42f495dbe19` |
| **Nom** | Ad-hoc: docker ps |
| **Cible** | `raspi.4gb.home` |
| **Statut** | completed |
| **Type** | Ad-hoc |
| **Progression** | 100% |
| **Début** | 2025-12-15T16:13:12.229201+00:00 |
| **Fin** | 2025-12-15T16:13:27.151598+00:00 |
| **Durée** | 14.34s |
## Sortie
```
raspi.4gb.home | CHANGED | rc=0 >>
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c54b087047f4 hurlenko/filebrowser "/filebrowser --root…" 9 months ago Up 6 months 0.0.0.0:32221->8080/tcp, :::32221->8080/tcp filebrowser-os
75b798021a41 louislam/uptime-kuma:latest "/usr/bin/dumb-init …" 9 months ago Up 6 months (healthy) 0.0.0.0:3001->3001/tcp, :::3001->3001/tcp uptime-kuma
385b70685c61 portainer/portainer-ce:latest "/portainer" 13 months ago Up 6 months 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp portainer
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T16:13:27.160846+00:00*
@@ -0,0 +1,58 @@
# ✅ Vérification de santé
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6cf9352fd0ff44e1abef35ab89fa6631` |
| **Nom** | Vérification de santé |
| **Cible** | `orangepi.pc.home` |
| **Statut** | completed |
| **Type** | Manuel |
| **Progression** | 100% |
| **Début** | 2025-12-15T19:43:30.153362+00:00 |
| **Fin** | 2025-12-15T19:43:50.967600+00:00 |
| **Durée** | 20.8s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019498", "end": "2025-12-15 14:43:43.938550", "msg": "", "rc": 0, "start": "2025-12-15 14:43:43.919052", "stderr": "", "stderr_lines": [], "stdout": " 14:43:43 up 13 days, 4:10, 1 user, load average: 0.08, 0.02, 0.01", "stdout_lines": [" 14:43:43 up 13 days, 4:10, 1 user, load average: 0.08, 0.02, 0.01"]}
TASK [Get disk usage] **********************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025219", "end": "2025-12-15 14:43:45.455641", "msg": "", "rc": 0, "start": "2025-12-15 14:43:45.430422", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025843", "end": "2025-12-15 14:43:46.954547", "msg": "", "rc": 0, "start": "2025-12-15 14:43:46.928704", "stderr": "", "stderr_lines": [], "stdout": "19.0%", "stdout_lines": ["19.0%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028706", "end": "2025-12-15 14:43:48.558700", "msg": "", "rc": 0, "start": "2025-12-15 14:43:48.529994", "stderr": "", "stderr_lines": [], "stdout": "35.4°C", "stdout_lines": ["35.4°C"]}
TASK [Get CPU load] ************************************************************
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024186", "end": "2025-12-15 14:43:50.265566", "msg": "", "rc": 0, "start": "2025-12-15 14:43:50.241380", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
TASK [Display health status] ***************************************************
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:43:43 up 13 days, 4:10, 1 user, load average: 0.08, 0.02, 0.01\nDisk Usage: 21%\nMemory Usage: 19.0%\nCPU Load: 0.15\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T19:43:50.990015+00:00*
@@ -0,0 +1,58 @@
# ✅ Vérification de santé
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `2c1a15e771f24bb299dffd56e5e21c2b` |
| **Nom** | Vérification de santé |
| **Cible** | `ali2v.xeon.home` |
| **Statut** | completed |
| **Type** | Manuel |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:02:34.463100+00:00 |
| **Fin** | 2025-12-15T23:02:46.542863+00:00 |
| **Durée** | 12.1s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [ali2v.xeon.home]
TASK [Get system uptime] *******************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002919", "end": "2025-12-15 18:02:43.349977", "msg": "", "rc": 0, "start": "2025-12-15 18:02:43.347058", "stderr": "", "stderr_lines": [], "stdout": " 18:02:43 up 1 day, 7:35, 1 user, load average: 0.09, 0.19, 0.17", "stdout_lines": [" 18:02:43 up 1 day, 7:35, 1 user, load average: 0.09, 0.19, 0.17"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004305", "end": "2025-12-15 18:02:43.959702", "msg": "", "rc": 0, "start": "2025-12-15 18:02:43.955397", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004127", "end": "2025-12-15 18:02:44.527464", "msg": "", "rc": 0, "start": "2025-12-15 18:02:44.523337", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004761", "end": "2025-12-15 18:02:45.124080", "msg": "", "rc": 0, "start": "2025-12-15 18:02:45.119319", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003948", "end": "2025-12-15 18:02:45.737938", "msg": "", "rc": 0, "start": "2025-12-15 18:02:45.733990", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:02:43 up 1 day, 7:35, 1 user, load average: 0.09, 0.19, 0.17\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.09\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:02:46.601408+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6924c0fb95a54969bbe4e93d7b24a646` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:10:00.001753+00:00 |
| **Fin** | 2025-12-15T23:10:21.379130+00:00 |
| **Durée** | 21.4s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003116", "end": "2025-12-15 18:10:11.132858", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.129742", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 20 days, 5:01, 1 user, load average: 0.21, 0.18, 0.11", "stdout_lines": [" 18:10:11 up 20 days, 5:01, 1 user, load average: 0.21, 0.18, 0.11"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003678", "end": "2025-12-15 18:10:11.146485", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.142807", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 20 days, 7:20, 1 user, load average: 0.07, 0.03, 0.00", "stdout_lines": [" 18:10:11 up 20 days, 7:20, 1 user, load average: 0.07, 0.03, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003013", "end": "2025-12-15 18:10:11.171913", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.168900", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 1 day, 7:42, 1 user, load average: 0.51, 0.31, 0.22", "stdout_lines": [" 18:10:11 up 1 day, 7:42, 1 user, load average: 0.51, 0.31, 0.22"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003745", "end": "2025-12-15 18:10:11.187907", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.184162", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 20 days, 6:34, 1 user, load average: 0.46, 0.58, 0.61", "stdout_lines": [" 18:10:11 up 20 days, 6:34, 1 user, load average: 0.46, 0.58, 0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003083", "end": "2025-12-15 18:09:47.094870", "msg": "", "rc": 0, "start": "2025-12-15 18:09:47.091787", "stderr": "", "stderr_lines": [], "stdout": " 18:09:47 up 9 days, 5:59, 0 user, load average: 0.13, 0.11, 0.09", "stdout_lines": [" 18:09:47 up 9 days, 5:59, 0 user, load average: 0.13, 0.11, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008471", "end": "2025-12-15 18:10:11.826227", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.817756", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 192 days, 9:43, 1 user, load average: 0.23, 0.14, 0.12", "stdout_lines": [" 18:10:11 up 192 days, 9:43, 1 user, load average: 0.23, 0.14, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009316", "end": "2025-12-15 18:10:11.855896", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.846580", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 192 days, 9:43, 1 user, load average: 0.35, 0.24, 0.19", "stdout_lines": [" 18:10:11 up 192 days, 9:43, 1 user, load average: 0.35, 0.24, 0.19"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003706", "end": "2025-12-15 18:10:12.162513", "msg": "", "rc": 0, "start": "2025-12-15 18:10:11.158807", "stderr": "", "stderr_lines": [], "stdout": " 18:10:11 up 20 days, 5:21, 1 user, load average: 0.91, 0.74, 0.62", "stdout_lines": [" 18:10:11 up 20 days, 5:21, 1 user, load average: 0.91, 0.74, 0.62"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003772", "end": "2025-12-15 18:09:41.713826", "msg": "", "rc": 0, "start": "2025-12-15 18:09:41.710054", "stderr": "", "stderr_lines": [], "stdout": " 18:09:41 up 16 days, 2:11, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 18:09:41 up 16 days, 2:11, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004529", "end": "2025-12-15 18:10:12.325397", "msg": "", "rc": 0, "start": "2025-12-15 18:10:12.320868", "stderr": "", "stderr_lines": [], "stdout": " 18:10:12 up 1 day, 7:41, 1 user, load average: 0.01, 0.05, 0.02", "stdout_lines": [" 18:10:12 up 1 day, 7:41, 1 user, load average: 0.01, 0.05, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003524", "end": "2025-12-15 18:09:44.624419", "msg": "", "rc": 0, "start": "2025-12-15 18:09:44.620895", "stderr": "", "stderr_lines": [], "stdout": " 18:09:44 up 18 days, 21:04, 0 user, load average: 0.37, 0.46, 0.50", "stdout_lines": [" 18:09:44 up 18 days, 21:04, 0 user, load average: 0.37, 0.46, 0.50"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004357", "end": "2025-12-15 15:10:12.627654", "msg": "", "rc": 0, "start": "2025-12-15 15:10:12.623297", "stderr": "", "stderr_lines": [], "stdout": " 3:10PM up 20 days, 4:59, 1 user, load averages: 0.47, 0.31, 0.26", "stdout_lines": [" 3:10PM up 20 days, 4:59, 1 user, load averages: 0.47, 0.31, 0.26"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019409", "end": "2025-12-15 18:10:12.520122", "msg": "", "rc": 0, "start": "2025-12-15 18:10:12.500713", "stderr": "", "stderr_lines": [], "stdout": " 18:10:12 up 13 days, 7:36, 1 user, load average: 0.14, 0.11, 0.09", "stdout_lines": [" 18:10:12 up 13 days, 7:36, 1 user, load average: 0.14, 0.11, 0.09"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002971", "end": "2025-12-15 18:09:50.721586", "msg": "", "rc": 0, "start": "2025-12-15 18:09:50.718615", "stderr": "", "stderr_lines": [], "stdout": " 18:09:50 up 15 days, 7:25, 0 user, load average: 0.18, 0.14, 0.16", "stdout_lines": [" 18:09:50 up 15 days, 7:25, 0 user, load average: 0.18, 0.14, 0.16"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003746", "end": "2025-12-15 18:10:12.745678", "msg": "", "rc": 0, "start": "2025-12-15 18:10:12.741932", "stderr": "", "stderr_lines": [], "stdout": " 18:10:12 up 1 day, 7:41, 1 user, load average: 0.07, 0.04, 0.04", "stdout_lines": [" 18:10:12 up 1 day, 7:41, 1 user, load average: 0.07, 0.04, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004883", "end": "2025-12-15 18:10:13.019486", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.014603", "stderr": "", "stderr_lines": [], "stdout": " 18:10:13 up 4:45, 1 user, load average: 1.31, 1.24, 1.18", "stdout_lines": [" 18:10:13 up 4:45, 1 user, load average: 1.31, 1.24, 1.18"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004392", "end": "2025-12-15 18:10:13.226905", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.222513", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004315", "end": "2025-12-15 18:10:13.235065", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.230750", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005113", "end": "2025-12-15 18:10:13.272867", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.267754", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006263", "end": "2025-12-15 18:10:13.298707", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.292444", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005196", "end": "2025-12-15 18:10:13.311010", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.305814", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005339", "end": "2025-12-15 18:09:49.222392", "msg": "", "rc": 0, "start": "2025-12-15 18:09:49.217053", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005808", "end": "2025-12-15 18:09:43.396099", "msg": "", "rc": 0, "start": "2025-12-15 18:09:43.390291", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010630", "end": "2025-12-15 18:10:13.986373", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.975743", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011892", "end": "2025-12-15 18:10:14.010304", "msg": "", "rc": 0, "start": "2025-12-15 18:10:13.998412", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005649", "end": "2025-12-15 18:10:14.246242", "msg": "", "rc": 0, "start": "2025-12-15 18:10:14.240593", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005955", "end": "2025-12-15 18:09:46.594294", "msg": "", "rc": 0, "start": "2025-12-15 18:09:46.588339", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005426", "end": "2025-12-15 15:10:14.471293", "msg": "", "rc": 0, "start": "2025-12-15 15:10:14.465867", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004827", "end": "2025-12-15 18:09:52.571334", "msg": "", "rc": 0, "start": "2025-12-15 18:09:52.566507", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005431", "end": "2025-12-15 18:10:14.659106", "msg": "", "rc": 0, "start": "2025-12-15 18:10:14.653675", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025446", "end": "2025-12-15 18:10:14.617325", "msg": "", "rc": 0, "start": "2025-12-15 18:10:14.591879", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007441", "end": "2025-12-15 18:10:14.930148", "msg": "", "rc": 0, "start": "2025-12-15 18:10:14.922707", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004394", "end": "2025-12-15 18:10:15.161930", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.157536", "stderr": "", "stderr_lines": [], "stdout": "81.2%", "stdout_lines": ["81.2%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004138", "end": "2025-12-15 18:10:15.188290", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.184152", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004705", "end": "2025-12-15 18:10:15.208437", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.203732", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005114", "end": "2025-12-15 18:10:15.224309", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.219195", "stderr": "", "stderr_lines": [], "stdout": "8.8%", "stdout_lines": ["8.8%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005695", "end": "2025-12-15 18:10:15.239909", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.234214", "stderr": "", "stderr_lines": [], "stdout": "59.1%", "stdout_lines": ["59.1%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004201", "end": "2025-12-15 18:09:51.131397", "msg": "", "rc": 0, "start": "2025-12-15 18:09:51.127196", "stderr": "", "stderr_lines": [], "stdout": "71.2%", "stdout_lines": ["71.2%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004199", "end": "2025-12-15 18:09:45.293360", "msg": "", "rc": 0, "start": "2025-12-15 18:09:45.289161", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011126", "end": "2025-12-15 18:10:15.854576", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.843450", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011941", "end": "2025-12-15 18:10:15.888936", "msg": "", "rc": 0, "start": "2025-12-15 18:10:15.876995", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005773", "end": "2025-12-15 18:10:16.182425", "msg": "", "rc": 0, "start": "2025-12-15 18:10:16.176652", "stderr": "", "stderr_lines": [], "stdout": "34.2%", "stdout_lines": ["34.2%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004696", "end": "2025-12-15 18:09:48.470065", "msg": "", "rc": 0, "start": "2025-12-15 18:09:48.465369", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005362", "end": "2025-12-15 15:10:16.341994", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:10:16.336632", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004277", "end": "2025-12-15 18:09:54.405615", "msg": "", "rc": 0, "start": "2025-12-15 18:09:54.401338", "stderr": "", "stderr_lines": [], "stdout": "56.3%", "stdout_lines": ["56.3%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005487", "end": "2025-12-15 18:10:16.609620", "msg": "", "rc": 0, "start": "2025-12-15 18:10:16.604133", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007289", "end": "2025-12-15 18:10:16.803920", "msg": "", "rc": 0, "start": "2025-12-15 18:10:16.796631", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025510", "end": "2025-12-15 18:10:16.546343", "msg": "", "rc": 0, "start": "2025-12-15 18:10:16.520833", "stderr": "", "stderr_lines": [], "stdout": "19.4%", "stdout_lines": ["19.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004991", "end": "2025-12-15 18:10:17.067644", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.062653", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004895", "end": "2025-12-15 18:10:17.091921", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.087026", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005813", "end": "2025-12-15 18:10:17.113008", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.107195", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003224", "end": "2025-12-15 18:10:17.116752", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.113528", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006013", "end": "2025-12-15 18:10:17.137695", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.131682", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002885", "end": "2025-12-15 18:09:53.048953", "msg": "", "rc": 0, "start": "2025-12-15 18:09:53.046068", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003071", "end": "2025-12-15 18:09:47.171127", "msg": "", "rc": 0, "start": "2025-12-15 18:09:47.168056", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011810", "end": "2025-12-15 18:10:17.757070", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.745260", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013002", "end": "2025-12-15 18:10:17.802342", "msg": "", "rc": 0, "start": "2025-12-15 18:10:17.789340", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003165", "end": "2025-12-15 18:10:18.082600", "msg": "", "rc": 0, "start": "2025-12-15 18:10:18.079435", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003128", "end": "2025-12-15 18:09:50.349030", "msg": "", "rc": 0, "start": "2025-12-15 18:09:50.345902", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004054", "end": "2025-12-15 15:10:18.258393", "msg": "", "rc": 0, "start": "2025-12-15 15:10:18.254339", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002502", "end": "2025-12-15 18:09:56.326619", "msg": "", "rc": 0, "start": "2025-12-15 18:09:56.324117", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002886", "end": "2025-12-15 18:10:18.509748", "msg": "", "rc": 0, "start": "2025-12-15 18:10:18.506862", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006541", "end": "2025-12-15 18:10:18.673732", "msg": "", "rc": 0, "start": "2025-12-15 18:10:18.667191", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028304", "end": "2025-12-15 18:10:18.458755", "msg": "", "rc": 0, "start": "2025-12-15 18:10:18.430451", "stderr": "", "stderr_lines": [], "stdout": "35.1°C", "stdout_lines": ["35.1°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004246", "end": "2025-12-15 18:10:18.963173", "msg": "", "rc": 0, "start": "2025-12-15 18:10:18.958927", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004012", "end": "2025-12-15 18:10:18.993761", "msg": "", "rc": 0, "start": "2025-12-15 18:10:18.989749", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004921", "end": "2025-12-15 18:10:19.010479", "msg": "", "rc": 0, "start": "2025-12-15 18:10:19.005558", "stderr": "", "stderr_lines": [], "stdout": "1.15", "stdout_lines": ["1.15"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005229", "end": "2025-12-15 18:10:19.018488", "msg": "", "rc": 0, "start": "2025-12-15 18:10:19.013259", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005267", "end": "2025-12-15 18:10:19.034893", "msg": "", "rc": 0, "start": "2025-12-15 18:10:19.029626", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004405", "end": "2025-12-15 18:09:54.941229", "msg": "", "rc": 0, "start": "2025-12-15 18:09:54.936824", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005059", "end": "2025-12-15 18:09:49.065278", "msg": "", "rc": 0, "start": "2025-12-15 18:09:49.060219", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010205", "end": "2025-12-15 18:10:19.747222", "msg": "", "rc": 0, "start": "2025-12-15 18:10:19.737017", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011244", "end": "2025-12-15 18:10:19.814063", "msg": "", "rc": 0, "start": "2025-12-15 18:10:19.802819", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005545", "end": "2025-12-15 18:10:19.970955", "msg": "", "rc": 0, "start": "2025-12-15 18:10:19.965410", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005350", "end": "2025-12-15 18:09:52.229020", "msg": "", "rc": 0, "start": "2025-12-15 18:09:52.223670", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004217", "end": "2025-12-15 18:09:58.315706", "msg": "", "rc": 0, "start": "2025-12-15 18:09:58.311489", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005944", "end": "2025-12-15 15:10:20.270997", "msg": "", "rc": 0, "start": "2025-12-15 15:10:20.265053", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007726", "end": "2025-12-15 18:10:20.531033", "msg": "", "rc": 0, "start": "2025-12-15 18:10:20.523307", "stderr": "", "stderr_lines": [], "stdout": "1.34", "stdout_lines": ["1.34"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005329", "end": "2025-12-15 18:10:20.386107", "msg": "", "rc": 0, "start": "2025-12-15 18:10:20.380778", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024417", "end": "2025-12-15 18:10:20.339386", "msg": "", "rc": 0, "start": "2025-12-15 18:10:20.314969", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 1 day, 7:42, 1 user, load average: 0.51, 0.31, 0.22\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.52\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 20 days, 5:01, 1 user, load average: 0.21, 0.18, 0.11\nDisk Usage: 23%\nMemory Usage: 81.2%\nCPU Load: 0.27\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 20 days, 5:21, 1 user, load average: 0.91, 0.74, 0.62\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 1.15\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 20 days, 6:34, 1 user, load average: 0.46, 0.58, 0.61\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.61\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 20 days, 7:20, 1 user, load average: 0.07, 0.03, 0.00\nDisk Usage: 9%\nMemory Usage: 8.8%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:12 up 13 days, 7:36, 1 user, load average: 0.14, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.20\nCPU Temp: 35.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 192 days, 9:43, 1 user, load average: 0.35, 0.24, 0.19\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.38\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:11 up 192 days, 9:43, 1 user, load average: 0.23, 0.14, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.27\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:09:47 up 9 days, 5:59, 0 user, load average: 0.13, 0.11, 0.09\nDisk Usage: 48%\nMemory Usage: 71.2%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:09:41 up 16 days, 2:11, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:12 up 1 day, 7:41, 1 user, load average: 0.01, 0.05, 0.02\nDisk Usage: 1%\nMemory Usage: 34.2%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:09:44 up 18 days, 21:04, 0 user, load average: 0.37, 0.46, 0.50\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:09:50 up 15 days, 7:25, 0 user, load average: 0.18, 0.14, 0.16\nDisk Usage: 75%\nMemory Usage: 56.3%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:10PM up 20 days, 4:59, 1 user, load averages: 0.47, 0.31, 0.26\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:12 up 1 day, 7:41, 1 user, load average: 0.07, 0.04, 0.04\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:10:13 up 4:45, 1 user, load average: 1.31, 1.24, 1.18\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:10:21.432786+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `f1de203da4e047149133e018252b0ca7` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:15:00.001325+00:00 |
| **Fin** | 2025-12-15T23:15:21.318690+00:00 |
| **Durée** | 21.3s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003089", "end": "2025-12-15 18:15:11.088075", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.084986", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 20 days, 5:06, 1 user, load average: 0.27, 0.24, 0.16", "stdout_lines": [" 18:15:11 up 20 days, 5:06, 1 user, load average: 0.27, 0.24, 0.16"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003509", "end": "2025-12-15 18:15:11.099931", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.096422", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 20 days, 7:25, 1 user, load average: 0.15, 0.04, 0.01", "stdout_lines": [" 18:15:11 up 20 days, 7:25, 1 user, load average: 0.15, 0.04, 0.01"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003573", "end": "2025-12-15 18:15:11.094686", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.091113", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 20 days, 5:26, 1 user, load average: 0.46, 0.55, 0.57", "stdout_lines": [" 18:15:11 up 20 days, 5:26, 1 user, load average: 0.46, 0.55, 0.57"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003019", "end": "2025-12-15 18:15:11.131922", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.128903", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 1 day, 7:47, 1 user, load average: 0.31, 0.29, 0.23", "stdout_lines": [" 18:15:11 up 1 day, 7:47, 1 user, load average: 0.31, 0.29, 0.23"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002842", "end": "2025-12-15 18:14:47.023245", "msg": "", "rc": 0, "start": "2025-12-15 18:14:47.020403", "stderr": "", "stderr_lines": [], "stdout": " 18:14:47 up 9 days, 6:04, 0 user, load average: 0.36, 0.20, 0.12", "stdout_lines": [" 18:14:47 up 9 days, 6:04, 0 user, load average: 0.36, 0.20, 0.12"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008608", "end": "2025-12-15 18:15:11.766423", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.757815", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 192 days, 9:48, 1 user, load average: 0.52, 0.30, 0.18", "stdout_lines": [" 18:15:11 up 192 days, 9:48, 1 user, load average: 0.52, 0.30, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009329", "end": "2025-12-15 18:15:11.823790", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.814461", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 192 days, 9:48, 1 user, load average: 0.31, 0.23, 0.19", "stdout_lines": [" 18:15:11 up 192 days, 9:48, 1 user, load average: 0.31, 0.23, 0.19"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005096", "end": "2025-12-15 18:15:12.125829", "msg": "", "rc": 0, "start": "2025-12-15 18:15:11.120733", "stderr": "", "stderr_lines": [], "stdout": " 18:15:11 up 20 days, 6:39, 1 user, load average: 0.50, 0.61, 0.62", "stdout_lines": [" 18:15:11 up 20 days, 6:39, 1 user, load average: 0.50, 0.61, 0.62"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004139", "end": "2025-12-15 18:14:41.644394", "msg": "", "rc": 0, "start": "2025-12-15 18:14:41.640255", "stderr": "", "stderr_lines": [], "stdout": " 18:14:41 up 16 days, 2:16, 0 user, load average: 0.03, 0.02, 0.00", "stdout_lines": [" 18:14:41 up 16 days, 2:16, 0 user, load average: 0.03, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004642", "end": "2025-12-15 18:15:12.263785", "msg": "", "rc": 0, "start": "2025-12-15 18:15:12.259143", "stderr": "", "stderr_lines": [], "stdout": " 18:15:12 up 1 day, 7:46, 1 user, load average: 0.06, 0.08, 0.03", "stdout_lines": [" 18:15:12 up 1 day, 7:46, 1 user, load average: 0.06, 0.08, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003315", "end": "2025-12-15 18:14:44.532833", "msg": "", "rc": 0, "start": "2025-12-15 18:14:44.529518", "stderr": "", "stderr_lines": [], "stdout": " 18:14:44 up 18 days, 21:09, 0 user, load average: 0.35, 0.48, 0.50", "stdout_lines": [" 18:14:44 up 18 days, 21:09, 0 user, load average: 0.35, 0.48, 0.50"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004527", "end": "2025-12-15 15:15:12.563032", "msg": "", "rc": 0, "start": "2025-12-15 15:15:12.558505", "stderr": "", "stderr_lines": [], "stdout": " 3:15PM up 20 days, 5:04, 1 user, load averages: 0.23, 0.31, 0.27", "stdout_lines": [" 3:15PM up 20 days, 5:04, 1 user, load averages: 0.23, 0.31, 0.27"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003959", "end": "2025-12-15 18:14:50.639414", "msg": "", "rc": 0, "start": "2025-12-15 18:14:50.635455", "stderr": "", "stderr_lines": [], "stdout": " 18:14:50 up 15 days, 7:30, 0 user, load average: 0.15, 0.18, 0.18", "stdout_lines": [" 18:14:50 up 15 days, 7:30, 0 user, load average: 0.15, 0.18, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019117", "end": "2025-12-15 18:15:12.473118", "msg": "", "rc": 0, "start": "2025-12-15 18:15:12.454001", "stderr": "", "stderr_lines": [], "stdout": " 18:15:12 up 13 days, 7:41, 1 user, load average: 0.21, 0.10, 0.09", "stdout_lines": [" 18:15:12 up 13 days, 7:41, 1 user, load average: 0.21, 0.10, 0.09"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003725", "end": "2025-12-15 18:15:12.689348", "msg": "", "rc": 0, "start": "2025-12-15 18:15:12.685623", "stderr": "", "stderr_lines": [], "stdout": " 18:15:12 up 1 day, 7:46, 1 user, load average: 0.00, 0.02, 0.02", "stdout_lines": [" 18:15:12 up 1 day, 7:46, 1 user, load average: 0.00, 0.02, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004980", "end": "2025-12-15 18:15:12.882020", "msg": "", "rc": 0, "start": "2025-12-15 18:15:12.877040", "stderr": "", "stderr_lines": [], "stdout": " 18:15:12 up 4:50, 1 user, load average: 1.05, 1.14, 1.16", "stdout_lines": [" 18:15:12 up 4:50, 1 user, load average: 1.05, 1.14, 1.16"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004357", "end": "2025-12-15 18:15:13.136950", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.132593", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004123", "end": "2025-12-15 18:15:13.153221", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.149098", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004662", "end": "2025-12-15 18:15:13.157629", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.152967", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004515", "end": "2025-12-15 18:15:13.177301", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.172786", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005825", "end": "2025-12-15 18:15:13.215693", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.209868", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004731", "end": "2025-12-15 18:14:49.066435", "msg": "", "rc": 0, "start": "2025-12-15 18:14:49.061704", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005863", "end": "2025-12-15 18:14:43.278452", "msg": "", "rc": 0, "start": "2025-12-15 18:14:43.272589", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010591", "end": "2025-12-15 18:15:13.860474", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.849883", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011578", "end": "2025-12-15 18:15:13.896627", "msg": "", "rc": 0, "start": "2025-12-15 18:15:13.885049", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005787", "end": "2025-12-15 18:15:14.092098", "msg": "", "rc": 0, "start": "2025-12-15 18:15:14.086311", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004574", "end": "2025-12-15 18:14:52.407131", "msg": "", "rc": 0, "start": "2025-12-15 18:14:52.402557", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005422", "end": "2025-12-15 18:14:46.484644", "msg": "", "rc": 0, "start": "2025-12-15 18:14:46.479222", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005636", "end": "2025-12-15 15:15:14.364759", "msg": "", "rc": 0, "start": "2025-12-15 15:15:14.359123", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005407", "end": "2025-12-15 18:15:14.523602", "msg": "", "rc": 0, "start": "2025-12-15 18:15:14.518195", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007203", "end": "2025-12-15 18:15:14.794042", "msg": "", "rc": 0, "start": "2025-12-15 18:15:14.786839", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025177", "end": "2025-12-15 18:15:14.517598", "msg": "", "rc": 0, "start": "2025-12-15 18:15:14.492421", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004398", "end": "2025-12-15 18:15:15.047133", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.042735", "stderr": "", "stderr_lines": [], "stdout": "77.4%", "stdout_lines": ["77.4%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004115", "end": "2025-12-15 18:15:15.053115", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.049000", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004817", "end": "2025-12-15 18:15:15.060112", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.055295", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.0%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004852", "end": "2025-12-15 18:15:15.093419", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.088567", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005982", "end": "2025-12-15 18:15:15.108467", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.102485", "stderr": "", "stderr_lines": [], "stdout": "59.1%", "stdout_lines": ["59.1%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003921", "end": "2025-12-15 18:14:50.982627", "msg": "", "rc": 0, "start": "2025-12-15 18:14:50.978706", "stderr": "", "stderr_lines": [], "stdout": "71.5%", "stdout_lines": ["71.5%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004672", "end": "2025-12-15 18:14:45.158900", "msg": "", "rc": 0, "start": "2025-12-15 18:14:45.154228", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010864", "end": "2025-12-15 18:15:15.722121", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.711257", "stderr": "", "stderr_lines": [], "stdout": "6.9%", "stdout_lines": ["6.9%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012186", "end": "2025-12-15 18:15:15.762788", "msg": "", "rc": 0, "start": "2025-12-15 18:15:15.750602", "stderr": "", "stderr_lines": [], "stdout": "12.2%", "stdout_lines": ["12.2%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005841", "end": "2025-12-15 18:15:16.012701", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.006860", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004542", "end": "2025-12-15 18:14:54.262150", "msg": "", "rc": 0, "start": "2025-12-15 18:14:54.257608", "stderr": "", "stderr_lines": [], "stdout": "55.2%", "stdout_lines": ["55.2%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004293", "end": "2025-12-15 18:14:48.348154", "msg": "", "rc": 0, "start": "2025-12-15 18:14:48.343861", "stderr": "", "stderr_lines": [], "stdout": "25.2%", "stdout_lines": ["25.2%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005611", "end": "2025-12-15 15:15:16.216706", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:15:16.211095", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005546", "end": "2025-12-15 18:15:16.420370", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.414824", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.008336", "end": "2025-12-15 18:15:16.681530", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.673194", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026201", "end": "2025-12-15 18:15:16.429743", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.403542", "stderr": "", "stderr_lines": [], "stdout": "19.3%", "stdout_lines": ["19.3%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005277", "end": "2025-12-15 18:15:16.941434", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.936157", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005710", "end": "2025-12-15 18:15:16.960178", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.954468", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004881", "end": "2025-12-15 18:15:16.971067", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.966186", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003297", "end": "2025-12-15 18:15:16.986867", "msg": "", "rc": 0, "start": "2025-12-15 18:15:16.983570", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006681", "end": "2025-12-15 18:15:17.007279", "msg": "", "rc": 0, "start": "2025-12-15 18:15:17.000598", "stderr": "", "stderr_lines": [], "stdout": "52.0°C", "stdout_lines": ["52.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002751", "end": "2025-12-15 18:14:52.889540", "msg": "", "rc": 0, "start": "2025-12-15 18:14:52.886789", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003021", "end": "2025-12-15 18:14:47.041805", "msg": "", "rc": 0, "start": "2025-12-15 18:14:47.038784", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011869", "end": "2025-12-15 18:15:17.633578", "msg": "", "rc": 0, "start": "2025-12-15 18:15:17.621709", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.015096", "end": "2025-12-15 18:15:17.681662", "msg": "", "rc": 0, "start": "2025-12-15 18:15:17.666566", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003054", "end": "2025-12-15 18:15:17.914200", "msg": "", "rc": 0, "start": "2025-12-15 18:15:17.911146", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003154", "end": "2025-12-15 18:14:50.223138", "msg": "", "rc": 0, "start": "2025-12-15 18:14:50.219984", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003220", "end": "2025-12-15 18:14:56.186234", "msg": "", "rc": 0, "start": "2025-12-15 18:14:56.183014", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004028", "end": "2025-12-15 15:15:18.153780", "msg": "", "rc": 0, "start": "2025-12-15 15:15:18.149752", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003005", "end": "2025-12-15 18:15:18.342627", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.339622", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004038", "end": "2025-12-15 18:15:18.557012", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.552974", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.029008", "end": "2025-12-15 18:15:18.336899", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.307891", "stderr": "", "stderr_lines": [], "stdout": "35.4°C", "stdout_lines": ["35.4°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004267", "end": "2025-12-15 18:15:18.860315", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.856048", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003967", "end": "2025-12-15 18:15:18.882391", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.878424", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004832", "end": "2025-12-15 18:15:18.915076", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.910244", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004718", "end": "2025-12-15 18:15:18.919460", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.914742", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005826", "end": "2025-12-15 18:15:18.934905", "msg": "", "rc": 0, "start": "2025-12-15 18:15:18.929079", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005497", "end": "2025-12-15 18:14:54.806823", "msg": "", "rc": 0, "start": "2025-12-15 18:14:54.801326", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005205", "end": "2025-12-15 18:14:48.960453", "msg": "", "rc": 0, "start": "2025-12-15 18:14:48.955248", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011242", "end": "2025-12-15 18:15:19.650449", "msg": "", "rc": 0, "start": "2025-12-15 18:15:19.639207", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.012151", "end": "2025-12-15 18:15:19.664712", "msg": "", "rc": 0, "start": "2025-12-15 18:15:19.652561", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005564", "end": "2025-12-15 18:15:19.839317", "msg": "", "rc": 0, "start": "2025-12-15 18:15:19.833753", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004903", "end": "2025-12-15 18:14:52.123928", "msg": "", "rc": 0, "start": "2025-12-15 18:14:52.119025", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006014", "end": "2025-12-15 15:15:20.132676", "msg": "", "rc": 0, "start": "2025-12-15 15:15:20.126662", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004494", "end": "2025-12-15 18:14:58.221710", "msg": "", "rc": 0, "start": "2025-12-15 18:14:58.217216", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005305", "end": "2025-12-15 18:15:20.250110", "msg": "", "rc": 0, "start": "2025-12-15 18:15:20.244805", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.008389", "end": "2025-12-15 18:15:20.495118", "msg": "", "rc": 0, "start": "2025-12-15 18:15:20.486729", "stderr": "", "stderr_lines": [], "stdout": "1.04", "stdout_lines": ["1.04"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024237", "end": "2025-12-15 18:15:20.242208", "msg": "", "rc": 0, "start": "2025-12-15 18:15:20.217971", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 1 day, 7:47, 1 user, load average: 0.31, 0.29, 0.23\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.26\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 20 days, 5:06, 1 user, load average: 0.27, 0.24, 0.16\nDisk Usage: 23%\nMemory Usage: 77.4%\nCPU Load: 0.24\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 20 days, 5:26, 1 user, load average: 0.46, 0.55, 0.57\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.46\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 20 days, 6:39, 1 user, load average: 0.50, 0.61, 0.62\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.58\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 20 days, 7:25, 1 user, load average: 0.15, 0.04, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:12 up 13 days, 7:41, 1 user, load average: 0.21, 0.10, 0.09\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.33\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 192 days, 9:48, 1 user, load average: 0.31, 0.23, 0.19\nDisk Usage: 6%\nMemory Usage: 12.2%\nCPU Load: 0.34\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:11 up 192 days, 9:48, 1 user, load average: 0.52, 0.30, 0.18\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.52\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:14:47 up 9 days, 6:04, 0 user, load average: 0.36, 0.20, 0.12\nDisk Usage: 48%\nMemory Usage: 71.5%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:14:41 up 16 days, 2:16, 0 user, load average: 0.03, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:12 up 1 day, 7:46, 1 user, load average: 0.06, 0.08, 0.03\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:14:44 up 18 days, 21:09, 0 user, load average: 0.35, 0.48, 0.50\nDisk Usage: 28%\nMemory Usage: 25.2%\nCPU Load: 0.40\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:14:50 up 15 days, 7:30, 0 user, load average: 0.15, 0.18, 0.18\nDisk Usage: 75%\nMemory Usage: 55.2%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:15PM up 20 days, 5:04, 1 user, load averages: 0.23, 0.31, 0.27\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:12 up 1 day, 7:46, 1 user, load average: 0.00, 0.02, 0.02\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:15:12 up 4:50, 1 user, load average: 1.05, 1.14, 1.16\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:15:21.350948+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `3cfcfc139fde4261987281de71bb6e1c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:20:00.001309+00:00 |
| **Fin** | 2025-12-15T23:20:22.060275+00:00 |
| **Durée** | 22.1s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003180", "end": "2025-12-15 18:20:11.856280", "msg": "", "rc": 0, "start": "2025-12-15 18:20:11.853100", "stderr": "", "stderr_lines": [], "stdout": " 18:20:11 up 20 days, 5:11, 1 user, load average: 0.18, 0.17, 0.15", "stdout_lines": [" 18:20:11 up 20 days, 5:11, 1 user, load average: 0.18, 0.17, 0.15"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003725", "end": "2025-12-15 18:20:11.865696", "msg": "", "rc": 0, "start": "2025-12-15 18:20:11.861971", "stderr": "", "stderr_lines": [], "stdout": " 18:20:11 up 20 days, 5:31, 1 user, load average: 0.34, 0.50, 0.55", "stdout_lines": [" 18:20:11 up 20 days, 5:31, 1 user, load average: 0.34, 0.50, 0.55"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003742", "end": "2025-12-15 18:20:11.875664", "msg": "", "rc": 0, "start": "2025-12-15 18:20:11.871922", "stderr": "", "stderr_lines": [], "stdout": " 18:20:11 up 20 days, 7:30, 1 user, load average: 0.39, 0.11, 0.03", "stdout_lines": [" 18:20:11 up 20 days, 7:30, 1 user, load average: 0.39, 0.11, 0.03"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002844", "end": "2025-12-15 18:20:11.899994", "msg": "", "rc": 0, "start": "2025-12-15 18:20:11.897150", "stderr": "", "stderr_lines": [], "stdout": " 18:20:11 up 1 day, 7:52, 1 user, load average: 0.57, 0.39, 0.28", "stdout_lines": [" 18:20:11 up 1 day, 7:52, 1 user, load average: 0.57, 0.39, 0.28"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004206", "end": "2025-12-15 18:20:11.900680", "msg": "", "rc": 0, "start": "2025-12-15 18:20:11.896474", "stderr": "", "stderr_lines": [], "stdout": " 18:20:11 up 20 days, 6:44, 1 user, load average: 0.53, 0.61, 0.62", "stdout_lines": [" 18:20:11 up 20 days, 6:44, 1 user, load average: 0.53, 0.61, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003047", "end": "2025-12-15 18:19:47.777735", "msg": "", "rc": 0, "start": "2025-12-15 18:19:47.774688", "stderr": "", "stderr_lines": [], "stdout": " 18:19:47 up 9 days, 6:09, 0 user, load average: 0.34, 0.24, 0.14", "stdout_lines": [" 18:19:47 up 9 days, 6:09, 0 user, load average: 0.34, 0.24, 0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003657", "end": "2025-12-15 18:19:41.931099", "msg": "", "rc": 0, "start": "2025-12-15 18:19:41.927442", "stderr": "", "stderr_lines": [], "stdout": " 18:19:41 up 16 days, 2:21, 0 user, load average: 0.03, 0.02, 0.00", "stdout_lines": [" 18:19:41 up 16 days, 2:21, 0 user, load average: 0.03, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008632", "end": "2025-12-15 18:20:12.547515", "msg": "", "rc": 0, "start": "2025-12-15 18:20:12.538883", "stderr": "", "stderr_lines": [], "stdout": " 18:20:12 up 192 days, 9:53, 1 user, load average: 0.50, 0.30, 0.20", "stdout_lines": [" 18:20:12 up 192 days, 9:53, 1 user, load average: 0.50, 0.30, 0.20"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009367", "end": "2025-12-15 18:20:12.587466", "msg": "", "rc": 0, "start": "2025-12-15 18:20:12.578099", "stderr": "", "stderr_lines": [], "stdout": " 18:20:12 up 192 days, 9:53, 1 user, load average: 0.45, 0.28, 0.21", "stdout_lines": [" 18:20:12 up 192 days, 9:53, 1 user, load average: 0.45, 0.28, 0.21"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004602", "end": "2025-12-15 18:20:12.809929", "msg": "", "rc": 0, "start": "2025-12-15 18:20:12.805327", "stderr": "", "stderr_lines": [], "stdout": " 18:20:12 up 1 day, 7:51, 1 user, load average: 0.08, 0.04, 0.01", "stdout_lines": [" 18:20:12 up 1 day, 7:51, 1 user, load average: 0.08, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003330", "end": "2025-12-15 18:19:45.081710", "msg": "", "rc": 0, "start": "2025-12-15 18:19:45.078380", "stderr": "", "stderr_lines": [], "stdout": " 18:19:45 up 18 days, 21:14, 0 user, load average: 0.46, 0.43, 0.46", "stdout_lines": [" 18:19:45 up 18 days, 21:14, 0 user, load average: 0.46, 0.43, 0.46"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003091", "end": "2025-12-15 18:19:51.095987", "msg": "", "rc": 0, "start": "2025-12-15 18:19:51.092896", "stderr": "", "stderr_lines": [], "stdout": " 18:19:51 up 15 days, 7:35, 0 user, load average: 0.42, 0.29, 0.21", "stdout_lines": [" 18:19:51 up 15 days, 7:35, 0 user, load average: 0.42, 0.29, 0.21"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004482", "end": "2025-12-15 15:20:13.046091", "msg": "", "rc": 0, "start": "2025-12-15 15:20:13.041609", "stderr": "", "stderr_lines": [], "stdout": " 3:20PM up 20 days, 5:10, 1 user, load averages: 0.30, 0.23, 0.23", "stdout_lines": [" 3:20PM up 20 days, 5:10, 1 user, load averages: 0.30, 0.23, 0.23"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004598", "end": "2025-12-15 18:20:13.222546", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.217948", "stderr": "", "stderr_lines": [], "stdout": " 18:20:13 up 1 day, 7:51, 1 user, load average: 0.20, 0.13, 0.06", "stdout_lines": [" 18:20:13 up 1 day, 7:51, 1 user, load average: 0.20, 0.13, 0.06"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008547", "end": "2025-12-15 18:20:13.465014", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.456467", "stderr": "", "stderr_lines": [], "stdout": " 18:20:13 up 4:55, 1 user, load average: 1.26, 1.12, 1.13", "stdout_lines": [" 18:20:13 up 4:55, 1 user, load average: 1.26, 1.12, 1.13"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019296", "end": "2025-12-15 18:20:13.236037", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.216741", "stderr": "", "stderr_lines": [], "stdout": " 18:20:13 up 13 days, 7:46, 1 user, load average: 0.22, 0.12, 0.10", "stdout_lines": [" 18:20:13 up 13 days, 7:46, 1 user, load average: 0.22, 0.12, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004260", "end": "2025-12-15 18:20:13.763669", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.759409", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004026", "end": "2025-12-15 18:20:13.781866", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.777840", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005280", "end": "2025-12-15 18:20:13.793209", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.787929", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004858", "end": "2025-12-15 18:20:13.812170", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.807312", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005313", "end": "2025-12-15 18:20:13.829865", "msg": "", "rc": 0, "start": "2025-12-15 18:20:13.824552", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005909", "end": "2025-12-15 18:19:49.701589", "msg": "", "rc": 0, "start": "2025-12-15 18:19:49.695680", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005303", "end": "2025-12-15 18:19:43.880621", "msg": "", "rc": 0, "start": "2025-12-15 18:19:43.875318", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010588", "end": "2025-12-15 18:20:14.487887", "msg": "", "rc": 0, "start": "2025-12-15 18:20:14.477299", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011677", "end": "2025-12-15 18:20:14.526474", "msg": "", "rc": 0, "start": "2025-12-15 18:20:14.514797", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005873", "end": "2025-12-15 18:20:14.727203", "msg": "", "rc": 0, "start": "2025-12-15 18:20:14.721330", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005507", "end": "2025-12-15 18:19:47.083006", "msg": "", "rc": 0, "start": "2025-12-15 18:19:47.077499", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004776", "end": "2025-12-15 18:19:53.023745", "msg": "", "rc": 0, "start": "2025-12-15 18:19:53.018969", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005517", "end": "2025-12-15 15:20:14.985556", "msg": "", "rc": 0, "start": "2025-12-15 15:20:14.980039", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005518", "end": "2025-12-15 18:20:15.152786", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.147268", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.017793", "end": "2025-12-15 18:20:15.500091", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.482298", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025161", "end": "2025-12-15 18:20:15.153656", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.128495", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004428", "end": "2025-12-15 18:20:15.662994", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.658566", "stderr": "", "stderr_lines": [], "stdout": "77.7%", "stdout_lines": ["77.7%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004168", "end": "2025-12-15 18:20:15.683664", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.679496", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004856", "end": "2025-12-15 18:20:15.700500", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.695644", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.0%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004907", "end": "2025-12-15 18:20:15.721899", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.716992", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007201", "end": "2025-12-15 18:20:15.748254", "msg": "", "rc": 0, "start": "2025-12-15 18:20:15.741053", "stderr": "", "stderr_lines": [], "stdout": "59.2%", "stdout_lines": ["59.2%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003803", "end": "2025-12-15 18:19:51.606127", "msg": "", "rc": 0, "start": "2025-12-15 18:19:51.602324", "stderr": "", "stderr_lines": [], "stdout": "71.3%", "stdout_lines": ["71.3%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005570", "end": "2025-12-15 18:19:45.797424", "msg": "", "rc": 0, "start": "2025-12-15 18:19:45.791854", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010962", "end": "2025-12-15 18:20:16.376995", "msg": "", "rc": 0, "start": "2025-12-15 18:20:16.366033", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012048", "end": "2025-12-15 18:20:16.403085", "msg": "", "rc": 0, "start": "2025-12-15 18:20:16.391037", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005972", "end": "2025-12-15 18:20:16.637157", "msg": "", "rc": 0, "start": "2025-12-15 18:20:16.631185", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005181", "end": "2025-12-15 15:20:16.858291", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:20:16.853110", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004958", "end": "2025-12-15 18:19:48.991247", "msg": "", "rc": 0, "start": "2025-12-15 18:19:48.986289", "stderr": "", "stderr_lines": [], "stdout": "25.3%", "stdout_lines": ["25.3%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003963", "end": "2025-12-15 18:19:54.929405", "msg": "", "rc": 0, "start": "2025-12-15 18:19:54.925442", "stderr": "", "stderr_lines": [], "stdout": "55.5%", "stdout_lines": ["55.5%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005382", "end": "2025-12-15 18:20:17.057628", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.052246", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.009548", "end": "2025-12-15 18:20:17.395464", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.385916", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025853", "end": "2025-12-15 18:20:17.052809", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.026956", "stderr": "", "stderr_lines": [], "stdout": "19.9%", "stdout_lines": ["19.9%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005131", "end": "2025-12-15 18:20:17.605841", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.600710", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004950", "end": "2025-12-15 18:20:17.626204", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.621254", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005407", "end": "2025-12-15 18:20:17.631123", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.625716", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003429", "end": "2025-12-15 18:20:17.656330", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.652901", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006731", "end": "2025-12-15 18:20:17.686697", "msg": "", "rc": 0, "start": "2025-12-15 18:20:17.679966", "stderr": "", "stderr_lines": [], "stdout": "52.0°C", "stdout_lines": ["52.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002777", "end": "2025-12-15 18:19:53.561582", "msg": "", "rc": 0, "start": "2025-12-15 18:19:53.558805", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003203", "end": "2025-12-15 18:19:47.751116", "msg": "", "rc": 0, "start": "2025-12-15 18:19:47.747913", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011886", "end": "2025-12-15 18:20:18.298870", "msg": "", "rc": 0, "start": "2025-12-15 18:20:18.286984", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013380", "end": "2025-12-15 18:20:18.340908", "msg": "", "rc": 0, "start": "2025-12-15 18:20:18.327528", "stderr": "", "stderr_lines": [], "stdout": "35.5°C", "stdout_lines": ["35.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003161", "end": "2025-12-15 18:20:18.591791", "msg": "", "rc": 0, "start": "2025-12-15 18:20:18.588630", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002940", "end": "2025-12-15 18:19:50.932580", "msg": "", "rc": 0, "start": "2025-12-15 18:19:50.929640", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003937", "end": "2025-12-15 15:20:18.803561", "msg": "", "rc": 0, "start": "2025-12-15 15:20:18.799624", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002623", "end": "2025-12-15 18:19:56.855157", "msg": "", "rc": 0, "start": "2025-12-15 18:19:56.852534", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003069", "end": "2025-12-15 18:20:19.001759", "msg": "", "rc": 0, "start": "2025-12-15 18:20:18.998690", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004161", "end": "2025-12-15 18:20:19.349558", "msg": "", "rc": 0, "start": "2025-12-15 18:20:19.345397", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028678", "end": "2025-12-15 18:20:19.000108", "msg": "", "rc": 0, "start": "2025-12-15 18:20:18.971430", "stderr": "", "stderr_lines": [], "stdout": "35.6°C", "stdout_lines": ["35.6°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004358", "end": "2025-12-15 18:20:19.541776", "msg": "", "rc": 0, "start": "2025-12-15 18:20:19.537418", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.003996", "end": "2025-12-15 18:20:19.559534", "msg": "", "rc": 0, "start": "2025-12-15 18:20:19.555538", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004745", "end": "2025-12-15 18:20:19.568918", "msg": "", "rc": 0, "start": "2025-12-15 18:20:19.564173", "stderr": "", "stderr_lines": [], "stdout": "0.44", "stdout_lines": ["0.44"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004953", "end": "2025-12-15 18:20:19.588154", "msg": "", "rc": 0, "start": "2025-12-15 18:20:19.583201", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005375", "end": "2025-12-15 18:20:19.595369", "msg": "", "rc": 0, "start": "2025-12-15 18:20:19.589994", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004401", "end": "2025-12-15 18:19:55.492245", "msg": "", "rc": 0, "start": "2025-12-15 18:19:55.487844", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005307", "end": "2025-12-15 18:19:49.637998", "msg": "", "rc": 0, "start": "2025-12-15 18:19:49.632691", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010311", "end": "2025-12-15 18:20:20.333605", "msg": "", "rc": 0, "start": "2025-12-15 18:20:20.323294", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011414", "end": "2025-12-15 18:20:20.353014", "msg": "", "rc": 0, "start": "2025-12-15 18:20:20.341600", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006133", "end": "2025-12-15 18:20:20.536269", "msg": "", "rc": 0, "start": "2025-12-15 18:20:20.530136", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005181", "end": "2025-12-15 18:19:52.812614", "msg": "", "rc": 0, "start": "2025-12-15 18:19:52.807433", "stderr": "", "stderr_lines": [], "stdout": "0.90", "stdout_lines": ["0.90"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006255", "end": "2025-12-15 15:20:20.824828", "msg": "", "rc": 0, "start": "2025-12-15 15:20:20.818573", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004426", "end": "2025-12-15 18:19:58.887814", "msg": "", "rc": 0, "start": "2025-12-15 18:19:58.883388", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005303", "end": "2025-12-15 18:20:20.967273", "msg": "", "rc": 0, "start": "2025-12-15 18:20:20.961970", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006266", "end": "2025-12-15 18:20:21.252569", "msg": "", "rc": 0, "start": "2025-12-15 18:20:21.246303", "stderr": "", "stderr_lines": [], "stdout": "1.22", "stdout_lines": ["1.22"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024065", "end": "2025-12-15 18:20:20.932057", "msg": "", "rc": 0, "start": "2025-12-15 18:20:20.907992", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:11 up 20 days, 5:11, 1 user, load average: 0.18, 0.17, 0.15\nDisk Usage: 23%\nMemory Usage: 77.7%\nCPU Load: 0.24\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:11 up 1 day, 7:52, 1 user, load average: 0.57, 0.39, 0.28\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.63\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:11 up 20 days, 5:31, 1 user, load average: 0.34, 0.50, 0.55\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.44\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:11 up 20 days, 6:44, 1 user, load average: 0.53, 0.61, 0.62\nDisk Usage: 14%\nMemory Usage: 59.2%\nCPU Load: 0.61\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:11 up 20 days, 7:30, 1 user, load average: 0.39, 0.11, 0.03\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:13 up 13 days, 7:46, 1 user, load average: 0.22, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.27\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:12 up 192 days, 9:53, 1 user, load average: 0.45, 0.28, 0.21\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.54\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:12 up 192 days, 9:53, 1 user, load average: 0.50, 0.30, 0.20\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.42\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:19:47 up 9 days, 6:09, 0 user, load average: 0.34, 0.24, 0.14\nDisk Usage: 48%\nMemory Usage: 71.3%\nCPU Load: 0.36\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:19:41 up 16 days, 2:21, 0 user, load average: 0.03, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:19:45 up 18 days, 21:14, 0 user, load average: 0.46, 0.43, 0.46\nDisk Usage: 28%\nMemory Usage: 25.3%\nCPU Load: 0.90\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:19:51 up 15 days, 7:35, 0 user, load average: 0.42, 0.29, 0.21\nDisk Usage: 75%\nMemory Usage: 55.5%\nCPU Load: 0.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:12 up 1 day, 7:51, 1 user, load average: 0.08, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:20PM up 20 days, 5:10, 1 user, load averages: 0.30, 0.23, 0.23\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:13 up 1 day, 7:51, 1 user, load average: 0.20, 0.13, 0.06\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:20:13 up 4:55, 1 user, load average: 1.26, 1.12, 1.13\nDisk Usage: 1%\nMemory Usage: 12.3%\nCPU Load: 1.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:20:22.094184+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `58f2a58ef56d49cdb3c302049581d2d1` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:25:00.000843+00:00 |
| **Fin** | 2025-12-15T23:25:22.503852+00:00 |
| **Durée** | 22.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003102", "end": "2025-12-15 18:25:11.399043", "msg": "", "rc": 0, "start": "2025-12-15 18:25:11.395941", "stderr": "", "stderr_lines": [], "stdout": " 18:25:11 up 20 days, 5:16, 1 user, load average: 0.32, 0.21, 0.16", "stdout_lines": [" 18:25:11 up 20 days, 5:16, 1 user, load average: 0.32, 0.21, 0.16"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003777", "end": "2025-12-15 18:25:11.415418", "msg": "", "rc": 0, "start": "2025-12-15 18:25:11.411641", "stderr": "", "stderr_lines": [], "stdout": " 18:25:11 up 20 days, 5:36, 1 user, load average: 0.42, 0.54, 0.56", "stdout_lines": [" 18:25:11 up 20 days, 5:36, 1 user, load average: 0.42, 0.54, 0.56"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003734", "end": "2025-12-15 18:25:11.418708", "msg": "", "rc": 0, "start": "2025-12-15 18:25:11.414974", "stderr": "", "stderr_lines": [], "stdout": " 18:25:11 up 20 days, 7:35, 1 user, load average: 0.23, 0.13, 0.05", "stdout_lines": [" 18:25:11 up 20 days, 7:35, 1 user, load average: 0.23, 0.13, 0.05"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002874", "end": "2025-12-15 18:25:11.438071", "msg": "", "rc": 0, "start": "2025-12-15 18:25:11.435197", "stderr": "", "stderr_lines": [], "stdout": " 18:25:11 up 1 day, 7:57, 1 user, load average: 0.49, 0.38, 0.29", "stdout_lines": [" 18:25:11 up 1 day, 7:57, 1 user, load average: 0.49, 0.38, 0.29"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003786", "end": "2025-12-15 18:25:11.429501", "msg": "", "rc": 0, "start": "2025-12-15 18:25:11.425715", "stderr": "", "stderr_lines": [], "stdout": " 18:25:11 up 20 days, 6:49, 1 user, load average: 0.99, 0.68, 0.65", "stdout_lines": [" 18:25:11 up 20 days, 6:49, 1 user, load average: 0.99, 0.68, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003692", "end": "2025-12-15 18:24:47.367247", "msg": "", "rc": 0, "start": "2025-12-15 18:24:47.363555", "stderr": "", "stderr_lines": [], "stdout": " 18:24:47 up 9 days, 6:14, 0 user, load average: 0.04, 0.13, 0.11", "stdout_lines": [" 18:24:47 up 9 days, 6:14, 0 user, load average: 0.04, 0.13, 0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003591", "end": "2025-12-15 18:24:41.483619", "msg": "", "rc": 0, "start": "2025-12-15 18:24:41.480028", "stderr": "", "stderr_lines": [], "stdout": " 18:24:41 up 16 days, 2:26, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 18:24:41 up 16 days, 2:26, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008514", "end": "2025-12-15 18:25:12.108237", "msg": "", "rc": 0, "start": "2025-12-15 18:25:12.099723", "stderr": "", "stderr_lines": [], "stdout": " 18:25:12 up 192 days, 9:58, 1 user, load average: 0.49, 0.30, 0.21", "stdout_lines": [" 18:25:12 up 192 days, 9:58, 1 user, load average: 0.49, 0.30, 0.21"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009411", "end": "2025-12-15 18:25:12.168331", "msg": "", "rc": 0, "start": "2025-12-15 18:25:12.158920", "stderr": "", "stderr_lines": [], "stdout": " 18:25:12 up 192 days, 9:58, 1 user, load average: 0.26, 0.29, 0.23", "stdout_lines": [" 18:25:12 up 192 days, 9:58, 1 user, load average: 0.26, 0.29, 0.23"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004657", "end": "2025-12-15 18:25:12.423323", "msg": "", "rc": 0, "start": "2025-12-15 18:25:12.418666", "stderr": "", "stderr_lines": [], "stdout": " 18:25:12 up 1 day, 7:56, 1 user, load average: 0.17, 0.11, 0.03", "stdout_lines": [" 18:25:12 up 1 day, 7:56, 1 user, load average: 0.17, 0.11, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003302", "end": "2025-12-15 18:24:44.670726", "msg": "", "rc": 0, "start": "2025-12-15 18:24:44.667424", "stderr": "", "stderr_lines": [], "stdout": " 18:24:44 up 18 days, 21:19, 0 user, load average: 0.38, 0.42, 0.45", "stdout_lines": [" 18:24:44 up 18 days, 21:19, 0 user, load average: 0.38, 0.42, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004209", "end": "2025-12-15 15:25:12.632371", "msg": "", "rc": 0, "start": "2025-12-15 15:25:12.628162", "stderr": "", "stderr_lines": [], "stdout": " 3:25PM up 20 days, 5:14, 1 user, load averages: 0.14, 0.21, 0.23", "stdout_lines": [" 3:25PM up 20 days, 5:14, 1 user, load averages: 0.14, 0.21, 0.23"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002938", "end": "2025-12-15 18:24:50.684725", "msg": "", "rc": 0, "start": "2025-12-15 18:24:50.681787", "stderr": "", "stderr_lines": [], "stdout": " 18:24:50 up 15 days, 7:40, 0 user, load average: 0.46, 0.30, 0.22", "stdout_lines": [" 18:24:50 up 15 days, 7:40, 0 user, load average: 0.46, 0.30, 0.22"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008294", "end": "2025-12-15 18:25:13.086719", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.078425", "stderr": "", "stderr_lines": [], "stdout": " 18:25:13 up 5:00, 1 user, load average: 1.38, 1.18, 1.14", "stdout_lines": [" 18:25:13 up 5:00, 1 user, load average: 1.38, 1.18, 1.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003784", "end": "2025-12-15 18:25:12.862560", "msg": "", "rc": 0, "start": "2025-12-15 18:25:12.858776", "stderr": "", "stderr_lines": [], "stdout": " 18:25:12 up 1 day, 7:56, 1 user, load average: 0.04, 0.08, 0.05", "stdout_lines": [" 18:25:12 up 1 day, 7:56, 1 user, load average: 0.04, 0.08, 0.05"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.022629", "end": "2025-12-15 18:25:13.050170", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.027541", "stderr": "", "stderr_lines": [], "stdout": " 18:25:13 up 13 days, 7:51, 2 users, load average: 0.64, 0.23, 0.13", "stdout_lines": [" 18:25:13 up 13 days, 7:51, 2 users, load average: 0.64, 0.23, 0.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004347", "end": "2025-12-15 18:25:13.592973", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.588626", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004074", "end": "2025-12-15 18:25:13.616690", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.612616", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005036", "end": "2025-12-15 18:25:13.631304", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.626268", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004922", "end": "2025-12-15 18:25:13.646727", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.641805", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005898", "end": "2025-12-15 18:25:13.678783", "msg": "", "rc": 0, "start": "2025-12-15 18:25:13.672885", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005327", "end": "2025-12-15 18:24:49.555382", "msg": "", "rc": 0, "start": "2025-12-15 18:24:49.550055", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005458", "end": "2025-12-15 18:24:43.719266", "msg": "", "rc": 0, "start": "2025-12-15 18:24:43.713808", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010636", "end": "2025-12-15 18:25:14.418194", "msg": "", "rc": 0, "start": "2025-12-15 18:25:14.407558", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011646", "end": "2025-12-15 18:25:14.424308", "msg": "", "rc": 0, "start": "2025-12-15 18:25:14.412662", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006336", "end": "2025-12-15 18:25:14.577298", "msg": "", "rc": 0, "start": "2025-12-15 18:25:14.570962", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005118", "end": "2025-12-15 18:24:46.904059", "msg": "", "rc": 0, "start": "2025-12-15 18:24:46.898941", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005398", "end": "2025-12-15 15:25:14.895985", "msg": "", "rc": 0, "start": "2025-12-15 15:25:14.890587", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006133", "end": "2025-12-15 18:24:52.994381", "msg": "", "rc": 0, "start": "2025-12-15 18:24:52.988248", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005448", "end": "2025-12-15 18:25:15.019360", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.013912", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019976", "end": "2025-12-15 18:25:15.292091", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.272115", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.027376", "end": "2025-12-15 18:25:15.129129", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.101753", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004391", "end": "2025-12-15 18:25:15.673448", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.669057", "stderr": "", "stderr_lines": [], "stdout": "78.1%", "stdout_lines": ["78.1%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004120", "end": "2025-12-15 18:25:15.691435", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.687315", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005226", "end": "2025-12-15 18:25:15.700254", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.695028", "stderr": "", "stderr_lines": [], "stdout": "49.1%", "stdout_lines": ["49.1%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004987", "end": "2025-12-15 18:25:15.720729", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.715742", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005349", "end": "2025-12-15 18:25:15.725041", "msg": "", "rc": 0, "start": "2025-12-15 18:25:15.719692", "stderr": "", "stderr_lines": [], "stdout": "59.1%", "stdout_lines": ["59.1%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003823", "end": "2025-12-15 18:24:51.622427", "msg": "", "rc": 0, "start": "2025-12-15 18:24:51.618604", "stderr": "", "stderr_lines": [], "stdout": "71.4%", "stdout_lines": ["71.4%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004986", "end": "2025-12-15 18:24:45.805795", "msg": "", "rc": 0, "start": "2025-12-15 18:24:45.800809", "stderr": "", "stderr_lines": [], "stdout": "72.2%", "stdout_lines": ["72.2%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011096", "end": "2025-12-15 18:25:16.367772", "msg": "", "rc": 0, "start": "2025-12-15 18:25:16.356676", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011950", "end": "2025-12-15 18:25:16.411995", "msg": "", "rc": 0, "start": "2025-12-15 18:25:16.400045", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005918", "end": "2025-12-15 18:25:16.667969", "msg": "", "rc": 0, "start": "2025-12-15 18:25:16.662051", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004331", "end": "2025-12-15 18:24:49.000569", "msg": "", "rc": 0, "start": "2025-12-15 18:24:48.996238", "stderr": "", "stderr_lines": [], "stdout": "24.4%", "stdout_lines": ["24.4%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003551", "end": "2025-12-15 18:24:54.929397", "msg": "", "rc": 0, "start": "2025-12-15 18:24:54.925846", "stderr": "", "stderr_lines": [], "stdout": "56.3%", "stdout_lines": ["56.3%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005579", "end": "2025-12-15 15:25:16.896432", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:25:16.890853", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005404", "end": "2025-12-15 18:25:17.113608", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.108204", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.008306", "end": "2025-12-15 18:25:17.356195", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.347889", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.028425", "end": "2025-12-15 18:25:17.245574", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.217149", "stderr": "", "stderr_lines": [], "stdout": "19.8%", "stdout_lines": ["19.8%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005093", "end": "2025-12-15 18:25:17.794656", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.789563", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004935", "end": "2025-12-15 18:25:17.823323", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.818388", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005610", "end": "2025-12-15 18:25:17.833751", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.828141", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003467", "end": "2025-12-15 18:25:17.839147", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.835680", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006599", "end": "2025-12-15 18:25:17.865898", "msg": "", "rc": 0, "start": "2025-12-15 18:25:17.859299", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003371", "end": "2025-12-15 18:24:53.739705", "msg": "", "rc": 0, "start": "2025-12-15 18:24:53.736334", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003191", "end": "2025-12-15 18:24:47.932792", "msg": "", "rc": 0, "start": "2025-12-15 18:24:47.929601", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012279", "end": "2025-12-15 18:25:18.521750", "msg": "", "rc": 0, "start": "2025-12-15 18:25:18.509471", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013191", "end": "2025-12-15 18:25:18.550106", "msg": "", "rc": 0, "start": "2025-12-15 18:25:18.536915", "stderr": "", "stderr_lines": [], "stdout": "37.0°C", "stdout_lines": ["37.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003042", "end": "2025-12-15 18:25:18.772945", "msg": "", "rc": 0, "start": "2025-12-15 18:25:18.769903", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002885", "end": "2025-12-15 18:24:51.136675", "msg": "", "rc": 0, "start": "2025-12-15 18:24:51.133790", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003940", "end": "2025-12-15 15:25:19.014032", "msg": "", "rc": 0, "start": "2025-12-15 15:25:19.010092", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002516", "end": "2025-12-15 18:24:57.072623", "msg": "", "rc": 0, "start": "2025-12-15 18:24:57.070107", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002955", "end": "2025-12-15 18:25:19.197082", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.194127", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004588", "end": "2025-12-15 18:25:19.535871", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.531283", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.031336", "end": "2025-12-15 18:25:19.330429", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.299093", "stderr": "", "stderr_lines": [], "stdout": "38.0°C", "stdout_lines": ["38.0°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004202", "end": "2025-12-15 18:25:19.878694", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.874492", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004087", "end": "2025-12-15 18:25:19.908399", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.904312", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005124", "end": "2025-12-15 18:25:19.914207", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.909083", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005457", "end": "2025-12-15 18:25:19.928337", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.922880", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007917", "end": "2025-12-15 18:25:19.945293", "msg": "", "rc": 0, "start": "2025-12-15 18:25:19.937376", "stderr": "", "stderr_lines": [], "stdout": "0.92", "stdout_lines": ["0.92"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004437", "end": "2025-12-15 18:24:55.827519", "msg": "", "rc": 0, "start": "2025-12-15 18:24:55.823082", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005168", "end": "2025-12-15 18:24:49.971410", "msg": "", "rc": 0, "start": "2025-12-15 18:24:49.966242", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010325", "end": "2025-12-15 18:25:20.674360", "msg": "", "rc": 0, "start": "2025-12-15 18:25:20.664035", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011266", "end": "2025-12-15 18:25:20.698652", "msg": "", "rc": 0, "start": "2025-12-15 18:25:20.687386", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005523", "end": "2025-12-15 18:25:20.873406", "msg": "", "rc": 0, "start": "2025-12-15 18:25:20.867883", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004719", "end": "2025-12-15 18:24:53.134125", "msg": "", "rc": 0, "start": "2025-12-15 18:24:53.129406", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004222", "end": "2025-12-15 18:24:59.205020", "msg": "", "rc": 0, "start": "2025-12-15 18:24:59.200798", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006300", "end": "2025-12-15 15:25:21.163344", "msg": "", "rc": 0, "start": "2025-12-15 15:25:21.157044", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005371", "end": "2025-12-15 18:25:21.300598", "msg": "", "rc": 0, "start": "2025-12-15 18:25:21.295227", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007131", "end": "2025-12-15 18:25:21.527536", "msg": "", "rc": 0, "start": "2025-12-15 18:25:21.520405", "stderr": "", "stderr_lines": [], "stdout": "1.32", "stdout_lines": ["1.32"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.026960", "end": "2025-12-15 18:25:21.429606", "msg": "", "rc": 0, "start": "2025-12-15 18:25:21.402646", "stderr": "", "stderr_lines": [], "stdout": "0.77", "stdout_lines": ["0.77"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:11 up 1 day, 7:57, 1 user, load average: 0.49, 0.38, 0.29\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.41\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:11 up 20 days, 5:16, 1 user, load average: 0.32, 0.21, 0.16\nDisk Usage: 23%\nMemory Usage: 78.1%\nCPU Load: 0.30\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:11 up 20 days, 5:36, 1 user, load average: 0.42, 0.54, 0.56\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.35\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:11 up 20 days, 6:49, 1 user, load average: 0.99, 0.68, 0.65\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.92\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:11 up 20 days, 7:35, 1 user, load average: 0.23, 0.13, 0.05\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:13 up 13 days, 7:51, 2 users, load average: 0.64, 0.23, 0.13\nDisk Usage: 21%\nMemory Usage: 19.8%\nCPU Load: 0.77\nCPU Temp: 38.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:12 up 192 days, 9:58, 1 user, load average: 0.26, 0.29, 0.23\nDisk Usage: 6%\nMemory Usage: 12.5%\nCPU Load: 0.37\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:12 up 192 days, 9:58, 1 user, load average: 0.49, 0.30, 0.21\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.56\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:24:47 up 9 days, 6:14, 0 user, load average: 0.04, 0.13, 0.11\nDisk Usage: 48%\nMemory Usage: 71.4%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:24:41 up 16 days, 2:26, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 72.2%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:12 up 1 day, 7:56, 1 user, load average: 0.17, 0.11, 0.03\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:24:44 up 18 days, 21:19, 0 user, load average: 0.38, 0.42, 0.45\nDisk Usage: 28%\nMemory Usage: 24.4%\nCPU Load: 0.43\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:24:50 up 15 days, 7:40, 0 user, load average: 0.46, 0.30, 0.22\nDisk Usage: 75%\nMemory Usage: 56.3%\nCPU Load: 0.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:25PM up 20 days, 5:14, 1 user, load averages: 0.14, 0.21, 0.23\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:12 up 1 day, 7:56, 1 user, load average: 0.04, 0.08, 0.05\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:25:13 up 5:00, 1 user, load average: 1.38, 1.18, 1.14\nDisk Usage: 1%\nMemory Usage: 13.1%\nCPU Load: 1.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:25:22.538069+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `d732ab22073b458e9fb85836055fb1d8` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:30:00.000989+00:00 |
| **Fin** | 2025-12-15T23:30:21.496910+00:00 |
| **Durée** | 21.5s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003043", "end": "2025-12-15 18:30:11.326239", "msg": "", "rc": 0, "start": "2025-12-15 18:30:11.323196", "stderr": "", "stderr_lines": [], "stdout": " 18:30:11 up 20 days, 5:21, 1 user, load average: 0.10, 0.17, 0.16", "stdout_lines": [" 18:30:11 up 20 days, 5:21, 1 user, load average: 0.10, 0.17, 0.16"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003969", "end": "2025-12-15 18:30:11.341927", "msg": "", "rc": 0, "start": "2025-12-15 18:30:11.337958", "stderr": "", "stderr_lines": [], "stdout": " 18:30:11 up 20 days, 7:40, 1 user, load average: 0.10, 0.09, 0.04", "stdout_lines": [" 18:30:11 up 20 days, 7:40, 1 user, load average: 0.10, 0.09, 0.04"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002860", "end": "2025-12-15 18:30:11.365927", "msg": "", "rc": 0, "start": "2025-12-15 18:30:11.363067", "stderr": "", "stderr_lines": [], "stdout": " 18:30:11 up 1 day, 8:02, 1 user, load average: 0.67, 0.49, 0.35", "stdout_lines": [" 18:30:11 up 1 day, 8:02, 1 user, load average: 0.67, 0.49, 0.35"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004025", "end": "2025-12-15 18:30:11.356682", "msg": "", "rc": 0, "start": "2025-12-15 18:30:11.352657", "stderr": "", "stderr_lines": [], "stdout": " 18:30:11 up 20 days, 6:54, 1 user, load average: 1.09, 0.86, 0.72", "stdout_lines": [" 18:30:11 up 20 days, 6:54, 1 user, load average: 1.09, 0.86, 0.72"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003504", "end": "2025-12-15 18:30:11.375407", "msg": "", "rc": 0, "start": "2025-12-15 18:30:11.371903", "stderr": "", "stderr_lines": [], "stdout": " 18:30:11 up 20 days, 5:41, 1 user, load average: 0.93, 0.68, 0.60", "stdout_lines": [" 18:30:11 up 20 days, 5:41, 1 user, load average: 0.93, 0.68, 0.60"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002833", "end": "2025-12-15 18:29:47.258024", "msg": "", "rc": 0, "start": "2025-12-15 18:29:47.255191", "stderr": "", "stderr_lines": [], "stdout": " 18:29:47 up 9 days, 6:19, 0 user, load average: 0.04, 0.20, 0.16", "stdout_lines": [" 18:29:47 up 9 days, 6:19, 0 user, load average: 0.04, 0.20, 0.16"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003626", "end": "2025-12-15 18:29:41.401156", "msg": "", "rc": 0, "start": "2025-12-15 18:29:41.397530", "stderr": "", "stderr_lines": [], "stdout": " 18:29:41 up 16 days, 2:31, 0 user, load average: 0.02, 0.02, 0.00", "stdout_lines": [" 18:29:41 up 16 days, 2:31, 0 user, load average: 0.02, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008864", "end": "2025-12-15 18:30:12.027149", "msg": "", "rc": 0, "start": "2025-12-15 18:30:12.018285", "stderr": "", "stderr_lines": [], "stdout": " 18:30:12 up 192 days, 10:03, 1 user, load average: 0.28, 0.24, 0.20", "stdout_lines": [" 18:30:12 up 192 days, 10:03, 1 user, load average: 0.28, 0.24, 0.20"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009400", "end": "2025-12-15 18:30:12.075982", "msg": "", "rc": 0, "start": "2025-12-15 18:30:12.066582", "stderr": "", "stderr_lines": [], "stdout": " 18:30:12 up 192 days, 10:03, 1 user, load average: 0.47, 0.36, 0.28", "stdout_lines": [" 18:30:12 up 192 days, 10:03, 1 user, load average: 0.47, 0.36, 0.28"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004543", "end": "2025-12-15 18:30:12.300217", "msg": "", "rc": 0, "start": "2025-12-15 18:30:12.295674", "stderr": "", "stderr_lines": [], "stdout": " 18:30:12 up 1 day, 8:01, 1 user, load average: 0.00, 0.05, 0.02", "stdout_lines": [" 18:30:12 up 1 day, 8:01, 1 user, load average: 0.00, 0.05, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003131", "end": "2025-12-15 18:29:44.564343", "msg": "", "rc": 0, "start": "2025-12-15 18:29:44.561212", "stderr": "", "stderr_lines": [], "stdout": " 18:29:44 up 18 days, 21:24, 0 user, load average: 0.33, 0.38, 0.43", "stdout_lines": [" 18:29:44 up 18 days, 21:24, 0 user, load average: 0.33, 0.38, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003021", "end": "2025-12-15 18:29:50.579353", "msg": "", "rc": 0, "start": "2025-12-15 18:29:50.576332", "stderr": "", "stderr_lines": [], "stdout": " 18:29:50 up 15 days, 7:45, 0 user, load average: 0.09, 0.22, 0.21", "stdout_lines": [" 18:29:50 up 15 days, 7:45, 0 user, load average: 0.09, 0.22, 0.21"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004643", "end": "2025-12-15 15:30:12.549079", "msg": "", "rc": 0, "start": "2025-12-15 15:30:12.544436", "stderr": "", "stderr_lines": [], "stdout": " 3:30PM up 20 days, 5:19, 1 user, load averages: 0.38, 0.25, 0.23", "stdout_lines": [" 3:30PM up 20 days, 5:19, 1 user, load averages: 0.38, 0.25, 0.23"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003720", "end": "2025-12-15 18:30:12.728157", "msg": "", "rc": 0, "start": "2025-12-15 18:30:12.724437", "stderr": "", "stderr_lines": [], "stdout": " 18:30:12 up 1 day, 8:01, 1 user, load average: 0.31, 0.41, 0.21", "stdout_lines": [" 18:30:12 up 1 day, 8:01, 1 user, load average: 0.31, 0.41, 0.21"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006122", "end": "2025-12-15 18:30:12.900249", "msg": "", "rc": 0, "start": "2025-12-15 18:30:12.894127", "stderr": "", "stderr_lines": [], "stdout": " 18:30:12 up 5:05, 1 user, load average: 1.28, 1.26, 1.19", "stdout_lines": [" 18:30:12 up 5:05, 1 user, load average: 1.28, 1.26, 1.19"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019174", "end": "2025-12-15 18:30:12.707213", "msg": "", "rc": 0, "start": "2025-12-15 18:30:12.688039", "stderr": "", "stderr_lines": [], "stdout": " 18:30:12 up 13 days, 7:56, 1 user, load average: 0.27, 0.25, 0.17", "stdout_lines": [" 18:30:12 up 13 days, 7:56, 1 user, load average: 0.27, 0.25, 0.17"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004415", "end": "2025-12-15 18:30:13.217150", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.212735", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004302", "end": "2025-12-15 18:30:13.247422", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.243120", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004581", "end": "2025-12-15 18:30:13.254558", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.249977", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004857", "end": "2025-12-15 18:30:13.272621", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.267764", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005626", "end": "2025-12-15 18:30:13.284684", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.279058", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004808", "end": "2025-12-15 18:29:49.159848", "msg": "", "rc": 0, "start": "2025-12-15 18:29:49.155040", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005353", "end": "2025-12-15 18:29:43.316864", "msg": "", "rc": 0, "start": "2025-12-15 18:29:43.311511", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010739", "end": "2025-12-15 18:30:13.955255", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.944516", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011568", "end": "2025-12-15 18:30:13.991935", "msg": "", "rc": 0, "start": "2025-12-15 18:30:13.980367", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005835", "end": "2025-12-15 18:30:14.207165", "msg": "", "rc": 0, "start": "2025-12-15 18:30:14.201330", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005428", "end": "2025-12-15 18:29:46.487151", "msg": "", "rc": 0, "start": "2025-12-15 18:29:46.481723", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005522", "end": "2025-12-15 15:30:14.455816", "msg": "", "rc": 0, "start": "2025-12-15 15:30:14.450294", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004709", "end": "2025-12-15 18:29:52.505966", "msg": "", "rc": 0, "start": "2025-12-15 18:29:52.501257", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005309", "end": "2025-12-15 18:30:14.641200", "msg": "", "rc": 0, "start": "2025-12-15 18:30:14.635891", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007665", "end": "2025-12-15 18:30:14.839592", "msg": "", "rc": 0, "start": "2025-12-15 18:30:14.831927", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025412", "end": "2025-12-15 18:30:14.602737", "msg": "", "rc": 0, "start": "2025-12-15 18:30:14.577325", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004790", "end": "2025-12-15 18:30:15.149618", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.144828", "stderr": "", "stderr_lines": [], "stdout": "78.4%", "stdout_lines": ["78.4%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005466", "end": "2025-12-15 18:30:15.161724", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.156258", "stderr": "", "stderr_lines": [], "stdout": "49.1%", "stdout_lines": ["49.1%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004186", "end": "2025-12-15 18:30:15.163692", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.159506", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004415", "end": "2025-12-15 18:30:15.185187", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.180772", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005760", "end": "2025-12-15 18:30:15.195318", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.189558", "stderr": "", "stderr_lines": [], "stdout": "59.3%", "stdout_lines": ["59.3%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004204", "end": "2025-12-15 18:29:51.083574", "msg": "", "rc": 0, "start": "2025-12-15 18:29:51.079370", "stderr": "", "stderr_lines": [], "stdout": "71.0%", "stdout_lines": ["71.0%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006890", "end": "2025-12-15 18:29:45.258507", "msg": "", "rc": 0, "start": "2025-12-15 18:29:45.251617", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011039", "end": "2025-12-15 18:30:15.835393", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.824354", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012064", "end": "2025-12-15 18:30:15.876450", "msg": "", "rc": 0, "start": "2025-12-15 18:30:15.864386", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005845", "end": "2025-12-15 18:30:16.131411", "msg": "", "rc": 0, "start": "2025-12-15 18:30:16.125566", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004112", "end": "2025-12-15 18:29:48.434494", "msg": "", "rc": 0, "start": "2025-12-15 18:29:48.430382", "stderr": "", "stderr_lines": [], "stdout": "25.9%", "stdout_lines": ["25.9%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005132", "end": "2025-12-15 15:30:16.333138", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:30:16.328006", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003854", "end": "2025-12-15 18:29:54.414675", "msg": "", "rc": 0, "start": "2025-12-15 18:29:54.410821", "stderr": "", "stderr_lines": [], "stdout": "55.4%", "stdout_lines": ["55.4%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005425", "end": "2025-12-15 18:30:16.558170", "msg": "", "rc": 0, "start": "2025-12-15 18:30:16.552745", "stderr": "", "stderr_lines": [], "stdout": "13.3%", "stdout_lines": ["13.3%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007298", "end": "2025-12-15 18:30:16.788079", "msg": "", "rc": 0, "start": "2025-12-15 18:30:16.780781", "stderr": "", "stderr_lines": [], "stdout": "12.5%", "stdout_lines": ["12.5%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026142", "end": "2025-12-15 18:30:16.541404", "msg": "", "rc": 0, "start": "2025-12-15 18:30:16.515262", "stderr": "", "stderr_lines": [], "stdout": "19.9%", "stdout_lines": ["19.9%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004981", "end": "2025-12-15 18:30:17.087733", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.082752", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005242", "end": "2025-12-15 18:30:17.087254", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.082012", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005755", "end": "2025-12-15 18:30:17.091798", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.086043", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002979", "end": "2025-12-15 18:30:17.117240", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.114261", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006629", "end": "2025-12-15 18:30:17.140680", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.134051", "stderr": "", "stderr_lines": [], "stdout": "53.0°C", "stdout_lines": ["53.0°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002730", "end": "2025-12-15 18:29:53.002869", "msg": "", "rc": 0, "start": "2025-12-15 18:29:53.000139", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003045", "end": "2025-12-15 18:29:47.162694", "msg": "", "rc": 0, "start": "2025-12-15 18:29:47.159649", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011851", "end": "2025-12-15 18:30:17.769713", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.757862", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013027", "end": "2025-12-15 18:30:17.837296", "msg": "", "rc": 0, "start": "2025-12-15 18:30:17.824269", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003469", "end": "2025-12-15 18:30:18.045575", "msg": "", "rc": 0, "start": "2025-12-15 18:30:18.042106", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003272", "end": "2025-12-15 18:29:50.383561", "msg": "", "rc": 0, "start": "2025-12-15 18:29:50.380289", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002439", "end": "2025-12-15 18:29:56.311154", "msg": "", "rc": 0, "start": "2025-12-15 18:29:56.308715", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004059", "end": "2025-12-15 15:30:18.304369", "msg": "", "rc": 0, "start": "2025-12-15 15:30:18.300310", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002968", "end": "2025-12-15 18:30:18.483942", "msg": "", "rc": 0, "start": "2025-12-15 18:30:18.480974", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004273", "end": "2025-12-15 18:30:18.730496", "msg": "", "rc": 0, "start": "2025-12-15 18:30:18.726223", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028571", "end": "2025-12-15 18:30:18.475864", "msg": "", "rc": 0, "start": "2025-12-15 18:30:18.447293", "stderr": "", "stderr_lines": [], "stdout": "35.4°C", "stdout_lines": ["35.4°C"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004006", "end": "2025-12-15 18:30:19.024843", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.020837", "stderr": "", "stderr_lines": [], "stdout": "0.72", "stdout_lines": ["0.72"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004310", "end": "2025-12-15 18:30:19.031124", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.026814", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004665", "end": "2025-12-15 18:30:19.043632", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.038967", "stderr": "", "stderr_lines": [], "stdout": "1.02", "stdout_lines": ["1.02"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005313", "end": "2025-12-15 18:30:19.056971", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.051658", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005525", "end": "2025-12-15 18:30:19.086209", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.080684", "stderr": "", "stderr_lines": [], "stdout": "1.00", "stdout_lines": ["1.00"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004242", "end": "2025-12-15 18:29:54.950891", "msg": "", "rc": 0, "start": "2025-12-15 18:29:54.946649", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005844", "end": "2025-12-15 18:29:49.138295", "msg": "", "rc": 0, "start": "2025-12-15 18:29:49.132451", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010266", "end": "2025-12-15 18:30:19.819093", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.808827", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011245", "end": "2025-12-15 18:30:19.842489", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.831244", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005611", "end": "2025-12-15 18:30:19.997982", "msg": "", "rc": 0, "start": "2025-12-15 18:30:19.992371", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005485", "end": "2025-12-15 18:29:52.342317", "msg": "", "rc": 0, "start": "2025-12-15 18:29:52.336832", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004278", "end": "2025-12-15 18:29:58.350826", "msg": "", "rc": 0, "start": "2025-12-15 18:29:58.346548", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006043", "end": "2025-12-15 15:30:20.308909", "msg": "", "rc": 0, "start": "2025-12-15 15:30:20.302866", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005722", "end": "2025-12-15 18:30:20.415485", "msg": "", "rc": 0, "start": "2025-12-15 18:30:20.409763", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.008384", "end": "2025-12-15 18:30:20.724606", "msg": "", "rc": 0, "start": "2025-12-15 18:30:20.716222", "stderr": "", "stderr_lines": [], "stdout": "1.34", "stdout_lines": ["1.34"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024325", "end": "2025-12-15 18:30:20.413710", "msg": "", "rc": 0, "start": "2025-12-15 18:30:20.389385", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:11 up 1 day, 8:02, 1 user, load average: 0.67, 0.49, 0.35\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.72\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:11 up 20 days, 5:21, 1 user, load average: 0.10, 0.17, 0.16\nDisk Usage: 23%\nMemory Usage: 78.4%\nCPU Load: 0.09\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:11 up 20 days, 5:41, 1 user, load average: 0.93, 0.68, 0.60\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.02\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:11 up 20 days, 6:54, 1 user, load average: 1.09, 0.86, 0.72\nDisk Usage: 14%\nMemory Usage: 59.3%\nCPU Load: 1.00\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:11 up 20 days, 7:40, 1 user, load average: 0.10, 0.09, 0.04\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:12 up 13 days, 7:56, 1 user, load average: 0.27, 0.25, 0.17\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.31\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:12 up 192 days, 10:03, 1 user, load average: 0.47, 0.36, 0.28\nDisk Usage: 6%\nMemory Usage: 12.4%\nCPU Load: 0.47\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:12 up 192 days, 10:03, 1 user, load average: 0.28, 0.24, 0.20\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.40\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:29:47 up 9 days, 6:19, 0 user, load average: 0.04, 0.20, 0.16\nDisk Usage: 48%\nMemory Usage: 71.0%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:29:41 up 16 days, 2:31, 0 user, load average: 0.02, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:12 up 1 day, 8:01, 1 user, load average: 0.00, 0.05, 0.02\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:29:44 up 18 days, 21:24, 0 user, load average: 0.33, 0.38, 0.43\nDisk Usage: 28%\nMemory Usage: 25.9%\nCPU Load: 0.30\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:29:50 up 15 days, 7:45, 0 user, load average: 0.09, 0.22, 0.21\nDisk Usage: 75%\nMemory Usage: 55.4%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:30PM up 20 days, 5:19, 1 user, load averages: 0.38, 0.25, 0.23\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:12 up 1 day, 8:01, 1 user, load average: 0.31, 0.41, 0.21\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:30:12 up 5:05, 1 user, load average: 1.28, 1.26, 1.19\nDisk Usage: 1%\nMemory Usage: 12.5%\nCPU Load: 1.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:30:21.534606+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `aaaa3a4c8bf84f43bbb760619116c8c9` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:35:00.001058+00:00 |
| **Fin** | 2025-12-15T23:35:21.918225+00:00 |
| **Durée** | 21.9s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003937", "end": "2025-12-15 18:35:11.362509", "msg": "", "rc": 0, "start": "2025-12-15 18:35:11.358572", "stderr": "", "stderr_lines": [], "stdout": " 18:35:11 up 20 days, 7:45, 1 user, load average: 0.05, 0.07, 0.04", "stdout_lines": [" 18:35:11 up 20 days, 7:45, 1 user, load average: 0.05, 0.07, 0.04"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003944", "end": "2025-12-15 18:35:11.378933", "msg": "", "rc": 0, "start": "2025-12-15 18:35:11.374989", "stderr": "", "stderr_lines": [], "stdout": " 18:35:11 up 20 days, 6:59, 1 user, load average: 0.57, 0.65, 0.67", "stdout_lines": [" 18:35:11 up 20 days, 6:59, 1 user, load average: 0.57, 0.65, 0.67"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002898", "end": "2025-12-15 18:35:11.391021", "msg": "", "rc": 0, "start": "2025-12-15 18:35:11.388123", "stderr": "", "stderr_lines": [], "stdout": " 18:35:11 up 1 day, 8:07, 1 user, load average: 0.70, 0.48, 0.38", "stdout_lines": [" 18:35:11 up 1 day, 8:07, 1 user, load average: 0.70, 0.48, 0.38"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008686", "end": "2025-12-15 18:35:12.049238", "msg": "", "rc": 0, "start": "2025-12-15 18:35:12.040552", "stderr": "", "stderr_lines": [], "stdout": " 18:35:12 up 192 days, 10:08, 1 user, load average: 0.13, 0.18, 0.18", "stdout_lines": [" 18:35:12 up 192 days, 10:08, 1 user, load average: 0.13, 0.18, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009325", "end": "2025-12-15 18:35:12.077036", "msg": "", "rc": 0, "start": "2025-12-15 18:35:12.067711", "stderr": "", "stderr_lines": [], "stdout": " 18:35:12 up 192 days, 10:08, 1 user, load average: 0.25, 0.29, 0.27", "stdout_lines": [" 18:35:12 up 192 days, 10:08, 1 user, load average: 0.25, 0.29, 0.27"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003480", "end": "2025-12-15 18:35:12.350000", "msg": "", "rc": 0, "start": "2025-12-15 18:35:11.346520", "stderr": "", "stderr_lines": [], "stdout": " 18:35:11 up 20 days, 5:26, 1 user, load average: 0.09, 0.14, 0.16", "stdout_lines": [" 18:35:11 up 20 days, 5:26, 1 user, load average: 0.09, 0.14, 0.16"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003543", "end": "2025-12-15 18:35:12.380544", "msg": "", "rc": 0, "start": "2025-12-15 18:35:11.377001", "stderr": "", "stderr_lines": [], "stdout": " 18:35:11 up 20 days, 5:46, 1 user, load average: 0.80, 0.68, 0.62", "stdout_lines": [" 18:35:11 up 20 days, 5:46, 1 user, load average: 0.80, 0.68, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002852", "end": "2025-12-15 18:34:47.973630", "msg": "", "rc": 0, "start": "2025-12-15 18:34:47.970778", "stderr": "", "stderr_lines": [], "stdout": " 18:34:47 up 9 days, 6:24, 0 user, load average: 0.44, 0.32, 0.20", "stdout_lines": [" 18:34:47 up 9 days, 6:24, 0 user, load average: 0.44, 0.32, 0.20"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003631", "end": "2025-12-15 18:34:42.139920", "msg": "", "rc": 0, "start": "2025-12-15 18:34:42.136289", "stderr": "", "stderr_lines": [], "stdout": " 18:34:42 up 16 days, 2:36, 0 user, load average: 0.33, 0.10, 0.03", "stdout_lines": [" 18:34:42 up 16 days, 2:36, 0 user, load average: 0.33, 0.10, 0.03"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004515", "end": "2025-12-15 18:35:12.812916", "msg": "", "rc": 0, "start": "2025-12-15 18:35:12.808401", "stderr": "", "stderr_lines": [], "stdout": " 18:35:12 up 1 day, 8:06, 1 user, load average: 0.09, 0.05, 0.01", "stdout_lines": [" 18:35:12 up 1 day, 8:06, 1 user, load average: 0.09, 0.05, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019700", "end": "2025-12-15 18:35:12.742100", "msg": "", "rc": 0, "start": "2025-12-15 18:35:12.722400", "stderr": "", "stderr_lines": [], "stdout": " 18:35:12 up 13 days, 8:01, 1 user, load average: 0.23, 0.17, 0.15", "stdout_lines": [" 18:35:12 up 13 days, 8:01, 1 user, load average: 0.23, 0.17, 0.15"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003290", "end": "2025-12-15 18:34:45.031198", "msg": "", "rc": 0, "start": "2025-12-15 18:34:45.027908", "stderr": "", "stderr_lines": [], "stdout": " 18:34:45 up 18 days, 21:29, 0 user, load average: 0.38, 0.36, 0.40", "stdout_lines": [" 18:34:45 up 18 days, 21:29, 0 user, load average: 0.38, 0.36, 0.40"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003007", "end": "2025-12-15 18:34:51.028980", "msg": "", "rc": 0, "start": "2025-12-15 18:34:51.025973", "stderr": "", "stderr_lines": [], "stdout": " 18:34:51 up 15 days, 7:50, 0 user, load average: 0.30, 0.22, 0.19", "stdout_lines": [" 18:34:51 up 15 days, 7:50, 0 user, load average: 0.30, 0.22, 0.19"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004308", "end": "2025-12-15 15:35:13.074038", "msg": "", "rc": 0, "start": "2025-12-15 15:35:13.069730", "stderr": "", "stderr_lines": [], "stdout": " 3:35PM up 20 days, 5:25, 1 user, load averages: 0.64, 0.35, 0.27", "stdout_lines": [" 3:35PM up 20 days, 5:25, 1 user, load averages: 0.64, 0.35, 0.27"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004966", "end": "2025-12-15 18:35:13.356948", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.351982", "stderr": "", "stderr_lines": [], "stdout": " 18:35:13 up 5:10, 1 user, load average: 1.44, 1.23, 1.18", "stdout_lines": [" 18:35:13 up 5:10, 1 user, load average: 1.44, 1.23, 1.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004221", "end": "2025-12-15 18:35:13.246739", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.242518", "stderr": "", "stderr_lines": [], "stdout": " 18:35:13 up 1 day, 8:06, 1 user, load average: 0.20, 0.23, 0.18", "stdout_lines": [" 18:35:13 up 1 day, 8:06, 1 user, load average: 0.20, 0.23, 0.18"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004407", "end": "2025-12-15 18:35:13.645973", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.641566", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004097", "end": "2025-12-15 18:35:13.679356", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.675259", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004820", "end": "2025-12-15 18:35:13.687849", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.683029", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004730", "end": "2025-12-15 18:35:13.710237", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.705507", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005351", "end": "2025-12-15 18:35:13.726878", "msg": "", "rc": 0, "start": "2025-12-15 18:35:13.721527", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005072", "end": "2025-12-15 18:34:49.610368", "msg": "", "rc": 0, "start": "2025-12-15 18:34:49.605296", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005532", "end": "2025-12-15 18:34:43.744611", "msg": "", "rc": 0, "start": "2025-12-15 18:34:43.739079", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010715", "end": "2025-12-15 18:35:14.440928", "msg": "", "rc": 0, "start": "2025-12-15 18:35:14.430213", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011657", "end": "2025-12-15 18:35:14.443249", "msg": "", "rc": 0, "start": "2025-12-15 18:35:14.431592", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005775", "end": "2025-12-15 18:35:14.659665", "msg": "", "rc": 0, "start": "2025-12-15 18:35:14.653890", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005598", "end": "2025-12-15 18:34:46.931593", "msg": "", "rc": 0, "start": "2025-12-15 18:34:46.925995", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005581", "end": "2025-12-15 15:35:14.908308", "msg": "", "rc": 0, "start": "2025-12-15 15:35:14.902727", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005062", "end": "2025-12-15 18:34:52.972516", "msg": "", "rc": 0, "start": "2025-12-15 18:34:52.967454", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005368", "end": "2025-12-15 18:35:15.092369", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.087001", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007735", "end": "2025-12-15 18:35:15.318606", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.310871", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025094", "end": "2025-12-15 18:35:15.045986", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.020892", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004358", "end": "2025-12-15 18:35:15.577128", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.572770", "stderr": "", "stderr_lines": [], "stdout": "78.7%", "stdout_lines": ["78.7%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004178", "end": "2025-12-15 18:35:15.587984", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.583806", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004873", "end": "2025-12-15 18:35:15.597612", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.592739", "stderr": "", "stderr_lines": [], "stdout": "49.1%", "stdout_lines": ["49.1%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004079", "end": "2025-12-15 18:35:15.627716", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.623637", "stderr": "", "stderr_lines": [], "stdout": "8.8%", "stdout_lines": ["8.8%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005827", "end": "2025-12-15 18:35:15.644921", "msg": "", "rc": 0, "start": "2025-12-15 18:35:15.639094", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003967", "end": "2025-12-15 18:34:51.522437", "msg": "", "rc": 0, "start": "2025-12-15 18:34:51.518470", "stderr": "", "stderr_lines": [], "stdout": "71.3%", "stdout_lines": ["71.3%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004475", "end": "2025-12-15 18:34:45.673706", "msg": "", "rc": 0, "start": "2025-12-15 18:34:45.669231", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.011029", "end": "2025-12-15 18:35:16.294873", "msg": "", "rc": 0, "start": "2025-12-15 18:35:16.283844", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012082", "end": "2025-12-15 18:35:16.321816", "msg": "", "rc": 0, "start": "2025-12-15 18:35:16.309734", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006801", "end": "2025-12-15 18:35:16.587358", "msg": "", "rc": 0, "start": "2025-12-15 18:35:16.580557", "stderr": "", "stderr_lines": [], "stdout": "34.0%", "stdout_lines": ["34.0%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004069", "end": "2025-12-15 18:34:48.861725", "msg": "", "rc": 0, "start": "2025-12-15 18:34:48.857656", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005607", "end": "2025-12-15 15:35:16.804762", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:35:16.799155", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003708", "end": "2025-12-15 18:34:54.849331", "msg": "", "rc": 0, "start": "2025-12-15 18:34:54.845623", "stderr": "", "stderr_lines": [], "stdout": "55.6%", "stdout_lines": ["55.6%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005348", "end": "2025-12-15 18:35:17.020196", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.014848", "stderr": "", "stderr_lines": [], "stdout": "13.3%", "stdout_lines": ["13.3%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.007410", "end": "2025-12-15 18:35:17.256453", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.249043", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025901", "end": "2025-12-15 18:35:16.977570", "msg": "", "rc": 0, "start": "2025-12-15 18:35:16.951669", "stderr": "", "stderr_lines": [], "stdout": "19.1%", "stdout_lines": ["19.1%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005130", "end": "2025-12-15 18:35:17.507271", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.502141", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004854", "end": "2025-12-15 18:35:17.529704", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.524850", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005828", "end": "2025-12-15 18:35:17.540032", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.534204", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003296", "end": "2025-12-15 18:35:17.561384", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.558088", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006308", "end": "2025-12-15 18:35:17.595378", "msg": "", "rc": 0, "start": "2025-12-15 18:35:17.589070", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002679", "end": "2025-12-15 18:34:53.434096", "msg": "", "rc": 0, "start": "2025-12-15 18:34:53.431417", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002963", "end": "2025-12-15 18:34:47.602792", "msg": "", "rc": 0, "start": "2025-12-15 18:34:47.599829", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011971", "end": "2025-12-15 18:35:18.200041", "msg": "", "rc": 0, "start": "2025-12-15 18:35:18.188070", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012999", "end": "2025-12-15 18:35:18.237617", "msg": "", "rc": 0, "start": "2025-12-15 18:35:18.224618", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003224", "end": "2025-12-15 18:35:18.487099", "msg": "", "rc": 0, "start": "2025-12-15 18:35:18.483875", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003023", "end": "2025-12-15 18:34:50.784672", "msg": "", "rc": 0, "start": "2025-12-15 18:34:50.781649", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003238", "end": "2025-12-15 18:34:56.745364", "msg": "", "rc": 0, "start": "2025-12-15 18:34:56.742126", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003983", "end": "2025-12-15 15:35:18.702319", "msg": "", "rc": 0, "start": "2025-12-15 15:35:18.698336", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003210", "end": "2025-12-15 18:35:18.918567", "msg": "", "rc": 0, "start": "2025-12-15 18:35:18.915357", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004848", "end": "2025-12-15 18:35:19.198322", "msg": "", "rc": 0, "start": "2025-12-15 18:35:19.193474", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028540", "end": "2025-12-15 18:35:18.898326", "msg": "", "rc": 0, "start": "2025-12-15 18:35:18.869786", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004306", "end": "2025-12-15 18:35:19.420033", "msg": "", "rc": 0, "start": "2025-12-15 18:35:19.415727", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004243", "end": "2025-12-15 18:35:19.438608", "msg": "", "rc": 0, "start": "2025-12-15 18:35:19.434365", "stderr": "", "stderr_lines": [], "stdout": "0.67", "stdout_lines": ["0.67"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004586", "end": "2025-12-15 18:35:19.450676", "msg": "", "rc": 0, "start": "2025-12-15 18:35:19.446090", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005148", "end": "2025-12-15 18:35:19.473585", "msg": "", "rc": 0, "start": "2025-12-15 18:35:19.468437", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005712", "end": "2025-12-15 18:35:19.487184", "msg": "", "rc": 0, "start": "2025-12-15 18:35:19.481472", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004244", "end": "2025-12-15 18:34:55.370807", "msg": "", "rc": 0, "start": "2025-12-15 18:34:55.366563", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005077", "end": "2025-12-15 18:34:49.522689", "msg": "", "rc": 0, "start": "2025-12-15 18:34:49.517612", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010363", "end": "2025-12-15 18:35:20.190701", "msg": "", "rc": 0, "start": "2025-12-15 18:35:20.180338", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011362", "end": "2025-12-15 18:35:20.229417", "msg": "", "rc": 0, "start": "2025-12-15 18:35:20.218055", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005601", "end": "2025-12-15 18:35:20.423118", "msg": "", "rc": 0, "start": "2025-12-15 18:35:20.417517", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006905", "end": "2025-12-15 18:34:52.729997", "msg": "", "rc": 0, "start": "2025-12-15 18:34:52.723092", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004322", "end": "2025-12-15 18:34:58.745964", "msg": "", "rc": 0, "start": "2025-12-15 18:34:58.741642", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006154", "end": "2025-12-15 15:35:20.709502", "msg": "", "rc": 0, "start": "2025-12-15 15:35:20.703348", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005349", "end": "2025-12-15 18:35:20.851609", "msg": "", "rc": 0, "start": "2025-12-15 18:35:20.846260", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024297", "end": "2025-12-15 18:35:20.807889", "msg": "", "rc": 0, "start": "2025-12-15 18:35:20.783592", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007023", "end": "2025-12-15 18:35:21.187931", "msg": "", "rc": 0, "start": "2025-12-15 18:35:21.180908", "stderr": "", "stderr_lines": [], "stdout": "1.40", "stdout_lines": ["1.40"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:11 up 1 day, 8:07, 1 user, load average: 0.70, 0.48, 0.38\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.67\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:11 up 20 days, 5:26, 1 user, load average: 0.09, 0.14, 0.16\nDisk Usage: 23%\nMemory Usage: 78.7%\nCPU Load: 0.24\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:11 up 20 days, 5:46, 1 user, load average: 0.80, 0.68, 0.62\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.83\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:11 up 20 days, 6:59, 1 user, load average: 0.57, 0.65, 0.67\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.63\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:11 up 20 days, 7:45, 1 user, load average: 0.05, 0.07, 0.04\nDisk Usage: 9%\nMemory Usage: 8.8%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:12 up 13 days, 8:01, 1 user, load average: 0.23, 0.17, 0.15\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.27\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:12 up 192 days, 10:08, 1 user, load average: 0.25, 0.29, 0.27\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.21\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:12 up 192 days, 10:08, 1 user, load average: 0.13, 0.18, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.11\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:34:47 up 9 days, 6:24, 0 user, load average: 0.44, 0.32, 0.20\nDisk Usage: 48%\nMemory Usage: 71.3%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:34:42 up 16 days, 2:36, 0 user, load average: 0.33, 0.10, 0.03\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.30\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:12 up 1 day, 8:06, 1 user, load average: 0.09, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.0%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:34:45 up 18 days, 21:29, 0 user, load average: 0.38, 0.36, 0.40\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.43\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:34:51 up 15 days, 7:50, 0 user, load average: 0.30, 0.22, 0.19\nDisk Usage: 75%\nMemory Usage: 55.6%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:35PM up 20 days, 5:25, 1 user, load averages: 0.64, 0.35, 0.27\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:13 up 1 day, 8:06, 1 user, load average: 0.20, 0.23, 0.18\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:35:13 up 5:10, 1 user, load average: 1.44, 1.23, 1.18\nDisk Usage: 1%\nMemory Usage: 12.6%\nCPU Load: 1.40\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:35:21.950770+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6bdaf0c17607449dbf46180515abc488` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:40:00.000428+00:00 |
| **Fin** | 2025-12-15T23:40:22.064761+00:00 |
| **Durée** | 22.1s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003858", "end": "2025-12-15 18:40:11.923502", "msg": "", "rc": 0, "start": "2025-12-15 18:40:11.919644", "stderr": "", "stderr_lines": [], "stdout": " 18:40:11 up 20 days, 5:31, 1 user, load average: 0.28, 0.18, 0.17", "stdout_lines": [" 18:40:11 up 20 days, 5:31, 1 user, load average: 0.28, 0.18, 0.17"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003186", "end": "2025-12-15 18:40:11.931918", "msg": "", "rc": 0, "start": "2025-12-15 18:40:11.928732", "stderr": "", "stderr_lines": [], "stdout": " 18:40:11 up 20 days, 5:51, 1 user, load average: 0.72, 0.60, 0.59", "stdout_lines": [" 18:40:11 up 20 days, 5:51, 1 user, load average: 0.72, 0.60, 0.59"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003760", "end": "2025-12-15 18:40:11.938639", "msg": "", "rc": 0, "start": "2025-12-15 18:40:11.934879", "stderr": "", "stderr_lines": [], "stdout": " 18:40:11 up 20 days, 7:50, 1 user, load average: 0.09, 0.10, 0.06", "stdout_lines": [" 18:40:11 up 20 days, 7:50, 1 user, load average: 0.09, 0.10, 0.06"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002853", "end": "2025-12-15 18:40:11.957765", "msg": "", "rc": 0, "start": "2025-12-15 18:40:11.954912", "stderr": "", "stderr_lines": [], "stdout": " 18:40:11 up 1 day, 8:12, 1 user, load average: 0.98, 0.74, 0.51", "stdout_lines": [" 18:40:11 up 1 day, 8:12, 1 user, load average: 0.98, 0.74, 0.51"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003912", "end": "2025-12-15 18:40:11.955223", "msg": "", "rc": 0, "start": "2025-12-15 18:40:11.951311", "stderr": "", "stderr_lines": [], "stdout": " 18:40:11 up 20 days, 7:04, 1 user, load average: 0.56, 0.59, 0.63", "stdout_lines": [" 18:40:11 up 20 days, 7:04, 1 user, load average: 0.56, 0.59, 0.63"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003056", "end": "2025-12-15 18:39:47.853653", "msg": "", "rc": 0, "start": "2025-12-15 18:39:47.850597", "stderr": "", "stderr_lines": [], "stdout": " 18:39:47 up 9 days, 6:29, 0 user, load average: 0.09, 0.19, 0.17", "stdout_lines": [" 18:39:47 up 9 days, 6:29, 0 user, load average: 0.09, 0.19, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003364", "end": "2025-12-15 18:39:41.996636", "msg": "", "rc": 0, "start": "2025-12-15 18:39:41.993272", "stderr": "", "stderr_lines": [], "stdout": " 18:39:41 up 16 days, 2:41, 0 user, load average: 0.03, 0.05, 0.01", "stdout_lines": [" 18:39:41 up 16 days, 2:41, 0 user, load average: 0.03, 0.05, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008550", "end": "2025-12-15 18:40:12.617122", "msg": "", "rc": 0, "start": "2025-12-15 18:40:12.608572", "stderr": "", "stderr_lines": [], "stdout": " 18:40:12 up 192 days, 10:13, 1 user, load average: 0.20, 0.16, 0.17", "stdout_lines": [" 18:40:12 up 192 days, 10:13, 1 user, load average: 0.20, 0.16, 0.17"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009244", "end": "2025-12-15 18:40:12.660784", "msg": "", "rc": 0, "start": "2025-12-15 18:40:12.651540", "stderr": "", "stderr_lines": [], "stdout": " 18:40:12 up 192 days, 10:13, 1 user, load average: 0.31, 0.31, 0.28", "stdout_lines": [" 18:40:12 up 192 days, 10:13, 1 user, load average: 0.31, 0.31, 0.28"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004497", "end": "2025-12-15 18:40:12.900281", "msg": "", "rc": 0, "start": "2025-12-15 18:40:12.895784", "stderr": "", "stderr_lines": [], "stdout": " 18:40:12 up 1 day, 8:11, 1 user, load average: 0.04, 0.04, 0.00", "stdout_lines": [" 18:40:12 up 1 day, 8:11, 1 user, load average: 0.04, 0.04, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003220", "end": "2025-12-15 18:39:45.161395", "msg": "", "rc": 0, "start": "2025-12-15 18:39:45.158175", "stderr": "", "stderr_lines": [], "stdout": " 18:39:45 up 18 days, 21:34, 0 user, load average: 0.43, 0.45, 0.44", "stdout_lines": [" 18:39:45 up 18 days, 21:34, 0 user, load average: 0.43, 0.45, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003965", "end": "2025-12-15 18:39:51.137892", "msg": "", "rc": 0, "start": "2025-12-15 18:39:51.133927", "stderr": "", "stderr_lines": [], "stdout": " 18:39:51 up 15 days, 7:55, 0 user, load average: 0.16, 0.16, 0.17", "stdout_lines": [" 18:39:51 up 15 days, 7:55, 0 user, load average: 0.16, 0.16, 0.17"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004596", "end": "2025-12-15 15:40:13.114449", "msg": "", "rc": 0, "start": "2025-12-15 15:40:13.109853", "stderr": "", "stderr_lines": [], "stdout": " 3:40PM up 20 days, 5:30, 1 user, load averages: 0.25, 0.25, 0.24", "stdout_lines": [" 3:40PM up 20 days, 5:30, 1 user, load averages: 0.25, 0.25, 0.24"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007461", "end": "2025-12-15 18:40:13.607769", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.600308", "stderr": "", "stderr_lines": [], "stdout": " 18:40:13 up 5:15, 1 user, load average: 1.08, 1.12, 1.15", "stdout_lines": [" 18:40:13 up 5:15, 1 user, load average: 1.08, 1.12, 1.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003992", "end": "2025-12-15 18:40:13.339654", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.335662", "stderr": "", "stderr_lines": [], "stdout": " 18:40:13 up 1 day, 8:11, 1 user, load average: 0.13, 0.12, 0.14", "stdout_lines": [" 18:40:13 up 1 day, 8:11, 1 user, load average: 0.13, 0.12, 0.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019643", "end": "2025-12-15 18:40:13.325492", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.305849", "stderr": "", "stderr_lines": [], "stdout": " 18:40:13 up 13 days, 8:06, 1 user, load average: 0.23, 0.16, 0.15", "stdout_lines": [" 18:40:13 up 13 days, 8:06, 1 user, load average: 0.23, 0.16, 0.15"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004392", "end": "2025-12-15 18:40:13.850348", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.845956", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004046", "end": "2025-12-15 18:40:13.880453", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.876407", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005123", "end": "2025-12-15 18:40:13.874758", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.869635", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004849", "end": "2025-12-15 18:40:13.902157", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.897308", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005416", "end": "2025-12-15 18:40:13.913312", "msg": "", "rc": 0, "start": "2025-12-15 18:40:13.907896", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005310", "end": "2025-12-15 18:39:49.795361", "msg": "", "rc": 0, "start": "2025-12-15 18:39:49.790051", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005594", "end": "2025-12-15 18:39:43.931215", "msg": "", "rc": 0, "start": "2025-12-15 18:39:43.925621", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010711", "end": "2025-12-15 18:40:14.599666", "msg": "", "rc": 0, "start": "2025-12-15 18:40:14.588955", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011873", "end": "2025-12-15 18:40:14.643507", "msg": "", "rc": 0, "start": "2025-12-15 18:40:14.631634", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006406", "end": "2025-12-15 18:40:14.839321", "msg": "", "rc": 0, "start": "2025-12-15 18:40:14.832915", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005920", "end": "2025-12-15 18:39:47.119515", "msg": "", "rc": 0, "start": "2025-12-15 18:39:47.113595", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005114", "end": "2025-12-15 18:39:53.139217", "msg": "", "rc": 0, "start": "2025-12-15 18:39:53.134103", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005788", "end": "2025-12-15 15:40:15.110788", "msg": "", "rc": 0, "start": "2025-12-15 15:40:15.105000", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005534", "end": "2025-12-15 18:40:15.266849", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.261315", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019946", "end": "2025-12-15 18:40:15.570652", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.550706", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025225", "end": "2025-12-15 18:40:15.239005", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.213780", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004630", "end": "2025-12-15 18:40:15.784438", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.779808", "stderr": "", "stderr_lines": [], "stdout": "79.0%", "stdout_lines": ["79.0%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004225", "end": "2025-12-15 18:40:15.797472", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.793247", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004718", "end": "2025-12-15 18:40:15.819828", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.815110", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005908", "end": "2025-12-15 18:40:15.837355", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.831447", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005020", "end": "2025-12-15 18:40:15.861014", "msg": "", "rc": 0, "start": "2025-12-15 18:40:15.855994", "stderr": "", "stderr_lines": [], "stdout": "49.1%", "stdout_lines": ["49.1%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003668", "end": "2025-12-15 18:39:51.711342", "msg": "", "rc": 0, "start": "2025-12-15 18:39:51.707674", "stderr": "", "stderr_lines": [], "stdout": "71.1%", "stdout_lines": ["71.1%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004260", "end": "2025-12-15 18:39:45.874949", "msg": "", "rc": 0, "start": "2025-12-15 18:39:45.870689", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010973", "end": "2025-12-15 18:40:16.494509", "msg": "", "rc": 0, "start": "2025-12-15 18:40:16.483536", "stderr": "", "stderr_lines": [], "stdout": "6.7%", "stdout_lines": ["6.7%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012170", "end": "2025-12-15 18:40:16.516585", "msg": "", "rc": 0, "start": "2025-12-15 18:40:16.504415", "stderr": "", "stderr_lines": [], "stdout": "12.6%", "stdout_lines": ["12.6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005712", "end": "2025-12-15 18:40:16.757455", "msg": "", "rc": 0, "start": "2025-12-15 18:40:16.751743", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004369", "end": "2025-12-15 18:39:49.039080", "msg": "", "rc": 0, "start": "2025-12-15 18:39:49.034711", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005357", "end": "2025-12-15 15:40:16.983889", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:40:16.978532", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003501", "end": "2025-12-15 18:39:55.028781", "msg": "", "rc": 0, "start": "2025-12-15 18:39:55.025280", "stderr": "", "stderr_lines": [], "stdout": "55.8%", "stdout_lines": ["55.8%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005394", "end": "2025-12-15 18:40:17.188684", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.183290", "stderr": "", "stderr_lines": [], "stdout": "13.5%", "stdout_lines": ["13.5%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.009119", "end": "2025-12-15 18:40:17.428145", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.419026", "stderr": "", "stderr_lines": [], "stdout": "12.7%", "stdout_lines": ["12.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025719", "end": "2025-12-15 18:40:17.190321", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.164602", "stderr": "", "stderr_lines": [], "stdout": "19.4%", "stdout_lines": ["19.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005182", "end": "2025-12-15 18:40:17.716957", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.711775", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004766", "end": "2025-12-15 18:40:17.721082", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.716316", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005739", "end": "2025-12-15 18:40:17.749469", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.743730", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003161", "end": "2025-12-15 18:40:17.758300", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.755139", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006696", "end": "2025-12-15 18:40:17.777793", "msg": "", "rc": 0, "start": "2025-12-15 18:40:17.771097", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002651", "end": "2025-12-15 18:39:53.636069", "msg": "", "rc": 0, "start": "2025-12-15 18:39:53.633418", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003375", "end": "2025-12-15 18:39:47.786772", "msg": "", "rc": 0, "start": "2025-12-15 18:39:47.783397", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011854", "end": "2025-12-15 18:40:18.413883", "msg": "", "rc": 0, "start": "2025-12-15 18:40:18.402029", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012974", "end": "2025-12-15 18:40:18.445283", "msg": "", "rc": 0, "start": "2025-12-15 18:40:18.432309", "stderr": "", "stderr_lines": [], "stdout": "37.0°C", "stdout_lines": ["37.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003321", "end": "2025-12-15 18:40:18.677853", "msg": "", "rc": 0, "start": "2025-12-15 18:40:18.674532", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003207", "end": "2025-12-15 18:39:50.972680", "msg": "", "rc": 0, "start": "2025-12-15 18:39:50.969473", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002747", "end": "2025-12-15 18:39:56.945970", "msg": "", "rc": 0, "start": "2025-12-15 18:39:56.943223", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004623", "end": "2025-12-15 15:40:18.913429", "msg": "", "rc": 0, "start": "2025-12-15 15:40:18.908806", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002922", "end": "2025-12-15 18:40:19.100613", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.097691", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003932", "end": "2025-12-15 18:40:19.330306", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.326374", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028665", "end": "2025-12-15 18:40:19.118942", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.090277", "stderr": "", "stderr_lines": [], "stdout": "35.8°C", "stdout_lines": ["35.8°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004231", "end": "2025-12-15 18:40:19.651506", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.647275", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004021", "end": "2025-12-15 18:40:19.671809", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.667788", "stderr": "", "stderr_lines": [], "stdout": "1.13", "stdout_lines": ["1.13"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004762", "end": "2025-12-15 18:40:19.676038", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.671276", "stderr": "", "stderr_lines": [], "stdout": "0.91", "stdout_lines": ["0.91"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005149", "end": "2025-12-15 18:40:19.701774", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.696625", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005624", "end": "2025-12-15 18:40:19.718039", "msg": "", "rc": 0, "start": "2025-12-15 18:40:19.712415", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004988", "end": "2025-12-15 18:39:55.554036", "msg": "", "rc": 0, "start": "2025-12-15 18:39:55.549048", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004901", "end": "2025-12-15 18:39:49.734298", "msg": "", "rc": 0, "start": "2025-12-15 18:39:49.729397", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010136", "end": "2025-12-15 18:40:20.414597", "msg": "", "rc": 0, "start": "2025-12-15 18:40:20.404461", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011209", "end": "2025-12-15 18:40:20.486602", "msg": "", "rc": 0, "start": "2025-12-15 18:40:20.475393", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005583", "end": "2025-12-15 18:40:20.606984", "msg": "", "rc": 0, "start": "2025-12-15 18:40:20.601401", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005273", "end": "2025-12-15 18:39:52.900920", "msg": "", "rc": 0, "start": "2025-12-15 18:39:52.895647", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004383", "end": "2025-12-15 18:39:58.947115", "msg": "", "rc": 0, "start": "2025-12-15 18:39:58.942732", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005802", "end": "2025-12-15 15:40:20.955748", "msg": "", "rc": 0, "start": "2025-12-15 15:40:20.949946", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005241", "end": "2025-12-15 18:40:21.038605", "msg": "", "rc": 0, "start": "2025-12-15 18:40:21.033364", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.008438", "end": "2025-12-15 18:40:21.288841", "msg": "", "rc": 0, "start": "2025-12-15 18:40:21.280403", "stderr": "", "stderr_lines": [], "stdout": "1.15", "stdout_lines": ["1.15"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024348", "end": "2025-12-15 18:40:21.029145", "msg": "", "rc": 0, "start": "2025-12-15 18:40:21.004797", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:11 up 20 days, 5:31, 1 user, load average: 0.28, 0.18, 0.17\nDisk Usage: 23%\nMemory Usage: 79.0%\nCPU Load: 0.26\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:11 up 1 day, 8:12, 1 user, load average: 0.98, 0.74, 0.51\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 1.13\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:11 up 20 days, 5:51, 1 user, load average: 0.72, 0.60, 0.59\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.91\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:11 up 20 days, 7:04, 1 user, load average: 0.56, 0.59, 0.63\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.63\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:11 up 20 days, 7:50, 1 user, load average: 0.09, 0.10, 0.06\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:13 up 13 days, 8:06, 1 user, load average: 0.23, 0.16, 0.15\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.27\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:12 up 192 days, 10:13, 1 user, load average: 0.31, 0.31, 0.28\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.41\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:12 up 192 days, 10:13, 1 user, load average: 0.20, 0.16, 0.17\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.17\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:39:47 up 9 days, 6:29, 0 user, load average: 0.09, 0.19, 0.17\nDisk Usage: 48%\nMemory Usage: 71.1%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:39:41 up 16 days, 2:41, 0 user, load average: 0.03, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:12 up 1 day, 8:11, 1 user, load average: 0.04, 0.04, 0.00\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:39:45 up 18 days, 21:34, 0 user, load average: 0.43, 0.45, 0.44\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.39\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:39:51 up 15 days, 7:55, 0 user, load average: 0.16, 0.16, 0.17\nDisk Usage: 75%\nMemory Usage: 55.8%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:40PM up 20 days, 5:30, 1 user, load averages: 0.25, 0.25, 0.24\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:13 up 1 day, 8:11, 1 user, load average: 0.13, 0.12, 0.14\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:40:13 up 5:15, 1 user, load average: 1.08, 1.12, 1.15\nDisk Usage: 1%\nMemory Usage: 12.7%\nCPU Load: 1.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:40:22.098461+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `57099305cc0d4ab187776a75a8fb112a` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:45:00.000781+00:00 |
| **Fin** | 2025-12-15T23:45:22.793100+00:00 |
| **Durée** | 22.8s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [dev.prod.home]
ok: [hp.truenas.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003158", "end": "2025-12-15 18:45:11.779363", "msg": "", "rc": 0, "start": "2025-12-15 18:45:11.776205", "stderr": "", "stderr_lines": [], "stdout": " 18:45:11 up 20 days, 5:36, 1 user, load average: 0.21, 0.17, 0.17", "stdout_lines": [" 18:45:11 up 20 days, 5:36, 1 user, load average: 0.21, 0.17, 0.17"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003784", "end": "2025-12-15 18:45:11.792107", "msg": "", "rc": 0, "start": "2025-12-15 18:45:11.788323", "stderr": "", "stderr_lines": [], "stdout": " 18:45:11 up 20 days, 7:55, 1 user, load average: 0.05, 0.07, 0.05", "stdout_lines": [" 18:45:11 up 20 days, 7:55, 1 user, load average: 0.05, 0.07, 0.05"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003409", "end": "2025-12-15 18:45:11.798509", "msg": "", "rc": 0, "start": "2025-12-15 18:45:11.795100", "stderr": "", "stderr_lines": [], "stdout": " 18:45:11 up 20 days, 5:56, 1 user, load average: 0.53, 0.60, 0.60", "stdout_lines": [" 18:45:11 up 20 days, 5:56, 1 user, load average: 0.53, 0.60, 0.60"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003771", "end": "2025-12-15 18:45:11.810902", "msg": "", "rc": 0, "start": "2025-12-15 18:45:11.807131", "stderr": "", "stderr_lines": [], "stdout": " 18:45:11 up 20 days, 7:09, 1 user, load average: 0.69, 0.63, 0.64", "stdout_lines": [" 18:45:11 up 20 days, 7:09, 1 user, load average: 0.69, 0.63, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002818", "end": "2025-12-15 18:45:11.817281", "msg": "", "rc": 0, "start": "2025-12-15 18:45:11.814463", "stderr": "", "stderr_lines": [], "stdout": " 18:45:11 up 1 day, 8:17, 1 user, load average: 0.83, 0.90, 0.65", "stdout_lines": [" 18:45:11 up 1 day, 8:17, 1 user, load average: 0.83, 0.90, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002855", "end": "2025-12-15 18:44:47.687773", "msg": "", "rc": 0, "start": "2025-12-15 18:44:47.684918", "stderr": "", "stderr_lines": [], "stdout": " 18:44:47 up 9 days, 6:34, 0 user, load average: 0.12, 0.15, 0.17", "stdout_lines": [" 18:44:47 up 9 days, 6:34, 0 user, load average: 0.12, 0.15, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003166", "end": "2025-12-15 18:44:41.837785", "msg": "", "rc": 0, "start": "2025-12-15 18:44:41.834619", "stderr": "", "stderr_lines": [], "stdout": " 18:44:41 up 16 days, 2:46, 0 user, load average: 0.15, 0.12, 0.04", "stdout_lines": [" 18:44:41 up 16 days, 2:46, 0 user, load average: 0.15, 0.12, 0.04"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008614", "end": "2025-12-15 18:45:12.455239", "msg": "", "rc": 0, "start": "2025-12-15 18:45:12.446625", "stderr": "", "stderr_lines": [], "stdout": " 18:45:12 up 192 days, 10:18, 1 user, load average: 0.06, 0.11, 0.15", "stdout_lines": [" 18:45:12 up 192 days, 10:18, 1 user, load average: 0.06, 0.11, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009398", "end": "2025-12-15 18:45:12.506632", "msg": "", "rc": 0, "start": "2025-12-15 18:45:12.497234", "stderr": "", "stderr_lines": [], "stdout": " 18:45:12 up 192 days, 10:18, 1 user, load average: 0.54, 0.34, 0.29", "stdout_lines": [" 18:45:12 up 192 days, 10:18, 1 user, load average: 0.54, 0.34, 0.29"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004971", "end": "2025-12-15 18:45:12.754689", "msg": "", "rc": 0, "start": "2025-12-15 18:45:12.749718", "stderr": "", "stderr_lines": [], "stdout": " 18:45:12 up 1 day, 8:16, 1 user, load average: 0.08, 0.04, 0.01", "stdout_lines": [" 18:45:12 up 1 day, 8:16, 1 user, load average: 0.08, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003299", "end": "2025-12-15 18:44:45.010987", "msg": "", "rc": 0, "start": "2025-12-15 18:44:45.007688", "stderr": "", "stderr_lines": [], "stdout": " 18:44:45 up 18 days, 21:39, 0 user, load average: 0.59, 0.53, 0.47", "stdout_lines": [" 18:44:45 up 18 days, 21:39, 0 user, load average: 0.59, 0.53, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003274", "end": "2025-12-15 18:44:50.984861", "msg": "", "rc": 0, "start": "2025-12-15 18:44:50.981587", "stderr": "", "stderr_lines": [], "stdout": " 18:44:50 up 15 days, 8:00, 0 user, load average: 0.05, 0.09, 0.14", "stdout_lines": [" 18:44:50 up 15 days, 8:00, 0 user, load average: 0.05, 0.09, 0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004272", "end": "2025-12-15 15:45:12.961244", "msg": "", "rc": 0, "start": "2025-12-15 15:45:12.956972", "stderr": "", "stderr_lines": [], "stdout": " 3:45PM up 20 days, 5:35, 1 user, load averages: 0.19, 0.21, 0.22", "stdout_lines": [" 3:45PM up 20 days, 5:35, 1 user, load averages: 0.19, 0.21, 0.22"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008383", "end": "2025-12-15 18:45:13.370603", "msg": "", "rc": 0, "start": "2025-12-15 18:45:13.362220", "stderr": "", "stderr_lines": [], "stdout": " 18:45:13 up 5:20, 1 user, load average: 1.38, 1.15, 1.14", "stdout_lines": [" 18:45:13 up 5:20, 1 user, load average: 1.38, 1.15, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019390", "end": "2025-12-15 18:45:13.176706", "msg": "", "rc": 0, "start": "2025-12-15 18:45:13.157316", "stderr": "", "stderr_lines": [], "stdout": " 18:45:13 up 13 days, 8:11, 1 user, load average: 0.23, 0.15, 0.14", "stdout_lines": [" 18:45:13 up 13 days, 8:11, 1 user, load average: 0.23, 0.15, 0.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005483", "end": "2025-12-15 18:45:14.189253", "msg": "", "rc": 0, "start": "2025-12-15 18:45:13.183770", "stderr": "", "stderr_lines": [], "stdout": " 18:45:13 up 1 day, 8:16, 1 user, load average: 0.01, 0.09, 0.13", "stdout_lines": [" 18:45:13 up 1 day, 8:16, 1 user, load average: 0.01, 0.09, 0.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004378", "end": "2025-12-15 18:45:14.601014", "msg": "", "rc": 0, "start": "2025-12-15 18:45:14.596636", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004026", "end": "2025-12-15 18:45:14.633701", "msg": "", "rc": 0, "start": "2025-12-15 18:45:14.629675", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004489", "end": "2025-12-15 18:45:14.633386", "msg": "", "rc": 0, "start": "2025-12-15 18:45:14.628897", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004268", "end": "2025-12-15 18:45:14.666121", "msg": "", "rc": 0, "start": "2025-12-15 18:45:14.661853", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005563", "end": "2025-12-15 18:45:14.686974", "msg": "", "rc": 0, "start": "2025-12-15 18:45:14.681411", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005126", "end": "2025-12-15 18:44:50.547263", "msg": "", "rc": 0, "start": "2025-12-15 18:44:50.542137", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005604", "end": "2025-12-15 18:44:44.703126", "msg": "", "rc": 0, "start": "2025-12-15 18:44:44.697522", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010773", "end": "2025-12-15 18:45:15.391359", "msg": "", "rc": 0, "start": "2025-12-15 18:45:15.380586", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011764", "end": "2025-12-15 18:45:15.455552", "msg": "", "rc": 0, "start": "2025-12-15 18:45:15.443788", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005796", "end": "2025-12-15 18:45:15.602379", "msg": "", "rc": 0, "start": "2025-12-15 18:45:15.596583", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005532", "end": "2025-12-15 18:44:47.870408", "msg": "", "rc": 0, "start": "2025-12-15 18:44:47.864876", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006064", "end": "2025-12-15 18:44:53.936451", "msg": "", "rc": 0, "start": "2025-12-15 18:44:53.930387", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005363", "end": "2025-12-15 15:45:15.929952", "msg": "", "rc": 0, "start": "2025-12-15 15:45:15.924589", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005470", "end": "2025-12-15 18:45:16.036116", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.030646", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018815", "end": "2025-12-15 18:45:16.239243", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.220428", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025368", "end": "2025-12-15 18:45:15.987968", "msg": "", "rc": 0, "start": "2025-12-15 18:45:15.962600", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004541", "end": "2025-12-15 18:45:16.522217", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.517676", "stderr": "", "stderr_lines": [], "stdout": "79.4%", "stdout_lines": ["79.4%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004133", "end": "2025-12-15 18:45:16.545747", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.541614", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004772", "end": "2025-12-15 18:45:16.550609", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.545837", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.0%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004618", "end": "2025-12-15 18:45:16.570322", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.565704", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005688", "end": "2025-12-15 18:45:16.578014", "msg": "", "rc": 0, "start": "2025-12-15 18:45:16.572326", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003570", "end": "2025-12-15 18:44:52.459449", "msg": "", "rc": 0, "start": "2025-12-15 18:44:52.455879", "stderr": "", "stderr_lines": [], "stdout": "70.9%", "stdout_lines": ["70.9%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004343", "end": "2025-12-15 18:44:46.603662", "msg": "", "rc": 0, "start": "2025-12-15 18:44:46.599319", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010930", "end": "2025-12-15 18:45:17.231438", "msg": "", "rc": 0, "start": "2025-12-15 18:45:17.220508", "stderr": "", "stderr_lines": [], "stdout": "6.9%", "stdout_lines": ["6.9%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012128", "end": "2025-12-15 18:45:17.280046", "msg": "", "rc": 0, "start": "2025-12-15 18:45:17.267918", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.006626", "end": "2025-12-15 18:45:17.525205", "msg": "", "rc": 0, "start": "2025-12-15 18:45:17.518579", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004294", "end": "2025-12-15 18:44:49.769954", "msg": "", "rc": 0, "start": "2025-12-15 18:44:49.765660", "stderr": "", "stderr_lines": [], "stdout": "25.7%", "stdout_lines": ["25.7%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003519", "end": "2025-12-15 18:44:55.774604", "msg": "", "rc": 0, "start": "2025-12-15 18:44:55.771085", "stderr": "", "stderr_lines": [], "stdout": "55.4%", "stdout_lines": ["55.4%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005160", "end": "2025-12-15 15:45:17.752578", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:45:17.747418", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005455", "end": "2025-12-15 18:45:17.964159", "msg": "", "rc": 0, "start": "2025-12-15 18:45:17.958704", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.4%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.008515", "end": "2025-12-15 18:45:18.137158", "msg": "", "rc": 0, "start": "2025-12-15 18:45:18.128643", "stderr": "", "stderr_lines": [], "stdout": "12.7%", "stdout_lines": ["12.7%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025456", "end": "2025-12-15 18:45:17.912555", "msg": "", "rc": 0, "start": "2025-12-15 18:45:17.887099", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.1%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005139", "end": "2025-12-15 18:45:18.429382", "msg": "", "rc": 0, "start": "2025-12-15 18:45:18.424243", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004905", "end": "2025-12-15 18:45:18.434488", "msg": "", "rc": 0, "start": "2025-12-15 18:45:18.429583", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006710", "end": "2025-12-15 18:45:18.448758", "msg": "", "rc": 0, "start": "2025-12-15 18:45:18.442048", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003651", "end": "2025-12-15 18:45:18.480335", "msg": "", "rc": 0, "start": "2025-12-15 18:45:18.476684", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006709", "end": "2025-12-15 18:45:18.492545", "msg": "", "rc": 0, "start": "2025-12-15 18:45:18.485836", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002458", "end": "2025-12-15 18:44:54.333860", "msg": "", "rc": 0, "start": "2025-12-15 18:44:54.331402", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003232", "end": "2025-12-15 18:44:48.501052", "msg": "", "rc": 0, "start": "2025-12-15 18:44:48.497820", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011841", "end": "2025-12-15 18:45:19.136694", "msg": "", "rc": 0, "start": "2025-12-15 18:45:19.124853", "stderr": "", "stderr_lines": [], "stdout": "32.1°C", "stdout_lines": ["32.1°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013043", "end": "2025-12-15 18:45:19.159026", "msg": "", "rc": 0, "start": "2025-12-15 18:45:19.145983", "stderr": "", "stderr_lines": [], "stdout": "36.0°C", "stdout_lines": ["36.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003171", "end": "2025-12-15 18:45:19.379525", "msg": "", "rc": 0, "start": "2025-12-15 18:45:19.376354", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003173", "end": "2025-12-15 18:44:51.678340", "msg": "", "rc": 0, "start": "2025-12-15 18:44:51.675167", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004166", "end": "2025-12-15 15:45:19.620568", "msg": "", "rc": 0, "start": "2025-12-15 15:45:19.616402", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002824", "end": "2025-12-15 18:44:57.663093", "msg": "", "rc": 0, "start": "2025-12-15 18:44:57.660269", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002932", "end": "2025-12-15 18:45:19.800458", "msg": "", "rc": 0, "start": "2025-12-15 18:45:19.797526", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004034", "end": "2025-12-15 18:45:20.026192", "msg": "", "rc": 0, "start": "2025-12-15 18:45:20.022158", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028524", "end": "2025-12-15 18:45:19.814232", "msg": "", "rc": 0, "start": "2025-12-15 18:45:19.785708", "stderr": "", "stderr_lines": [], "stdout": "35.8°C", "stdout_lines": ["35.8°C"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004214", "end": "2025-12-15 18:45:20.343254", "msg": "", "rc": 0, "start": "2025-12-15 18:45:20.339040", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004040", "end": "2025-12-15 18:45:20.349366", "msg": "", "rc": 0, "start": "2025-12-15 18:45:20.345326", "stderr": "", "stderr_lines": [], "stdout": "0.85", "stdout_lines": ["0.85"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004786", "end": "2025-12-15 18:45:20.360056", "msg": "", "rc": 0, "start": "2025-12-15 18:45:20.355270", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004126", "end": "2025-12-15 18:45:20.381678", "msg": "", "rc": 0, "start": "2025-12-15 18:45:20.377552", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005359", "end": "2025-12-15 18:45:20.401441", "msg": "", "rc": 0, "start": "2025-12-15 18:45:20.396082", "stderr": "", "stderr_lines": [], "stdout": "0.66", "stdout_lines": ["0.66"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004519", "end": "2025-12-15 18:44:56.266994", "msg": "", "rc": 0, "start": "2025-12-15 18:44:56.262475", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004941", "end": "2025-12-15 18:44:50.423941", "msg": "", "rc": 0, "start": "2025-12-15 18:44:50.419000", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010216", "end": "2025-12-15 18:45:21.112110", "msg": "", "rc": 0, "start": "2025-12-15 18:45:21.101894", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011163", "end": "2025-12-15 18:45:21.164016", "msg": "", "rc": 0, "start": "2025-12-15 18:45:21.152853", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005519", "end": "2025-12-15 18:45:21.324751", "msg": "", "rc": 0, "start": "2025-12-15 18:45:21.319232", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004848", "end": "2025-12-15 18:44:53.591238", "msg": "", "rc": 0, "start": "2025-12-15 18:44:53.586390", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004241", "end": "2025-12-15 18:44:59.658576", "msg": "", "rc": 0, "start": "2025-12-15 18:44:59.654335", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006211", "end": "2025-12-15 15:45:21.623073", "msg": "", "rc": 0, "start": "2025-12-15 15:45:21.616862", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005337", "end": "2025-12-15 18:45:21.750647", "msg": "", "rc": 0, "start": "2025-12-15 18:45:21.745310", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.009411", "end": "2025-12-15 18:45:21.956503", "msg": "", "rc": 0, "start": "2025-12-15 18:45:21.947092", "stderr": "", "stderr_lines": [], "stdout": "1.43", "stdout_lines": ["1.43"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024453", "end": "2025-12-15 18:45:21.737182", "msg": "", "rc": 0, "start": "2025-12-15 18:45:21.712729", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:11 up 1 day, 8:17, 1 user, load average: 0.83, 0.90, 0.65\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.85\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:11 up 20 days, 5:36, 1 user, load average: 0.21, 0.17, 0.17\nDisk Usage: 23%\nMemory Usage: 79.4%\nCPU Load: 0.27\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:11 up 20 days, 5:56, 1 user, load average: 0.53, 0.60, 0.60\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.52\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:11 up 20 days, 7:09, 1 user, load average: 0.69, 0.63, 0.64\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.66\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:11 up 20 days, 7:55, 1 user, load average: 0.05, 0.07, 0.05\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:13 up 13 days, 8:11, 1 user, load average: 0.23, 0.15, 0.14\nDisk Usage: 21%\nMemory Usage: 20.1%\nCPU Load: 0.28\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:12 up 192 days, 10:18, 1 user, load average: 0.54, 0.34, 0.29\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.53\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:12 up 192 days, 10:18, 1 user, load average: 0.06, 0.11, 0.15\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.12\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:44:47 up 9 days, 6:34, 0 user, load average: 0.12, 0.15, 0.17\nDisk Usage: 48%\nMemory Usage: 70.9%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:44:41 up 16 days, 2:46, 0 user, load average: 0.15, 0.12, 0.04\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:44:45 up 18 days, 21:39, 0 user, load average: 0.59, 0.53, 0.47\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.50\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:12 up 1 day, 8:16, 1 user, load average: 0.08, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:44:50 up 15 days, 8:00, 0 user, load average: 0.05, 0.09, 0.14\nDisk Usage: 75%\nMemory Usage: 55.4%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:45PM up 20 days, 5:35, 1 user, load averages: 0.19, 0.21, 0.22\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:13 up 1 day, 8:16, 1 user, load average: 0.01, 0.09, 0.13\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:45:13 up 5:20, 1 user, load average: 1.38, 1.15, 1.14\nDisk Usage: 1%\nMemory Usage: 12.7%\nCPU Load: 1.43\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:45:22.825015+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `5e197fc12e164b198f47e5e70ea7aa0d` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:50:00.001523+00:00 |
| **Fin** | 2025-12-15T23:50:24.739332+00:00 |
| **Durée** | 24.7s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [hp2.i7.home]
ok: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003678", "end": "2025-12-15 18:50:13.165220", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.161542", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 20 days, 8:00, 1 user, load average: 0.15, 0.09, 0.06", "stdout_lines": [" 18:50:13 up 20 days, 8:00, 1 user, load average: 0.15, 0.09, 0.06"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003343", "end": "2025-12-15 18:50:13.176887", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.173544", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 20 days, 6:01, 1 user, load average: 0.53, 0.63, 0.62", "stdout_lines": [" 18:50:13 up 20 days, 6:01, 1 user, load average: 0.53, 0.63, 0.62"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003213", "end": "2025-12-15 18:50:13.196730", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.193517", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 1 day, 8:22, 1 user, load average: 1.06, 1.13, 0.83", "stdout_lines": [" 18:50:13 up 1 day, 8:22, 1 user, load average: 1.06, 1.13, 0.83"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003903", "end": "2025-12-15 18:50:13.192360", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.188457", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 20 days, 7:14, 1 user, load average: 1.27, 0.90, 0.74", "stdout_lines": [" 18:50:13 up 20 days, 7:14, 1 user, load average: 1.27, 0.90, 0.74"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003235", "end": "2025-12-15 18:49:49.128368", "msg": "", "rc": 0, "start": "2025-12-15 18:49:49.125133", "stderr": "", "stderr_lines": [], "stdout": " 18:49:49 up 9 days, 6:39, 0 user, load average: 0.02, 0.09, 0.14", "stdout_lines": [" 18:49:49 up 9 days, 6:39, 0 user, load average: 0.02, 0.09, 0.14"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008505", "end": "2025-12-15 18:50:13.913361", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.904856", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 192 days, 10:23, 1 user, load average: 0.20, 0.15, 0.16", "stdout_lines": [" 18:50:13 up 192 days, 10:23, 1 user, load average: 0.20, 0.15, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009336", "end": "2025-12-15 18:50:13.945731", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.936395", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 192 days, 10:23, 1 user, load average: 0.55, 0.43, 0.32", "stdout_lines": [" 18:50:13 up 192 days, 10:23, 1 user, load average: 0.55, 0.43, 0.32"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004154", "end": "2025-12-15 18:50:14.162095", "msg": "", "rc": 0, "start": "2025-12-15 18:50:13.157941", "stderr": "", "stderr_lines": [], "stdout": " 18:50:13 up 20 days, 5:41, 1 user, load average: 0.08, 0.14, 0.16", "stdout_lines": [" 18:50:13 up 20 days, 5:41, 1 user, load average: 0.08, 0.14, 0.16"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003607", "end": "2025-12-15 18:49:43.757284", "msg": "", "rc": 0, "start": "2025-12-15 18:49:43.753677", "stderr": "", "stderr_lines": [], "stdout": " 18:49:43 up 16 days, 2:51, 0 user, load average: 0.01, 0.06, 0.02", "stdout_lines": [" 18:49:43 up 16 days, 2:51, 0 user, load average: 0.01, 0.06, 0.02"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004681", "end": "2025-12-15 18:50:14.465932", "msg": "", "rc": 0, "start": "2025-12-15 18:50:14.461251", "stderr": "", "stderr_lines": [], "stdout": " 18:50:14 up 1 day, 8:21, 1 user, load average: 0.01, 0.05, 0.02", "stdout_lines": [" 18:50:14 up 1 day, 8:21, 1 user, load average: 0.01, 0.05, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003579", "end": "2025-12-15 18:49:46.651963", "msg": "", "rc": 0, "start": "2025-12-15 18:49:46.648384", "stderr": "", "stderr_lines": [], "stdout": " 18:49:46 up 18 days, 21:44, 0 user, load average: 0.39, 0.41, 0.43", "stdout_lines": [" 18:49:46 up 18 days, 21:44, 0 user, load average: 0.39, 0.41, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003068", "end": "2025-12-15 18:49:52.682010", "msg": "", "rc": 0, "start": "2025-12-15 18:49:52.678942", "stderr": "", "stderr_lines": [], "stdout": " 18:49:52 up 15 days, 8:05, 0 user, load average: 0.17, 0.14, 0.13", "stdout_lines": [" 18:49:52 up 15 days, 8:05, 0 user, load average: 0.17, 0.14, 0.13"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019678", "end": "2025-12-15 18:50:14.605069", "msg": "", "rc": 0, "start": "2025-12-15 18:50:14.585391", "stderr": "", "stderr_lines": [], "stdout": " 18:50:14 up 13 days, 8:16, 1 user, load average: 0.16, 0.14, 0.14", "stdout_lines": [" 18:50:14 up 13 days, 8:16, 1 user, load average: 0.16, 0.14, 0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004262", "end": "2025-12-15 15:50:14.738142", "msg": "", "rc": 0, "start": "2025-12-15 15:50:14.733880", "stderr": "", "stderr_lines": [], "stdout": " 3:50PM up 20 days, 5:40, 1 user, load averages: 0.52, 0.35, 0.27", "stdout_lines": [" 3:50PM up 20 days, 5:40, 1 user, load averages: 0.52, 0.35, 0.27"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003858", "end": "2025-12-15 18:50:14.937822", "msg": "", "rc": 0, "start": "2025-12-15 18:50:14.933964", "stderr": "", "stderr_lines": [], "stdout": " 18:50:14 up 1 day, 8:21, 1 user, load average: 0.00, 0.03, 0.08", "stdout_lines": [" 18:50:14 up 1 day, 8:21, 1 user, load average: 0.00, 0.03, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019932", "end": "2025-12-15 18:50:15.135124", "msg": "", "rc": 0, "start": "2025-12-15 18:50:15.115192", "stderr": "", "stderr_lines": [], "stdout": " 18:50:15 up 5:25, 1 user, load average: 1.46, 1.25, 1.18", "stdout_lines": [" 18:50:15 up 5:25, 1 user, load average: 1.46, 1.25, 1.18"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004345", "end": "2025-12-15 18:50:15.411748", "msg": "", "rc": 0, "start": "2025-12-15 18:50:15.407403", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004149", "end": "2025-12-15 18:50:15.416755", "msg": "", "rc": 0, "start": "2025-12-15 18:50:15.412606", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005192", "end": "2025-12-15 18:50:15.468925", "msg": "", "rc": 0, "start": "2025-12-15 18:50:15.463733", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004696", "end": "2025-12-15 18:50:15.481903", "msg": "", "rc": 0, "start": "2025-12-15 18:50:15.477207", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005541", "end": "2025-12-15 18:50:15.500543", "msg": "", "rc": 0, "start": "2025-12-15 18:50:15.495002", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005207", "end": "2025-12-15 18:49:51.484373", "msg": "", "rc": 0, "start": "2025-12-15 18:49:51.479166", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005809", "end": "2025-12-15 18:49:45.589126", "msg": "", "rc": 0, "start": "2025-12-15 18:49:45.583317", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010912", "end": "2025-12-15 18:50:16.286789", "msg": "", "rc": 0, "start": "2025-12-15 18:50:16.275877", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011775", "end": "2025-12-15 18:50:16.299769", "msg": "", "rc": 0, "start": "2025-12-15 18:50:16.287994", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005824", "end": "2025-12-15 18:50:16.553009", "msg": "", "rc": 0, "start": "2025-12-15 18:50:16.547185", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005443", "end": "2025-12-15 18:49:48.802172", "msg": "", "rc": 0, "start": "2025-12-15 18:49:48.796729", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005993", "end": "2025-12-15 15:50:16.794835", "msg": "", "rc": 0, "start": "2025-12-15 15:50:16.788842", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005242", "end": "2025-12-15 18:49:54.860096", "msg": "", "rc": 0, "start": "2025-12-15 18:49:54.854854", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025300", "end": "2025-12-15 18:50:16.862336", "msg": "", "rc": 0, "start": "2025-12-15 18:50:16.837036", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005275", "end": "2025-12-15 18:50:17.037595", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.032320", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.032858", "end": "2025-12-15 18:50:17.358294", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.325436", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004079", "end": "2025-12-15 18:50:17.599974", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.595895", "stderr": "", "stderr_lines": [], "stdout": "21.7%", "stdout_lines": ["21.7%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004558", "end": "2025-12-15 18:50:17.627817", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.623259", "stderr": "", "stderr_lines": [], "stdout": "79.8%", "stdout_lines": ["79.8%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004852", "end": "2025-12-15 18:50:17.651777", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.646925", "stderr": "", "stderr_lines": [], "stdout": "9.0%", "stdout_lines": ["9.0%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005088", "end": "2025-12-15 18:50:17.649540", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.644452", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.2%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005606", "end": "2025-12-15 18:50:17.660154", "msg": "", "rc": 0, "start": "2025-12-15 18:50:17.654548", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003953", "end": "2025-12-15 18:49:53.599972", "msg": "", "rc": 0, "start": "2025-12-15 18:49:53.596019", "stderr": "", "stderr_lines": [], "stdout": "70.9%", "stdout_lines": ["70.9%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004521", "end": "2025-12-15 18:49:47.744408", "msg": "", "rc": 0, "start": "2025-12-15 18:49:47.739887", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010920", "end": "2025-12-15 18:50:18.372007", "msg": "", "rc": 0, "start": "2025-12-15 18:50:18.361087", "stderr": "", "stderr_lines": [], "stdout": "6.9%", "stdout_lines": ["6.9%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012153", "end": "2025-12-15 18:50:18.394417", "msg": "", "rc": 0, "start": "2025-12-15 18:50:18.382264", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005739", "end": "2025-12-15 18:50:18.673185", "msg": "", "rc": 0, "start": "2025-12-15 18:50:18.667446", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003822", "end": "2025-12-15 18:49:50.943291", "msg": "", "rc": 0, "start": "2025-12-15 18:49:50.939469", "stderr": "", "stderr_lines": [], "stdout": "25.8%", "stdout_lines": ["25.8%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003749", "end": "2025-12-15 18:49:56.941305", "msg": "", "rc": 0, "start": "2025-12-15 18:49:56.937556", "stderr": "", "stderr_lines": [], "stdout": "54.9%", "stdout_lines": ["54.9%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005471", "end": "2025-12-15 15:50:18.913301", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:50:18.907830", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005431", "end": "2025-12-15 18:50:19.114730", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.109299", "stderr": "", "stderr_lines": [], "stdout": "13.6%", "stdout_lines": ["13.6%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.026549", "end": "2025-12-15 18:50:19.033043", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.006494", "stderr": "", "stderr_lines": [], "stdout": "18.9%", "stdout_lines": ["18.9%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.009027", "end": "2025-12-15 18:50:19.490554", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.481527", "stderr": "", "stderr_lines": [], "stdout": "12.4%", "stdout_lines": ["12.4%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005128", "end": "2025-12-15 18:50:19.692586", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.687458", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004809", "end": "2025-12-15 18:50:19.700583", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.695774", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005877", "end": "2025-12-15 18:50:19.707142", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.701265", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003523", "end": "2025-12-15 18:50:19.748223", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.744700", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006251", "end": "2025-12-15 18:50:19.759483", "msg": "", "rc": 0, "start": "2025-12-15 18:50:19.753232", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002738", "end": "2025-12-15 18:49:55.658547", "msg": "", "rc": 0, "start": "2025-12-15 18:49:55.655809", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003095", "end": "2025-12-15 18:49:49.811142", "msg": "", "rc": 0, "start": "2025-12-15 18:49:49.808047", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.011717", "end": "2025-12-15 18:50:20.438801", "msg": "", "rc": 0, "start": "2025-12-15 18:50:20.427084", "stderr": "", "stderr_lines": [], "stdout": "32.6°C", "stdout_lines": ["32.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013121", "end": "2025-12-15 18:50:20.479535", "msg": "", "rc": 0, "start": "2025-12-15 18:50:20.466414", "stderr": "", "stderr_lines": [], "stdout": "37.0°C", "stdout_lines": ["37.0°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003125", "end": "2025-12-15 18:50:20.777651", "msg": "", "rc": 0, "start": "2025-12-15 18:50:20.774526", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003071", "end": "2025-12-15 18:49:53.014312", "msg": "", "rc": 0, "start": "2025-12-15 18:49:53.011241", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002657", "end": "2025-12-15 18:49:59.037066", "msg": "", "rc": 0, "start": "2025-12-15 18:49:59.034409", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004221", "end": "2025-12-15 15:50:21.027343", "msg": "", "rc": 0, "start": "2025-12-15 15:50:21.023122", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.029029", "end": "2025-12-15 18:50:21.150668", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.121639", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002950", "end": "2025-12-15 18:50:21.296800", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.293850", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004239", "end": "2025-12-15 18:50:21.571068", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.566829", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004302", "end": "2025-12-15 18:50:21.761958", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.757656", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004022", "end": "2025-12-15 18:50:21.785631", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.781609", "stderr": "", "stderr_lines": [], "stdout": "0.89", "stdout_lines": ["0.89"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004879", "end": "2025-12-15 18:50:21.791490", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.786611", "stderr": "", "stderr_lines": [], "stdout": "0.90", "stdout_lines": ["0.90"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005945", "end": "2025-12-15 18:50:21.830683", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.824738", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005602", "end": "2025-12-15 18:50:21.847919", "msg": "", "rc": 0, "start": "2025-12-15 18:50:21.842317", "stderr": "", "stderr_lines": [], "stdout": "1.17", "stdout_lines": ["1.17"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005296", "end": "2025-12-15 18:49:57.756857", "msg": "", "rc": 0, "start": "2025-12-15 18:49:57.751561", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005471", "end": "2025-12-15 18:49:51.932210", "msg": "", "rc": 0, "start": "2025-12-15 18:49:51.926739", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010204", "end": "2025-12-15 18:50:22.589318", "msg": "", "rc": 0, "start": "2025-12-15 18:50:22.579114", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011298", "end": "2025-12-15 18:50:22.651559", "msg": "", "rc": 0, "start": "2025-12-15 18:50:22.640261", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005518", "end": "2025-12-15 18:50:22.841579", "msg": "", "rc": 0, "start": "2025-12-15 18:50:22.836061", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005203", "end": "2025-12-15 18:49:55.127911", "msg": "", "rc": 0, "start": "2025-12-15 18:49:55.122708", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004586", "end": "2025-12-15 18:50:01.140734", "msg": "", "rc": 0, "start": "2025-12-15 18:50:01.136148", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005963", "end": "2025-12-15 15:50:23.160708", "msg": "", "rc": 0, "start": "2025-12-15 15:50:23.154745", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005278", "end": "2025-12-15 18:50:23.314634", "msg": "", "rc": 0, "start": "2025-12-15 18:50:23.309356", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024335", "end": "2025-12-15 18:50:23.210163", "msg": "", "rc": 0, "start": "2025-12-15 18:50:23.185828", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.008144", "end": "2025-12-15 18:50:23.706445", "msg": "", "rc": 0, "start": "2025-12-15 18:50:23.698301", "stderr": "", "stderr_lines": [], "stdout": "1.58", "stdout_lines": ["1.58"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 1 day, 8:22, 1 user, load average: 1.06, 1.13, 0.83\nDisk Usage: 22%\nMemory Usage: 21.7%\nCPU Load: 0.89\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 20 days, 6:01, 1 user, load average: 0.53, 0.63, 0.62\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.90\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 20 days, 5:41, 1 user, load average: 0.08, 0.14, 0.16\nDisk Usage: 23%\nMemory Usage: 79.8%\nCPU Load: 0.23\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 20 days, 7:14, 1 user, load average: 1.27, 0.90, 0.74\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 1.17\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 20 days, 8:00, 1 user, load average: 0.15, 0.09, 0.06\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:14 up 13 days, 8:16, 1 user, load average: 0.16, 0.14, 0.14\nDisk Usage: 21%\nMemory Usage: 18.9%\nCPU Load: 0.21\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 192 days, 10:23, 1 user, load average: 0.55, 0.43, 0.32\nDisk Usage: 6%\nMemory Usage: 12.4%\nCPU Load: 0.62\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:13 up 192 days, 10:23, 1 user, load average: 0.20, 0.15, 0.16\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.25\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:49:49 up 9 days, 6:39, 0 user, load average: 0.02, 0.09, 0.14\nDisk Usage: 48%\nMemory Usage: 70.9%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:49:43 up 16 days, 2:51, 0 user, load average: 0.01, 0.06, 0.02\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:14 up 1 day, 8:21, 1 user, load average: 0.01, 0.05, 0.02\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:49:46 up 18 days, 21:44, 0 user, load average: 0.39, 0.41, 0.43\nDisk Usage: 28%\nMemory Usage: 25.8%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:49:52 up 15 days, 8:05, 0 user, load average: 0.17, 0.14, 0.13\nDisk Usage: 75%\nMemory Usage: 54.9%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:50PM up 20 days, 5:40, 1 user, load averages: 0.52, 0.35, 0.27\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:14 up 1 day, 8:21, 1 user, load average: 0.00, 0.03, 0.08\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:50:15 up 5:25, 1 user, load average: 1.46, 1.25, 1.18\nDisk Usage: 1%\nMemory Usage: 12.4%\nCPU Load: 1.58\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:50:24.790399+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `712fb69549fc4c3aa72c9e6cfd211920` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-15T23:55:00.005685+00:00 |
| **Fin** | 2025-12-15T23:55:25.293370+00:00 |
| **Durée** | 25.3s |
## Sortie
```
Using /mnt/c/dev/git/python/homelab-automation-api-v2/ansible/ansible.cfg as config file
PLAY [Health check on target host] *********************************************
TASK [Check if host is reachable (ping)] ***************************************
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.home] => {"changed": false, "ping": "pong"}
ok: [localhost] => {"changed": false, "ping": "pong"}
ok: [jump.point.home] => {"changed": false, "ping": "pong"}
ok: [orangepi.pc.home] => {"changed": false, "ping": "pong"}
TASK [Gather minimal facts] ****************************************************
ok: [hp.nas.home]
ok: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.home]
ok: [ali2v.truenas.home]
ok: [automate.prod.home]
ok: [hp.truenas.home]
ok: [dev.prod.home]
ok: [jump.point.home]
ok: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003284", "end": "2025-12-15 18:55:13.452315", "msg": "", "rc": 0, "start": "2025-12-15 18:55:13.449031", "stderr": "", "stderr_lines": [], "stdout": " 18:55:13 up 20 days, 5:46, 1 user, load average: 0.04, 0.09, 0.14", "stdout_lines": [" 18:55:13 up 20 days, 5:46, 1 user, load average: 0.04, 0.09, 0.14"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003433", "end": "2025-12-15 18:55:13.466976", "msg": "", "rc": 0, "start": "2025-12-15 18:55:13.463543", "stderr": "", "stderr_lines": [], "stdout": " 18:55:13 up 20 days, 6:06, 1 user, load average: 0.74, 0.67, 0.64", "stdout_lines": [" 18:55:13 up 20 days, 6:06, 1 user, load average: 0.74, 0.67, 0.64"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003529", "end": "2025-12-15 18:55:13.465245", "msg": "", "rc": 0, "start": "2025-12-15 18:55:13.461716", "stderr": "", "stderr_lines": [], "stdout": " 18:55:13 up 20 days, 8:05, 1 user, load average: 0.06, 0.08, 0.06", "stdout_lines": [" 18:55:13 up 20 days, 8:05, 1 user, load average: 0.06, 0.08, 0.06"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002884", "end": "2025-12-15 18:55:13.482958", "msg": "", "rc": 0, "start": "2025-12-15 18:55:13.480074", "stderr": "", "stderr_lines": [], "stdout": " 18:55:13 up 1 day, 8:27, 1 user, load average: 0.33, 0.58, 0.67", "stdout_lines": [" 18:55:13 up 1 day, 8:27, 1 user, load average: 0.33, 0.58, 0.67"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004084", "end": "2025-12-15 18:55:13.512072", "msg": "", "rc": 0, "start": "2025-12-15 18:55:13.507988", "stderr": "", "stderr_lines": [], "stdout": " 18:55:13 up 20 days, 7:19, 1 user, load average: 0.92, 0.87, 0.76", "stdout_lines": [" 18:55:13 up 20 days, 7:19, 1 user, load average: 0.92, 0.87, 0.76"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003018", "end": "2025-12-15 18:54:49.454967", "msg": "", "rc": 0, "start": "2025-12-15 18:54:49.451949", "stderr": "", "stderr_lines": [], "stdout": " 18:54:49 up 9 days, 6:44, 0 user, load average: 0.21, 0.15, 0.15", "stdout_lines": [" 18:54:49 up 9 days, 6:44, 0 user, load average: 0.21, 0.15, 0.15"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003400", "end": "2025-12-15 18:54:43.583627", "msg": "", "rc": 0, "start": "2025-12-15 18:54:43.580227", "stderr": "", "stderr_lines": [], "stdout": " 18:54:43 up 16 days, 2:56, 0 user, load average: 0.06, 0.04, 0.01", "stdout_lines": [" 18:54:43 up 16 days, 2:56, 0 user, load average: 0.06, 0.04, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008579", "end": "2025-12-15 18:55:14.218904", "msg": "", "rc": 0, "start": "2025-12-15 18:55:14.210325", "stderr": "", "stderr_lines": [], "stdout": " 18:55:14 up 192 days, 10:28, 1 user, load average: 0.24, 0.15, 0.15", "stdout_lines": [" 18:55:14 up 192 days, 10:28, 1 user, load average: 0.24, 0.15, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009465", "end": "2025-12-15 18:55:14.238850", "msg": "", "rc": 0, "start": "2025-12-15 18:55:14.229385", "stderr": "", "stderr_lines": [], "stdout": " 18:55:14 up 192 days, 10:28, 1 user, load average: 0.27, 0.33, 0.31", "stdout_lines": [" 18:55:14 up 192 days, 10:28, 1 user, load average: 0.27, 0.33, 0.31"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004680", "end": "2025-12-15 18:55:14.539942", "msg": "", "rc": 0, "start": "2025-12-15 18:55:14.535262", "stderr": "", "stderr_lines": [], "stdout": " 18:55:14 up 1 day, 8:26, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 18:55:14 up 1 day, 8:26, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004226", "end": "2025-12-15 15:55:14.735771", "msg": "", "rc": 0, "start": "2025-12-15 15:55:14.731545", "stderr": "", "stderr_lines": [], "stdout": " 3:55PM up 20 days, 5:45, 1 user, load averages: 0.32, 0.31, 0.26", "stdout_lines": [" 3:55PM up 20 days, 5:45, 1 user, load averages: 0.32, 0.31, 0.26"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003358", "end": "2025-12-15 18:54:46.869060", "msg": "", "rc": 0, "start": "2025-12-15 18:54:46.865702", "stderr": "", "stderr_lines": [], "stdout": " 18:54:46 up 18 days, 21:49, 0 user, load average: 0.44, 0.39, 0.41", "stdout_lines": [" 18:54:46 up 18 days, 21:49, 0 user, load average: 0.44, 0.39, 0.41"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002804", "end": "2025-12-15 18:54:52.807596", "msg": "", "rc": 0, "start": "2025-12-15 18:54:52.804792", "stderr": "", "stderr_lines": [], "stdout": " 18:54:52 up 15 days, 8:10, 0 user, load average: 0.25, 0.15, 0.12", "stdout_lines": [" 18:54:52 up 15 days, 8:10, 0 user, load average: 0.25, 0.15, 0.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004177", "end": "2025-12-15 18:55:15.007641", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.003464", "stderr": "", "stderr_lines": [], "stdout": " 18:55:15 up 1 day, 8:26, 1 user, load average: 0.02, 0.04, 0.07", "stdout_lines": [" 18:55:15 up 1 day, 8:26, 1 user, load average: 0.02, 0.04, 0.07"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019474", "end": "2025-12-15 18:55:14.917030", "msg": "", "rc": 0, "start": "2025-12-15 18:55:14.897556", "stderr": "", "stderr_lines": [], "stdout": " 18:55:14 up 13 days, 8:21, 1 user, load average: 0.27, 0.15, 0.13", "stdout_lines": [" 18:55:14 up 13 days, 8:21, 1 user, load average: 0.27, 0.15, 0.13"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007961", "end": "2025-12-15 18:55:15.402925", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.394964", "stderr": "", "stderr_lines": [], "stdout": " 18:55:15 up 5:30, 1 user, load average: 1.45, 1.27, 1.20", "stdout_lines": [" 18:55:15 up 5:30, 1 user, load average: 1.45, 1.27, 1.20"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004262", "end": "2025-12-15 18:55:15.657643", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.653381", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004119", "end": "2025-12-15 18:55:15.654884", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.650765", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004802", "end": "2025-12-15 18:55:15.664319", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.659517", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004885", "end": "2025-12-15 18:55:15.727570", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.722685", "stderr": "", "stderr_lines": [], "stdout": "9%", "stdout_lines": ["9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005463", "end": "2025-12-15 18:55:15.728745", "msg": "", "rc": 0, "start": "2025-12-15 18:55:15.723282", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005180", "end": "2025-12-15 18:54:51.655590", "msg": "", "rc": 0, "start": "2025-12-15 18:54:51.650410", "stderr": "", "stderr_lines": [], "stdout": "48%", "stdout_lines": ["48%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005526", "end": "2025-12-15 18:54:45.824061", "msg": "", "rc": 0, "start": "2025-12-15 18:54:45.818535", "stderr": "", "stderr_lines": [], "stdout": "24%", "stdout_lines": ["24%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011772", "end": "2025-12-15 18:55:16.505417", "msg": "", "rc": 0, "start": "2025-12-15 18:55:16.493645", "stderr": "", "stderr_lines": [], "stdout": "6%", "stdout_lines": ["6%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010583", "end": "2025-12-15 18:55:16.525627", "msg": "", "rc": 0, "start": "2025-12-15 18:55:16.515044", "stderr": "", "stderr_lines": [], "stdout": "3%", "stdout_lines": ["3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005667", "end": "2025-12-15 18:55:16.776303", "msg": "", "rc": 0, "start": "2025-12-15 18:55:16.770636", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005808", "end": "2025-12-15 18:54:49.048493", "msg": "", "rc": 0, "start": "2025-12-15 18:54:49.042685", "stderr": "", "stderr_lines": [], "stdout": "28%", "stdout_lines": ["28%"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005570", "end": "2025-12-15 15:55:17.081478", "msg": "", "rc": 0, "start": "2025-12-15 15:55:17.075908", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004632", "end": "2025-12-15 18:54:55.130826", "msg": "", "rc": 0, "start": "2025-12-15 18:54:55.126194", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005473", "end": "2025-12-15 18:55:17.217707", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.212234", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.025645", "end": "2025-12-15 18:55:17.099578", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.073933", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019928", "end": "2025-12-15 18:55:17.612271", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.592343", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
TASK [Get memory usage (Linux)] ************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004131", "end": "2025-12-15 18:55:17.855988", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.851857", "stderr": "", "stderr_lines": [], "stdout": "21.8%", "stdout_lines": ["21.8%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004379", "end": "2025-12-15 18:55:17.878381", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.874002", "stderr": "", "stderr_lines": [], "stdout": "80.1%", "stdout_lines": ["80.1%"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005018", "end": "2025-12-15 18:55:17.901069", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.896051", "stderr": "", "stderr_lines": [], "stdout": "49.1%", "stdout_lines": ["49.1%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005215", "end": "2025-12-15 18:55:17.916904", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.911689", "stderr": "", "stderr_lines": [], "stdout": "8.9%", "stdout_lines": ["8.9%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005595", "end": "2025-12-15 18:55:17.936381", "msg": "", "rc": 0, "start": "2025-12-15 18:55:17.930786", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.4%"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003935", "end": "2025-12-15 18:54:53.883927", "msg": "", "rc": 0, "start": "2025-12-15 18:54:53.879992", "stderr": "", "stderr_lines": [], "stdout": "70.9%", "stdout_lines": ["70.9%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004601", "end": "2025-12-15 18:54:48.054415", "msg": "", "rc": 0, "start": "2025-12-15 18:54:48.049814", "stderr": "", "stderr_lines": [], "stdout": "72.1%", "stdout_lines": ["72.1%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010977", "end": "2025-12-15 18:55:18.644230", "msg": "", "rc": 0, "start": "2025-12-15 18:55:18.633253", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.8%"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.012050", "end": "2025-12-15 18:55:18.665238", "msg": "", "rc": 0, "start": "2025-12-15 18:55:18.653188", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005841", "end": "2025-12-15 18:55:18.979710", "msg": "", "rc": 0, "start": "2025-12-15 18:55:18.973869", "stderr": "", "stderr_lines": [], "stdout": "34.1%", "stdout_lines": ["34.1%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.004176", "end": "2025-12-15 18:54:51.247087", "msg": "", "rc": 0, "start": "2025-12-15 18:54:51.242911", "stderr": "", "stderr_lines": [], "stdout": "25.6%", "stdout_lines": ["25.6%"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.003733", "end": "2025-12-15 18:54:57.200295", "msg": "", "rc": 0, "start": "2025-12-15 18:54:57.196562", "stderr": "", "stderr_lines": [], "stdout": "55.4%", "stdout_lines": ["55.4%"]}
fatal: [hp.truenas.home]: FAILED! => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005292", "end": "2025-12-15 15:55:19.194441", "msg": "non-zero return code", "rc": 2, "start": "2025-12-15 15:55:19.189149", "stderr": "cat: /proc/meminfo: No such file or directory\nawk: division by zero\n source line number 1", "stderr_lines": ["cat: /proc/meminfo: No such file or directory", "awk: division by zero", " source line number 1"], "stdout": "", "stdout_lines": []}
...ignoring
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.025796", "end": "2025-12-15 18:55:19.295102", "msg": "", "rc": 0, "start": "2025-12-15 18:55:19.269306", "stderr": "", "stderr_lines": [], "stdout": "19.3%", "stdout_lines": ["19.3%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.005418", "end": "2025-12-15 18:55:19.464701", "msg": "", "rc": 0, "start": "2025-12-15 18:55:19.459283", "stderr": "", "stderr_lines": [], "stdout": "13.7%", "stdout_lines": ["13.7%"]}
ok: [localhost] => {"changed": false, "cmd": "if command -v free >/dev/null 2>&1; then\n free -m | grep Mem | awk '{printf \"%.1f%%\", $3/$2 * 100}'\nelse\n # Fallback for systems without free command\n cat /proc/meminfo | awk '/MemTotal/{total=$2} /MemAvailable/{avail=$2} END{printf \"%.1f%%\", (total-avail)/total*100}'\nfi\n", "delta": "0:00:00.010211", "end": "2025-12-15 18:55:19.892739", "msg": "", "rc": 0, "start": "2025-12-15 18:55:19.882528", "stderr": "", "stderr_lines": [], "stdout": "12.3%", "stdout_lines": ["12.3%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005152", "end": "2025-12-15 18:55:20.113220", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.108068", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.0°C"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.004867", "end": "2025-12-15 18:55:20.155288", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.150421", "stderr": "", "stderr_lines": [], "stdout": "45.0°C", "stdout_lines": ["45.0°C"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.005836", "end": "2025-12-15 18:55:20.189680", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.183844", "stderr": "cat: /sys/class/thermal/thermal_zone0/temp: No data available", "stderr_lines": ["cat: /sys/class/thermal/thermal_zone0/temp: No data available"], "stdout": "0.0°C", "stdout_lines": ["0.0°C"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003365", "end": "2025-12-15 18:55:20.215345", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.211980", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.006421", "end": "2025-12-15 18:55:20.224309", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.217888", "stderr": "", "stderr_lines": [], "stdout": "52.5°C", "stdout_lines": ["52.5°C"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003114", "end": "2025-12-15 18:54:56.145448", "msg": "", "rc": 0, "start": "2025-12-15 18:54:56.142334", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003254", "end": "2025-12-15 18:54:50.285485", "msg": "", "rc": 0, "start": "2025-12-15 18:54:50.282231", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.012023", "end": "2025-12-15 18:55:20.907848", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.895825", "stderr": "", "stderr_lines": [], "stdout": "31.6°C", "stdout_lines": ["31.6°C"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.013076", "end": "2025-12-15 18:55:20.936267", "msg": "", "rc": 0, "start": "2025-12-15 18:55:20.923191", "stderr": "", "stderr_lines": [], "stdout": "36.5°C", "stdout_lines": ["36.5°C"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003201", "end": "2025-12-15 18:55:21.292424", "msg": "", "rc": 0, "start": "2025-12-15 18:55:21.289223", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002760", "end": "2025-12-15 18:54:53.524245", "msg": "", "rc": 0, "start": "2025-12-15 18:54:53.521485", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003940", "end": "2025-12-15 15:55:21.424010", "msg": "", "rc": 0, "start": "2025-12-15 15:55:21.420070", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002644", "end": "2025-12-15 18:54:59.474673", "msg": "", "rc": 0, "start": "2025-12-15 18:54:59.472029", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.028516", "end": "2025-12-15 18:55:21.541894", "msg": "", "rc": 0, "start": "2025-12-15 18:55:21.513378", "stderr": "", "stderr_lines": [], "stdout": "35.8°C", "stdout_lines": ["35.8°C"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.002895", "end": "2025-12-15 18:55:21.759660", "msg": "", "rc": 0, "start": "2025-12-15 18:55:21.756765", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /sys/class/thermal/thermal_zone0/temp ]; then\n temp=$(cat /sys/class/thermal/thermal_zone0/temp)\n # Use awk instead of bc for better compatibility\n echo \"${temp}\" | awk '{printf \"%.1f°C\", $1/1000}'\nelse\n echo \"N/A\"\nfi\n", "delta": "0:00:00.003782", "end": "2025-12-15 18:55:22.002661", "msg": "", "rc": 0, "start": "2025-12-15 18:55:21.998879", "stderr": "", "stderr_lines": [], "stdout": "N/A", "stdout_lines": ["N/A"]}
TASK [Get CPU load] ************************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004201", "end": "2025-12-15 18:55:22.295689", "msg": "", "rc": 0, "start": "2025-12-15 18:55:22.291488", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004238", "end": "2025-12-15 18:55:22.309070", "msg": "", "rc": 0, "start": "2025-12-15 18:55:22.304832", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004766", "end": "2025-12-15 18:55:22.318064", "msg": "", "rc": 0, "start": "2025-12-15 18:55:22.313298", "stderr": "", "stderr_lines": [], "stdout": "0.78", "stdout_lines": ["0.78"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005718", "end": "2025-12-15 18:55:22.365402", "msg": "", "rc": 0, "start": "2025-12-15 18:55:22.359684", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005544", "end": "2025-12-15 18:55:22.368491", "msg": "", "rc": 0, "start": "2025-12-15 18:55:22.362947", "stderr": "", "stderr_lines": [], "stdout": "0.92", "stdout_lines": ["0.92"]}
ok: [dev.lab.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004287", "end": "2025-12-15 18:54:58.260655", "msg": "", "rc": 0, "start": "2025-12-15 18:54:58.256368", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005077", "end": "2025-12-15 18:54:52.431464", "msg": "", "rc": 0, "start": "2025-12-15 18:54:52.426387", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.010222", "end": "2025-12-15 18:55:23.175586", "msg": "", "rc": 0, "start": "2025-12-15 18:55:23.165364", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.011335", "end": "2025-12-15 18:55:23.173845", "msg": "", "rc": 0, "start": "2025-12-15 18:55:23.162510", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005658", "end": "2025-12-15 18:55:23.364813", "msg": "", "rc": 0, "start": "2025-12-15 18:55:23.359155", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004998", "end": "2025-12-15 18:54:55.682953", "msg": "", "rc": 0, "start": "2025-12-15 18:54:55.677955", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.006193", "end": "2025-12-15 15:55:23.707977", "msg": "", "rc": 0, "start": "2025-12-15 15:55:23.701784", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
ok: [dev.prod.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.004379", "end": "2025-12-15 18:55:01.779765", "msg": "", "rc": 0, "start": "2025-12-15 18:55:01.775386", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
ok: [jump.point.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.005354", "end": "2025-12-15 18:55:23.832542", "msg": "", "rc": 0, "start": "2025-12-15 18:55:23.827188", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.024529", "end": "2025-12-15 18:55:23.739848", "msg": "", "rc": 0, "start": "2025-12-15 18:55:23.715319", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
ok: [localhost] => {"changed": false, "cmd": "if [ -f /proc/loadavg ]; then\n cat /proc/loadavg | awk '{print $1}'\nelse\n uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' '\nfi\n", "delta": "0:00:00.007522", "end": "2025-12-15 18:55:24.224558", "msg": "", "rc": 0, "start": "2025-12-15 18:55:24.217036", "stderr": "", "stderr_lines": [], "stdout": "1.49", "stdout_lines": ["1.49"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:13 up 20 days, 5:46, 1 user, load average: 0.04, 0.09, 0.14\nDisk Usage: 23%\nMemory Usage: 80.1%\nCPU Load: 0.11\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:13 up 1 day, 8:27, 1 user, load average: 0.33, 0.58, 0.67\nDisk Usage: 22%\nMemory Usage: 21.8%\nCPU Load: 0.38\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:13 up 20 days, 6:06, 1 user, load average: 0.74, 0.67, 0.64\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.78\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:13 up 20 days, 7:19, 1 user, load average: 0.92, 0.87, 0.76\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.92\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:13 up 20 days, 8:05, 1 user, load average: 0.06, 0.08, 0.06\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:14 up 13 days, 8:21, 1 user, load average: 0.27, 0.15, 0.13\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.23\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:14 up 192 days, 10:28, 1 user, load average: 0.27, 0.33, 0.31\nDisk Usage: 6%\nMemory Usage: 12.3%\nCPU Load: 0.23\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:14 up 192 days, 10:28, 1 user, load average: 0.24, 0.15, 0.15\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.28\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:54:49 up 9 days, 6:44, 0 user, load average: 0.21, 0.15, 0.15\nDisk Usage: 48%\nMemory Usage: 70.9%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:54:43 up 16 days, 2:56, 0 user, load average: 0.06, 0.04, 0.01\nDisk Usage: 24%\nMemory Usage: 72.1%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:14 up 1 day, 8:26, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.1%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:54:46 up 18 days, 21:49, 0 user, load average: 0.44, 0.39, 0.41\nDisk Usage: 28%\nMemory Usage: 25.6%\nCPU Load: 0.45\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:54:52 up 15 days, 8:10, 0 user, load average: 0.25, 0.15, 0.12\nDisk Usage: 75%\nMemory Usage: 55.4%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 3:55PM up 20 days, 5:45, 1 user, load averages: 0.32, 0.31, 0.26\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:15 up 1 day, 8:26, 1 user, load average: 0.02, 0.04, 0.07\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:55:15 up 5:30, 1 user, load average: 1.45, 1.27, 1.20\nDisk Usage: 1%\nMemory Usage: 12.3%\nCPU Load: 1.49\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
PLAY RECAP *********************************************************************
ali2v.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ali2v.xeon.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
automate.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.lab.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev.prod.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.nas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp.truenas.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
hp2.i7.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
hp3.i5.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
jump.point.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
media.labb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
mimi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
orangepi.pc.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.4gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
raspi.8gb.home : ok=8 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```
---
*Généré automatiquement par Homelab Automation Dashboard*
*Date: 2025-12-15T23:55:25.341716+00:00*