Add asyncssh dependency, fix scheduler datetime comparison for naive/aware timezones, and update Docker configuration to use port 8008 with proper application structure and Alembic migrations support
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-16 21:20:08 -05:00
parent 49199af175
commit 07c5689e8e
128 changed files with 27811 additions and 10 deletions
+2 -1
View File
@@ -22,4 +22,5 @@ pytest-asyncio>=0.21.0
python-jose[cryptography]>=3.3.0
passlib[bcrypt]>=1.7.4
reportlab>=4.0.0
pillow>=10.0.0
pillow>=10.0.0
asyncssh>=2.14.0
+15 -3
View File
@@ -665,9 +665,21 @@ class SchedulerService:
next_exec = s.next_run_at
next_name = s.name
# Statistiques 24h
failures_24h = sum(1 for s in schedules if s.last_status == "failed" and s.last_run_at and s.last_run_at > datetime.now(timezone.utc) - timedelta(hours=24))
executions_24h = sum(1 for s in schedules if s.last_run_at and s.last_run_at > datetime.now(timezone.utc) - timedelta(hours=24))
# Statistiques 24h (normaliser les datetimes pour comparaison)
now_utc = datetime.now(timezone.utc)
cutoff_24h = now_utc - timedelta(hours=24)
def is_within_24h(dt) -> bool:
"""Compare datetime en gérant les naive vs aware."""
if dt is None:
return False
# Si naive, on assume UTC
if dt.tzinfo is None:
dt = dt.replace(tzinfo=timezone.utc)
return dt > cutoff_24h
failures_24h = sum(1 for s in schedules if s.last_status == "failed" and is_within_24h(s.last_run_at))
executions_24h = sum(1 for s in schedules if is_within_24h(s.last_run_at))
# Taux de succès 7 jours
total_runs = sum(s.run_count for s in schedules)
+17 -5
View File
@@ -22,6 +22,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
ansible \
git \
curl \
libjpeg62-turbo \
zlib1g \
libfreetype6 \
libpng16-16 \
fonts-noto-color-emoji \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
@@ -33,12 +37,19 @@ RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
COPY app/requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# Copie du code de l'application
COPY app/ ./
# Copie du point d'entrée principal
COPY main.py ./
# Copie du code de l'application (doit rester un sous-dossier /app/app/)
COPY app/ ./app/
# Copie de la configuration Ansible
COPY ansible/ /ansible/
# Copie des fichiers Alembic (migrations)
COPY alembic/ /alembic/
COPY alembic.ini /alembic.ini
# Création du répertoire pour les clés SSH (sera monté en volume)
RUN mkdir -p /app/ssh_keys /app/data
@@ -46,16 +57,17 @@ RUN mkdir -p /app/ssh_keys /app/data
ENV ANSIBLE_CONFIG=/ansible/ansible.cfg
# Variables par défaut pour la base SQLite dans le conteneur
ENV LOGS_DIR=/app/data
ENV HOMELAB_DATA_DIR=/app/data
ENV DB_PATH=/app/data/homelab.db
ENV DATABASE_URL=sqlite+aiosqlite:////app/data/homelab.db
# Exposition du port
EXPOSE 8000
EXPOSE 8008
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/api/health || exit 1
CMD curl -f http://localhost:8008/api/health || exit 1
# Commande de démarrage
CMD ["python", "-m", "uvicorn", "app_optimized:app", "--host", "0.0.0.0", "--port", "8000"]
CMD ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8008"]
File diff suppressed because one or more lines are too long
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `70f432682b9e47b4b1775fe84d7402ac` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:00:00.001691+00:00 |
| **Fin** | 2025-12-17T00:00:23.322832+00:00 |
| **Durée** | 23.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: [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: [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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003364", "end": "2025-12-16 19:00:12.185695", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.182331", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 21 days, 6:11, 1 user, load average: 0.58, 0.62, 0.67", "stdout_lines": [" 19:00:12 up 21 days, 6:11, 1 user, load average: 0.58, 0.62, 0.67"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003786", "end": "2025-12-16 19:00:12.195190", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.191404", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 21 days, 8:10, 1 user, load average: 0.03, 0.05, 0.00", "stdout_lines": [" 19:00:12 up 21 days, 8:10, 1 user, load average: 0.03, 0.05, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002962", "end": "2025-12-16 19:00:12.211718", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.208756", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 2 days, 8:32, 1 user, load average: 0.12, 0.14, 0.16", "stdout_lines": [" 19:00:12 up 2 days, 8:32, 1 user, load average: 0.12, 0.14, 0.16"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008394", "end": "2025-12-16 19:00:12.859494", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.851100", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 193 days, 10:33, 1 user, load average: 0.12, 0.12, 0.13", "stdout_lines": [" 19:00:12 up 193 days, 10:33, 1 user, load average: 0.12, 0.12, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009286", "end": "2025-12-16 19:00:12.901243", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.891957", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 193 days, 10:33, 1 user, load average: 0.27, 0.23, 0.24", "stdout_lines": [" 19:00:12 up 193 days, 10:33, 1 user, load average: 0.27, 0.23, 0.24"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003653", "end": "2025-12-16 19:00:13.183251", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.179598", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 21 days, 5:51, 1 user, load average: 0.42, 0.41, 0.42", "stdout_lines": [" 19:00:12 up 21 days, 5:51, 1 user, load average: 0.42, 0.41, 0.42"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005817", "end": "2025-12-16 19:00:13.224381", "msg": "", "rc": 0, "start": "2025-12-16 19:00:12.218564", "stderr": "", "stderr_lines": [], "stdout": " 19:00:12 up 21 days, 7:24, 1 user, load average: 0.72, 0.64, 0.62", "stdout_lines": [" 19:00:12 up 21 days, 7:24, 1 user, load average: 0.72, 0.64, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002754", "end": "2025-12-16 18:59:47.748294", "msg": "", "rc": 0, "start": "2025-12-16 18:59:47.745540", "stderr": "", "stderr_lines": [], "stdout": " 18:59:47 up 10 days, 6:49, 0 user, load average: 0.10, 0.11, 0.09", "stdout_lines": [" 18:59:47 up 10 days, 6:49, 0 user, load average: 0.10, 0.11, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003793", "end": "2025-12-16 18:59:41.594660", "msg": "", "rc": 0, "start": "2025-12-16 18:59:41.590867", "stderr": "", "stderr_lines": [], "stdout": " 18:59:41 up 17 days, 3:01, 0 user, load average: 0.02, 0.01, 0.00", "stdout_lines": [" 18:59:41 up 17 days, 3:01, 0 user, load average: 0.02, 0.01, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004710", "end": "2025-12-16 19:00:13.631635", "msg": "", "rc": 0, "start": "2025-12-16 19:00:13.626925", "stderr": "", "stderr_lines": [], "stdout": " 19:00:13 up 2 days, 8:31, 1 user, load average: 0.04, 0.05, 0.01", "stdout_lines": [" 19:00:13 up 2 days, 8:31, 1 user, load average: 0.04, 0.05, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019510", "end": "2025-12-16 19:00:13.564840", "msg": "", "rc": 0, "start": "2025-12-16 19:00:13.545330", "stderr": "", "stderr_lines": [], "stdout": " 19:00:13 up 14 days, 8:26, 1 user, load average: 0.30, 0.15, 0.10", "stdout_lines": [" 19:00:13 up 14 days, 8:26, 1 user, load average: 0.30, 0.15, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002948", "end": "2025-12-16 18:59:44.475824", "msg": "", "rc": 0, "start": "2025-12-16 18:59:44.472876", "stderr": "", "stderr_lines": [], "stdout": " 18:59:44 up 19 days, 21:54, 0 user, load average: 0.40, 0.44, 0.45", "stdout_lines": [" 18:59:44 up 19 days, 21:54, 0 user, load average: 0.40, 0.44, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002941", "end": "2025-12-16 18:59:50.826635", "msg": "", "rc": 0, "start": "2025-12-16 18:59:50.823694", "stderr": "", "stderr_lines": [], "stdout": " 18:59:50 up 16 days, 8:15, 0 user, load average: 0.28, 0.38, 0.35", "stdout_lines": [" 18:59:50 up 16 days, 8:15, 0 user, load average: 0.28, 0.38, 0.35"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004263", "end": "2025-12-16 16:00:13.935775", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.931512", "stderr": "", "stderr_lines": [], "stdout": " 4:00PM up 21 days, 5:50, 1 user, load averages: 0.12, 0.26, 0.23", "stdout_lines": [" 4:00PM up 21 days, 5:50, 1 user, load averages: 0.12, 0.26, 0.23"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007778", "end": "2025-12-16 19:00:14.388072", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.380294", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 20:36, 1 user, load average: 1.33, 1.15, 1.16", "stdout_lines": [" 19:00:14 up 20:36, 1 user, load average: 1.33, 1.15, 1.16"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003761", "end": "2025-12-16 19:00:14.065261", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.061500", "stderr": "", "stderr_lines": [], "stdout": " 19:00:14 up 2 days, 8:31, 1 user, load average: 0.08, 0.04, 0.07", "stdout_lines": [" 19:00:14 up 2 days, 8:31, 1 user, load average: 0.08, 0.04, 0.07"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004267", "end": "2025-12-16 19:00:14.465633", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.461366", "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.004153", "end": "2025-12-16 19:00:14.489007", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.484854", "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.005110", "end": "2025-12-16 19:00:14.519060", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.513950", "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.004938", "end": "2025-12-16 19:00:14.517647", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.512709", "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.005455", "end": "2025-12-16 19:00:14.533063", "msg": "", "rc": 0, "start": "2025-12-16 19:00:14.527608", "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.005814", "end": "2025-12-16 18:59:49.374020", "msg": "", "rc": 0, "start": "2025-12-16 18:59:49.368206", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005557", "end": "2025-12-16 18:59:43.177673", "msg": "", "rc": 0, "start": "2025-12-16 18:59:43.172116", "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.010541", "end": "2025-12-16 19:00:15.247614", "msg": "", "rc": 0, "start": "2025-12-16 19:00:15.237073", "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.011596", "end": "2025-12-16 19:00:15.242517", "msg": "", "rc": 0, "start": "2025-12-16 19:00:15.230921", "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.006008", "end": "2025-12-16 19:00:15.477774", "msg": "", "rc": 0, "start": "2025-12-16 19:00:15.471766", "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.005454", "end": "2025-12-16 18:59:46.397342", "msg": "", "rc": 0, "start": "2025-12-16 18:59:46.391888", "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.005342", "end": "2025-12-16 16:00:15.729580", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.724238", "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.004788", "end": "2025-12-16 18:59:52.741687", "msg": "", "rc": 0, "start": "2025-12-16 18:59:52.736899", "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.005374", "end": "2025-12-16 19:00:15.906691", "msg": "", "rc": 0, "start": "2025-12-16 19:00:15.901317", "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.024908", "end": "2025-12-16 19:00:15.850501", "msg": "", "rc": 0, "start": "2025-12-16 19:00:15.825593", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020497", "end": "2025-12-16 19:00:16.462443", "msg": "", "rc": 0, "start": "2025-12-16 19:00:16.441946", "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.004332", "end": "2025-12-16 19:00:16.419576", "msg": "", "rc": 0, "start": "2025-12-16 19:00:16.415244", "stderr": "", "stderr_lines": [], "stdout": "81.6%", "stdout_lines": ["81.6%"]}
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.004592", "end": "2025-12-16 19:00:16.450310", "msg": "", "rc": 0, "start": "2025-12-16 19:00:16.445718", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004255", "end": "2025-12-16 19:00:16.451347", "msg": "", "rc": 0, "start": "2025-12-16 19:00:16.447092", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005301", "end": "2025-12-16 19:00:16.479121", "msg": "", "rc": 0, "start": "2025-12-16 19:00:16.473820", "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.006920", "end": "2025-12-16 19:00:16.514160", "msg": "", "rc": 0, "start": "2025-12-16 19:00:16.507240", "stderr": "", "stderr_lines": [], "stdout": "60.1%", "stdout_lines": ["60.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.003800", "end": "2025-12-16 18:59:51.301811", "msg": "", "rc": 0, "start": "2025-12-16 18:59:51.298011", "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.005264", "end": "2025-12-16 18:59:45.156148", "msg": "", "rc": 0, "start": "2025-12-16 18:59:45.150884", "stderr": "", "stderr_lines": [], "stdout": "69.9%", "stdout_lines": ["69.9%"]}
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-16 19:00:17.139488", "msg": "", "rc": 0, "start": "2025-12-16 19:00:17.128469", "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.012074", "end": "2025-12-16 19:00:17.195469", "msg": "", "rc": 0, "start": "2025-12-16 19:00:17.183395", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005905", "end": "2025-12-16 19:00:17.404812", "msg": "", "rc": 0, "start": "2025-12-16 19:00:17.398907", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004913", "end": "2025-12-16 18:59:48.348285", "msg": "", "rc": 0, "start": "2025-12-16 18:59:48.343372", "stderr": "", "stderr_lines": [], "stdout": "26.7%", "stdout_lines": ["26.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.004272", "end": "2025-12-16 18:59:54.625555", "msg": "", "rc": 0, "start": "2025-12-16 18:59:54.621283", "stderr": "", "stderr_lines": [], "stdout": "59.7%", "stdout_lines": ["59.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.005218", "end": "2025-12-16 16:00:17.678593", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:00:17.673375", "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.005485", "end": "2025-12-16 19:00:17.835167", "msg": "", "rc": 0, "start": "2025-12-16 19:00:17.829682", "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.010186", "end": "2025-12-16 19:00:18.471887", "msg": "", "rc": 0, "start": "2025-12-16 19:00:18.461701", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025728", "end": "2025-12-16 19:00:17.825505", "msg": "", "rc": 0, "start": "2025-12-16 19:00:17.799777", "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.005244", "end": "2025-12-16 19:00:18.369762", "msg": "", "rc": 0, "start": "2025-12-16 19:00:18.364518", "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.005238", "end": "2025-12-16 19:00:18.378395", "msg": "", "rc": 0, "start": "2025-12-16 19:00:18.373157", "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.005097", "end": "2025-12-16 19:00:18.378191", "msg": "", "rc": 0, "start": "2025-12-16 19:00:18.373094", "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.002932", "end": "2025-12-16 19:00:18.413975", "msg": "", "rc": 0, "start": "2025-12-16 19:00:18.411043", "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.006597", "end": "2025-12-16 19:00:18.444842", "msg": "", "rc": 0, "start": "2025-12-16 19:00:18.438245", "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.002760", "end": "2025-12-16 18:59:53.235268", "msg": "", "rc": 0, "start": "2025-12-16 18:59:53.232508", "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.003141", "end": "2025-12-16 18:59:47.084054", "msg": "", "rc": 0, "start": "2025-12-16 18:59:47.080913", "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.011740", "end": "2025-12-16 19:00:19.074920", "msg": "", "rc": 0, "start": "2025-12-16 19:00:19.063180", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.013181", "end": "2025-12-16 19:00:19.112030", "msg": "", "rc": 0, "start": "2025-12-16 19:00:19.098849", "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.003081", "end": "2025-12-16 19:00:19.338106", "msg": "", "rc": 0, "start": "2025-12-16 19:00:19.335025", "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.003019", "end": "2025-12-16 18:59:50.257567", "msg": "", "rc": 0, "start": "2025-12-16 18:59:50.254548", "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.003053", "end": "2025-12-16 18:59:56.549999", "msg": "", "rc": 0, "start": "2025-12-16 18:59:56.546946", "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.004005", "end": "2025-12-16 16:00:19.580859", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.576854", "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.002908", "end": "2025-12-16 19:00:19.756500", "msg": "", "rc": 0, "start": "2025-12-16 19:00:19.753592", "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.004565", "end": "2025-12-16 19:00:20.421698", "msg": "", "rc": 0, "start": "2025-12-16 19:00:20.417133", "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.028382", "end": "2025-12-16 19:00:19.768748", "msg": "", "rc": 0, "start": "2025-12-16 19:00:19.740366", "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.004163", "end": "2025-12-16 19:00:20.298827", "msg": "", "rc": 0, "start": "2025-12-16 19:00:20.294664", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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.004036", "end": "2025-12-16 19:00:20.312151", "msg": "", "rc": 0, "start": "2025-12-16 19:00:20.308115", "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.004744", "end": "2025-12-16 19:00:20.334381", "msg": "", "rc": 0, "start": "2025-12-16 19:00:20.329637", "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.004968", "end": "2025-12-16 19:00:20.350942", "msg": "", "rc": 0, "start": "2025-12-16 19:00:20.345974", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.005435", "end": "2025-12-16 19:00:20.358390", "msg": "", "rc": 0, "start": "2025-12-16 19:00:20.352955", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
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.005407", "end": "2025-12-16 18:59:55.192141", "msg": "", "rc": 0, "start": "2025-12-16 18:59:55.186734", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.004881", "end": "2025-12-16 18:59:48.984646", "msg": "", "rc": 0, "start": "2025-12-16 18:59:48.979765", "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.010348", "end": "2025-12-16 19:00:21.094533", "msg": "", "rc": 0, "start": "2025-12-16 19:00:21.084185", "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.011120", "end": "2025-12-16 19:00:21.117834", "msg": "", "rc": 0, "start": "2025-12-16 19:00:21.106714", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.006049", "end": "2025-12-16 19:00:21.305938", "msg": "", "rc": 0, "start": "2025-12-16 19:00:21.299889", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.004739", "end": "2025-12-16 18:59:52.146603", "msg": "", "rc": 0, "start": "2025-12-16 18:59:52.141864", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.006009", "end": "2025-12-16 16:00:21.594176", "msg": "", "rc": 0, "start": "2025-12-16 16:00:21.588167", "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.004695", "end": "2025-12-16 18:59:58.600587", "msg": "", "rc": 0, "start": "2025-12-16 18:59:58.595892", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.008812", "end": "2025-12-16 19:00:22.397325", "msg": "", "rc": 0, "start": "2025-12-16 19:00:22.388513", "stderr": "", "stderr_lines": [], "stdout": "1.43", "stdout_lines": ["1.43"]}
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.005207", "end": "2025-12-16 19:00:21.753063", "msg": "", "rc": 0, "start": "2025-12-16 19:00:21.747856", "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.024081", "end": "2025-12-16 19:00:21.685415", "msg": "", "rc": 0, "start": "2025-12-16 19:00:21.661334", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:12 up 2 days, 8:32, 1 user, load average: 0.12, 0.14, 0.16\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.20\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:12 up 21 days, 5:51, 1 user, load average: 0.42, 0.41, 0.42\nDisk Usage: 23%\nMemory Usage: 81.6%\nCPU Load: 0.43\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:12 up 21 days, 6:11, 1 user, load average: 0.58, 0.62, 0.67\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: 19:00:12 up 21 days, 7:24, 1 user, load average: 0.72, 0.64, 0.62\nDisk Usage: 14%\nMemory Usage: 60.1%\nCPU Load: 0.83\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:12 up 21 days, 8:10, 1 user, load average: 0.03, 0.05, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:13 up 14 days, 8:26, 1 user, load average: 0.30, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.34\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:12 up 193 days, 10:33, 1 user, load average: 0.27, 0.23, 0.24\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.31\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:12 up 193 days, 10:33, 1 user, load average: 0.12, 0.12, 0.13\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.17\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:47 up 10 days, 6:49, 0 user, load average: 0.10, 0.11, 0.09\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:41 up 17 days, 3:01, 0 user, load average: 0.02, 0.01, 0.00\nDisk Usage: 24%\nMemory Usage: 69.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:00:13 up 2 days, 8:31, 1 user, load average: 0.04, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:44 up 19 days, 21:54, 0 user, load average: 0.40, 0.44, 0.45\nDisk Usage: 28%\nMemory Usage: 26.7%\nCPU Load: 0.53\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 18:59:50 up 16 days, 8:15, 0 user, load average: 0.28, 0.38, 0.35\nDisk Usage: 75%\nMemory Usage: 59.7%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:00PM up 21 days, 5:50, 1 user, load averages: 0.12, 0.26, 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:00:14 up 2 days, 8:31, 1 user, load average: 0.08, 0.04, 0.07\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: 19:00:14 up 20:36, 1 user, load average: 1.33, 1.15, 1.16\nDisk Usage: 1%\nMemory Usage: 20.3%\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-17T00:00:23.369341+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `f08a83c9bcdf4c2681fae99f5407ac1d` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:05:00.001277+00:00 |
| **Fin** | 2025-12-17T00:05:22.731608+00:00 |
| **Durée** | 22.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: [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: [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.003125", "end": "2025-12-16 19:05:11.668370", "msg": "", "rc": 0, "start": "2025-12-16 19:05:11.665245", "stderr": "", "stderr_lines": [], "stdout": " 19:05:11 up 21 days, 5:56, 1 user, load average: 0.34, 0.42, 0.43", "stdout_lines": [" 19:05:11 up 21 days, 5:56, 1 user, load average: 0.34, 0.42, 0.43"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003707", "end": "2025-12-16 19:05:11.680446", "msg": "", "rc": 0, "start": "2025-12-16 19:05:11.676739", "stderr": "", "stderr_lines": [], "stdout": " 19:05:11 up 21 days, 8:15, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 19:05:11 up 21 days, 8:15, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004241", "end": "2025-12-16 19:05:11.694904", "msg": "", "rc": 0, "start": "2025-12-16 19:05:11.690663", "stderr": "", "stderr_lines": [], "stdout": " 19:05:11 up 21 days, 7:29, 1 user, load average: 0.65, 0.70, 0.65", "stdout_lines": [" 19:05:11 up 21 days, 7:29, 1 user, load average: 0.65, 0.70, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002892", "end": "2025-12-16 19:05:11.709297", "msg": "", "rc": 0, "start": "2025-12-16 19:05:11.706405", "stderr": "", "stderr_lines": [], "stdout": " 19:05:11 up 2 days, 8:37, 1 user, load average: 0.12, 0.12, 0.14", "stdout_lines": [" 19:05:11 up 2 days, 8:37, 1 user, load average: 0.12, 0.12, 0.14"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003869", "end": "2025-12-16 19:05:11.716636", "msg": "", "rc": 0, "start": "2025-12-16 19:05:11.712767", "stderr": "", "stderr_lines": [], "stdout": " 19:05:11 up 21 days, 6:16, 1 user, load average: 0.64, 0.60, 0.65", "stdout_lines": [" 19:05:11 up 21 days, 6:16, 1 user, load average: 0.64, 0.60, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002773", "end": "2025-12-16 19:04:46.523350", "msg": "", "rc": 0, "start": "2025-12-16 19:04:46.520577", "stderr": "", "stderr_lines": [], "stdout": " 19:04:46 up 10 days, 6:54, 0 user, load average: 0.09, 0.11, 0.09", "stdout_lines": [" 19:04:46 up 10 days, 6:54, 0 user, load average: 0.09, 0.11, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003780", "end": "2025-12-16 19:04:40.342489", "msg": "", "rc": 0, "start": "2025-12-16 19:04:40.338709", "stderr": "", "stderr_lines": [], "stdout": " 19:04:40 up 17 days, 3:06, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:04:40 up 17 days, 3:06, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008394", "end": "2025-12-16 19:05:12.368588", "msg": "", "rc": 0, "start": "2025-12-16 19:05:12.360194", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 193 days, 10:38, 1 user, load average: 0.05, 0.12, 0.12", "stdout_lines": [" 19:05:12 up 193 days, 10:38, 1 user, load average: 0.05, 0.12, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009416", "end": "2025-12-16 19:05:12.399297", "msg": "", "rc": 0, "start": "2025-12-16 19:05:12.389881", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 193 days, 10:38, 1 user, load average: 0.17, 0.21, 0.23", "stdout_lines": [" 19:05:12 up 193 days, 10:38, 1 user, load average: 0.17, 0.21, 0.23"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004661", "end": "2025-12-16 19:05:12.632767", "msg": "", "rc": 0, "start": "2025-12-16 19:05:12.628106", "stderr": "", "stderr_lines": [], "stdout": " 19:05:12 up 2 days, 8:36, 1 user, load average: 0.09, 0.04, 0.01", "stdout_lines": [" 19:05:12 up 2 days, 8:36, 1 user, load average: 0.09, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003106", "end": "2025-12-16 19:04:43.516413", "msg": "", "rc": 0, "start": "2025-12-16 19:04:43.513307", "stderr": "", "stderr_lines": [], "stdout": " 19:04:43 up 19 days, 21:59, 0 user, load average: 0.38, 0.42, 0.44", "stdout_lines": [" 19:04:43 up 19 days, 21:59, 0 user, load average: 0.38, 0.42, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003029", "end": "2025-12-16 19:04:49.838559", "msg": "", "rc": 0, "start": "2025-12-16 19:04:49.835530", "stderr": "", "stderr_lines": [], "stdout": " 19:04:49 up 16 days, 8:20, 0 user, load average: 0.53, 0.40, 0.36", "stdout_lines": [" 19:04:49 up 16 days, 8:20, 0 user, load average: 0.53, 0.40, 0.36"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004376", "end": "2025-12-16 16:05:12.872451", "msg": "", "rc": 0, "start": "2025-12-16 16:05:12.868075", "stderr": "", "stderr_lines": [], "stdout": " 4:05PM up 21 days, 5:55, 1 user, load averages: 0.23, 0.25, 0.23", "stdout_lines": [" 4:05PM up 21 days, 5:55, 1 user, load averages: 0.23, 0.25, 0.23"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003739", "end": "2025-12-16 19:05:13.069389", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.065650", "stderr": "", "stderr_lines": [], "stdout": " 19:05:13 up 2 days, 8:36, 1 user, load average: 0.04, 0.06, 0.07", "stdout_lines": [" 19:05:13 up 2 days, 8:36, 1 user, load average: 0.04, 0.06, 0.07"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007279", "end": "2025-12-16 19:05:13.871006", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.863727", "stderr": "", "stderr_lines": [], "stdout": " 19:05:13 up 20:42, 1 user, load average: 1.30, 1.14, 1.14", "stdout_lines": [" 19:05:13 up 20:42, 1 user, load average: 1.30, 1.14, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019366", "end": "2025-12-16 19:05:13.056052", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.036686", "stderr": "", "stderr_lines": [], "stdout": " 19:05:13 up 14 days, 8:31, 1 user, load average: 0.27, 0.16, 0.10", "stdout_lines": [" 19:05:13 up 14 days, 8:31, 1 user, load average: 0.27, 0.16, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004542", "end": "2025-12-16 19:05:13.581661", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.577119", "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.004135", "end": "2025-12-16 19:05:13.590174", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.586039", "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.004914", "end": "2025-12-16 19:05:13.608631", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.603717", "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.004788", "end": "2025-12-16 19:05:13.616742", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.611954", "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.005553", "end": "2025-12-16 19:05:13.628471", "msg": "", "rc": 0, "start": "2025-12-16 19:05:13.622918", "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.004854", "end": "2025-12-16 19:04:48.452695", "msg": "", "rc": 0, "start": "2025-12-16 19:04:48.447841", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005785", "end": "2025-12-16 19:04:42.260304", "msg": "", "rc": 0, "start": "2025-12-16 19:04:42.254519", "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.010575", "end": "2025-12-16 19:05:14.334286", "msg": "", "rc": 0, "start": "2025-12-16 19:05:14.323711", "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.011787", "end": "2025-12-16 19:05:14.373258", "msg": "", "rc": 0, "start": "2025-12-16 19:05:14.361471", "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.005872", "end": "2025-12-16 19:05:14.539009", "msg": "", "rc": 0, "start": "2025-12-16 19:05:14.533137", "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.005175", "end": "2025-12-16 19:04:45.461173", "msg": "", "rc": 0, "start": "2025-12-16 19:04:45.455998", "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.005255", "end": "2025-12-16 19:04:51.798256", "msg": "", "rc": 0, "start": "2025-12-16 19:04:51.793001", "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.005636", "end": "2025-12-16 16:05:14.833065", "msg": "", "rc": 0, "start": "2025-12-16 16:05:14.827429", "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.005323", "end": "2025-12-16 19:05:14.958491", "msg": "", "rc": 0, "start": "2025-12-16 19:05:14.953168", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.024727", "end": "2025-12-16 19:05:15.887845", "msg": "", "rc": 0, "start": "2025-12-16 19:05:15.863118", "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.025373", "end": "2025-12-16 19:05:14.975961", "msg": "", "rc": 0, "start": "2025-12-16 19:05:14.950588", "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.004677", "end": "2025-12-16 19:05:15.526464", "msg": "", "rc": 0, "start": "2025-12-16 19:05:15.521787", "stderr": "", "stderr_lines": [], "stdout": "81.4%", "stdout_lines": ["81.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.004291", "end": "2025-12-16 19:05:15.530906", "msg": "", "rc": 0, "start": "2025-12-16 19:05:15.526615", "stderr": "", "stderr_lines": [], "stdout": "22.2%", "stdout_lines": ["22.2%"]}
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.005211", "end": "2025-12-16 19:05:15.536720", "msg": "", "rc": 0, "start": "2025-12-16 19:05:15.531509", "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.004509", "end": "2025-12-16 19:05:15.565640", "msg": "", "rc": 0, "start": "2025-12-16 19:05:15.561131", "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.005693", "end": "2025-12-16 19:05:15.571571", "msg": "", "rc": 0, "start": "2025-12-16 19:05:15.565878", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.004050", "end": "2025-12-16 19:04:50.403555", "msg": "", "rc": 0, "start": "2025-12-16 19:04:50.399505", "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.004603", "end": "2025-12-16 19:04:44.208664", "msg": "", "rc": 0, "start": "2025-12-16 19:04:44.204061", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.011041", "end": "2025-12-16 19:05:16.221404", "msg": "", "rc": 0, "start": "2025-12-16 19:05:16.210363", "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.012075", "end": "2025-12-16 19:05:16.267162", "msg": "", "rc": 0, "start": "2025-12-16 19:05:16.255087", "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.005846", "end": "2025-12-16 19:05:16.533193", "msg": "", "rc": 0, "start": "2025-12-16 19:05:16.527347", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.005272", "end": "2025-12-16 19:04:47.393491", "msg": "", "rc": 0, "start": "2025-12-16 19:04:47.388219", "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.005195", "end": "2025-12-16 16:05:16.716479", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:05:16.711284", "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.003602", "end": "2025-12-16 19:04:53.696473", "msg": "", "rc": 0, "start": "2025-12-16 19:04:53.692871", "stderr": "", "stderr_lines": [], "stdout": "60.7%", "stdout_lines": ["60.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.005324", "end": "2025-12-16 19:05:16.980718", "msg": "", "rc": 0, "start": "2025-12-16 19:05:16.975394", "stderr": "", "stderr_lines": [], "stdout": "13.9%", "stdout_lines": ["13.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.009125", "end": "2025-12-16 19:05:17.877371", "msg": "", "rc": 0, "start": "2025-12-16 19:05:17.868246", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.026224", "end": "2025-12-16 19:05:16.934208", "msg": "", "rc": 0, "start": "2025-12-16 19:05:16.907984", "stderr": "", "stderr_lines": [], "stdout": "20.6%", "stdout_lines": ["20.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.005367", "end": "2025-12-16 19:05:17.453133", "msg": "", "rc": 0, "start": "2025-12-16 19:05:17.447766", "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-16 19:05:17.468513", "msg": "", "rc": 0, "start": "2025-12-16 19:05:17.463659", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005720", "end": "2025-12-16 19:05:17.470702", "msg": "", "rc": 0, "start": "2025-12-16 19:05:17.464982", "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.003198", "end": "2025-12-16 19:05:17.502467", "msg": "", "rc": 0, "start": "2025-12-16 19:05:17.499269", "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.007184", "end": "2025-12-16 19:05:17.515888", "msg": "", "rc": 0, "start": "2025-12-16 19:05:17.508704", "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.002490", "end": "2025-12-16 19:04:52.314902", "msg": "", "rc": 0, "start": "2025-12-16 19:04:52.312412", "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.003188", "end": "2025-12-16 19:04:46.164471", "msg": "", "rc": 0, "start": "2025-12-16 19:04:46.161283", "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.011917", "end": "2025-12-16 19:05:18.152826", "msg": "", "rc": 0, "start": "2025-12-16 19:05:18.140909", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.012964", "end": "2025-12-16 19:05:18.204794", "msg": "", "rc": 0, "start": "2025-12-16 19:05:18.191830", "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.003368", "end": "2025-12-16 19:05:18.442650", "msg": "", "rc": 0, "start": "2025-12-16 19:05:18.439282", "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.004197", "end": "2025-12-16 16:05:18.658069", "msg": "", "rc": 0, "start": "2025-12-16 16:05:18.653872", "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.003167", "end": "2025-12-16 19:04:49.365907", "msg": "", "rc": 0, "start": "2025-12-16 19:04:49.362740", "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.002610", "end": "2025-12-16 19:04:55.629025", "msg": "", "rc": 0, "start": "2025-12-16 19:04:55.626415", "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.003139", "end": "2025-12-16 19:05:18.899255", "msg": "", "rc": 0, "start": "2025-12-16 19:05:18.896116", "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.004257", "end": "2025-12-16 19:05:19.917640", "msg": "", "rc": 0, "start": "2025-12-16 19:05:19.913383", "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.028411", "end": "2025-12-16 19:05:18.852548", "msg": "", "rc": 0, "start": "2025-12-16 19:05:18.824137", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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.004357", "end": "2025-12-16 19:05:19.390957", "msg": "", "rc": 0, "start": "2025-12-16 19:05:19.386600", "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.004005", "end": "2025-12-16 19:05:19.411961", "msg": "", "rc": 0, "start": "2025-12-16 19:05:19.407956", "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.004954", "end": "2025-12-16 19:05:19.410355", "msg": "", "rc": 0, "start": "2025-12-16 19:05:19.405401", "stderr": "", "stderr_lines": [], "stdout": "0.67", "stdout_lines": ["0.67"]}
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.005641", "end": "2025-12-16 19:05:19.427768", "msg": "", "rc": 0, "start": "2025-12-16 19:05:19.422127", "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.005740", "end": "2025-12-16 19:05:19.460102", "msg": "", "rc": 0, "start": "2025-12-16 19:05:19.454362", "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.004440", "end": "2025-12-16 19:04:54.258961", "msg": "", "rc": 0, "start": "2025-12-16 19:04:54.254521", "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.005616", "end": "2025-12-16 19:04:48.099139", "msg": "", "rc": 0, "start": "2025-12-16 19:04:48.093523", "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.010259", "end": "2025-12-16 19:05:20.168887", "msg": "", "rc": 0, "start": "2025-12-16 19:05:20.158628", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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-16 19:05:20.222778", "msg": "", "rc": 0, "start": "2025-12-16 19:05:20.211443", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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-16 19:05:20.368015", "msg": "", "rc": 0, "start": "2025-12-16 19:05:20.362404", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005007", "end": "2025-12-16 19:04:51.301235", "msg": "", "rc": 0, "start": "2025-12-16 19:04:51.296228", "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.004248", "end": "2025-12-16 19:04:57.656640", "msg": "", "rc": 0, "start": "2025-12-16 19:04:57.652392", "stderr": "", "stderr_lines": [], "stdout": "0.49", "stdout_lines": ["0.49"]}
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-16 16:05:20.696923", "msg": "", "rc": 0, "start": "2025-12-16 16:05:20.690890", "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.005334", "end": "2025-12-16 19:05:20.807088", "msg": "", "rc": 0, "start": "2025-12-16 19:05:20.801754", "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.009028", "end": "2025-12-16 19:05:21.930524", "msg": "", "rc": 0, "start": "2025-12-16 19:05:21.921496", "stderr": "", "stderr_lines": [], "stdout": "1.33", "stdout_lines": ["1.33"]}
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.024400", "end": "2025-12-16 19:05:20.783743", "msg": "", "rc": 0, "start": "2025-12-16 19:05:20.759343", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:11 up 2 days, 8:37, 1 user, load average: 0.12, 0.12, 0.14\nDisk Usage: 22%\nMemory Usage: 22.2%\nCPU Load: 0.11\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:11 up 21 days, 5:56, 1 user, load average: 0.34, 0.42, 0.43\nDisk Usage: 23%\nMemory Usage: 81.4%\nCPU Load: 0.37\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:11 up 21 days, 6:16, 1 user, load average: 0.64, 0.60, 0.65\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.67\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:11 up 21 days, 7:29, 1 user, load average: 0.65, 0.70, 0.65\nDisk Usage: 14%\nMemory Usage: 59.9%\nCPU Load: 0.60\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:11 up 21 days, 8:15, 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: 19:05:13 up 14 days, 8:31, 1 user, load average: 0.27, 0.16, 0.10\nDisk Usage: 21%\nMemory Usage: 20.6%\nCPU Load: 0.38\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 193 days, 10:38, 1 user, load average: 0.17, 0.21, 0.23\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.22\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:12 up 193 days, 10:38, 1 user, load average: 0.05, 0.12, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.05\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:46 up 10 days, 6:54, 0 user, load average: 0.09, 0.11, 0.09\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:40 up 17 days, 3:06, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 70.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:05:12 up 2 days, 8:36, 1 user, load average: 0.09, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:43 up 19 days, 21:59, 0 user, load average: 0.38, 0.42, 0.44\nDisk Usage: 28%\nMemory Usage: 25.7%\nCPU Load: 0.43\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:05PM up 21 days, 5:55, 1 user, load averages: 0.23, 0.25, 0.23\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:04:49 up 16 days, 8:20, 0 user, load average: 0.53, 0.40, 0.36\nDisk Usage: 75%\nMemory Usage: 60.7%\nCPU Load: 0.49\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:13 up 2 days, 8:36, 1 user, load average: 0.04, 0.06, 0.07\nDisk Usage: 79%\nMemory Usage: 13.9%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:05:13 up 20:42, 1 user, load average: 1.30, 1.14, 1.14\nDisk Usage: 1%\nMemory Usage: 20.3%\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-17T00:05:22.778662+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `71f05f8ed44b402fa34e343369dce437` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:10:00.003841+00:00 |
| **Fin** | 2025-12-17T00:10:21.886035+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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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.003162", "end": "2025-12-16 19:10:11.489756", "msg": "", "rc": 0, "start": "2025-12-16 19:10:11.486594", "stderr": "", "stderr_lines": [], "stdout": " 19:10:11 up 21 days, 6:01, 1 user, load average: 0.41, 0.40, 0.42", "stdout_lines": [" 19:10:11 up 21 days, 6:01, 1 user, load average: 0.41, 0.40, 0.42"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003847", "end": "2025-12-16 19:10:11.500737", "msg": "", "rc": 0, "start": "2025-12-16 19:10:11.496890", "stderr": "", "stderr_lines": [], "stdout": " 19:10:11 up 21 days, 8:20, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:10:11 up 21 days, 8:20, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003524", "end": "2025-12-16 19:10:11.499791", "msg": "", "rc": 0, "start": "2025-12-16 19:10:11.496267", "stderr": "", "stderr_lines": [], "stdout": " 19:10:11 up 21 days, 6:21, 1 user, load average: 0.68, 0.64, 0.65", "stdout_lines": [" 19:10:11 up 21 days, 6:21, 1 user, load average: 0.68, 0.64, 0.65"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003959", "end": "2025-12-16 19:10:11.523545", "msg": "", "rc": 0, "start": "2025-12-16 19:10:11.519586", "stderr": "", "stderr_lines": [], "stdout": " 19:10:11 up 21 days, 7:34, 1 user, load average: 0.45, 0.57, 0.61", "stdout_lines": [" 19:10:11 up 21 days, 7:34, 1 user, load average: 0.45, 0.57, 0.61"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002994", "end": "2025-12-16 19:10:11.534725", "msg": "", "rc": 0, "start": "2025-12-16 19:10:11.531731", "stderr": "", "stderr_lines": [], "stdout": " 19:10:11 up 2 days, 8:42, 1 user, load average: 0.06, 0.15, 0.16", "stdout_lines": [" 19:10:11 up 2 days, 8:42, 1 user, load average: 0.06, 0.15, 0.16"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003195", "end": "2025-12-16 19:09:46.345806", "msg": "", "rc": 0, "start": "2025-12-16 19:09:46.342611", "stderr": "", "stderr_lines": [], "stdout": " 19:09:46 up 10 days, 6:59, 0 user, load average: 0.18, 0.12, 0.10", "stdout_lines": [" 19:09:46 up 10 days, 6:59, 0 user, load average: 0.18, 0.12, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003291", "end": "2025-12-16 19:09:40.156727", "msg": "", "rc": 0, "start": "2025-12-16 19:09:40.153436", "stderr": "", "stderr_lines": [], "stdout": " 19:09:40 up 17 days, 3:11, 0 user, load average: 0.08, 0.03, 0.00", "stdout_lines": [" 19:09:40 up 17 days, 3:11, 0 user, load average: 0.08, 0.03, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008418", "end": "2025-12-16 19:10:12.187665", "msg": "", "rc": 0, "start": "2025-12-16 19:10:12.179247", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 193 days, 10:43, 1 user, load average: 0.10, 0.15, 0.14", "stdout_lines": [" 19:10:12 up 193 days, 10:43, 1 user, load average: 0.10, 0.15, 0.14"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009316", "end": "2025-12-16 19:10:12.232332", "msg": "", "rc": 0, "start": "2025-12-16 19:10:12.223016", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 193 days, 10:43, 1 user, load average: 0.14, 0.17, 0.20", "stdout_lines": [" 19:10:12 up 193 days, 10:43, 1 user, load average: 0.14, 0.17, 0.20"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004987", "end": "2025-12-16 19:10:12.464039", "msg": "", "rc": 0, "start": "2025-12-16 19:10:12.459052", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 2 days, 8:41, 1 user, load average: 0.08, 0.05, 0.01", "stdout_lines": [" 19:10:12 up 2 days, 8:41, 1 user, load average: 0.08, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003329", "end": "2025-12-16 19:09:43.317702", "msg": "", "rc": 0, "start": "2025-12-16 19:09:43.314373", "stderr": "", "stderr_lines": [], "stdout": " 19:09:43 up 19 days, 22:04, 0 user, load average: 0.30, 0.35, 0.41", "stdout_lines": [" 19:09:43 up 19 days, 22:04, 0 user, load average: 0.30, 0.35, 0.41"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004233", "end": "2025-12-16 16:10:12.698087", "msg": "", "rc": 0, "start": "2025-12-16 16:10:12.693854", "stderr": "", "stderr_lines": [], "stdout": " 4:10PM up 21 days, 6 hrs, 1 user, load averages: 0.16, 0.21, 0.21", "stdout_lines": [" 4:10PM up 21 days, 6 hrs, 1 user, load averages: 0.16, 0.21, 0.21"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003186", "end": "2025-12-16 19:09:49.669239", "msg": "", "rc": 0, "start": "2025-12-16 19:09:49.666053", "stderr": "", "stderr_lines": [], "stdout": " 19:09:49 up 16 days, 8:25, 0 user, load average: 0.09, 0.28, 0.33", "stdout_lines": [" 19:09:49 up 16 days, 8:25, 0 user, load average: 0.09, 0.28, 0.33"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004016", "end": "2025-12-16 19:10:12.911647", "msg": "", "rc": 0, "start": "2025-12-16 19:10:12.907631", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 2 days, 8:41, 1 user, load average: 0.15, 0.05, 0.05", "stdout_lines": [" 19:10:12 up 2 days, 8:41, 1 user, load average: 0.15, 0.05, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009312", "end": "2025-12-16 19:10:12.985194", "msg": "", "rc": 0, "start": "2025-12-16 19:10:12.975882", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 20:47, 1 user, load average: 1.24, 1.17, 1.14", "stdout_lines": [" 19:10:12 up 20:47, 1 user, load average: 1.24, 1.17, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019363", "end": "2025-12-16 19:10:12.878666", "msg": "", "rc": 0, "start": "2025-12-16 19:10:12.859303", "stderr": "", "stderr_lines": [], "stdout": " 19:10:12 up 14 days, 8:36, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 19:10:12 up 14 days, 8:36, 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.004429", "end": "2025-12-16 19:10:13.401345", "msg": "", "rc": 0, "start": "2025-12-16 19:10:13.396916", "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.004274", "end": "2025-12-16 19:10:13.408551", "msg": "", "rc": 0, "start": "2025-12-16 19:10:13.404277", "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.004613", "end": "2025-12-16 19:10:13.448502", "msg": "", "rc": 0, "start": "2025-12-16 19:10:13.443889", "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.005739", "end": "2025-12-16 19:10:13.465410", "msg": "", "rc": 0, "start": "2025-12-16 19:10:13.459671", "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.005083", "end": "2025-12-16 19:10:13.476500", "msg": "", "rc": 0, "start": "2025-12-16 19:10:13.471417", "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.005227", "end": "2025-12-16 19:09:48.324305", "msg": "", "rc": 0, "start": "2025-12-16 19:09:48.319078", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005399", "end": "2025-12-16 19:09:42.116989", "msg": "", "rc": 0, "start": "2025-12-16 19:09:42.111590", "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.010578", "end": "2025-12-16 19:10:14.192522", "msg": "", "rc": 0, "start": "2025-12-16 19:10:14.181944", "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.011570", "end": "2025-12-16 19:10:14.184058", "msg": "", "rc": 0, "start": "2025-12-16 19:10:14.172488", "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.005746", "end": "2025-12-16 19:10:14.454763", "msg": "", "rc": 0, "start": "2025-12-16 19:10:14.449017", "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.005395", "end": "2025-12-16 19:09:45.302637", "msg": "", "rc": 0, "start": "2025-12-16 19:09:45.297242", "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.005506", "end": "2025-12-16 16:10:14.676862", "msg": "", "rc": 0, "start": "2025-12-16 16:10:14.671356", "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.004751", "end": "2025-12-16 19:09:51.699513", "msg": "", "rc": 0, "start": "2025-12-16 19:09:51.694762", "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.005337", "end": "2025-12-16 19:10:14.902450", "msg": "", "rc": 0, "start": "2025-12-16 19:10:14.897113", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018626", "end": "2025-12-16 19:10:15.028316", "msg": "", "rc": 0, "start": "2025-12-16 19:10:15.009690", "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.025140", "end": "2025-12-16 19:10:14.814999", "msg": "", "rc": 0, "start": "2025-12-16 19:10:14.789859", "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.004371", "end": "2025-12-16 19:10:15.346092", "msg": "", "rc": 0, "start": "2025-12-16 19:10:15.341721", "stderr": "", "stderr_lines": [], "stdout": "81.6%", "stdout_lines": ["81.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.004166", "end": "2025-12-16 19:10:15.362660", "msg": "", "rc": 0, "start": "2025-12-16 19:10:15.358494", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004747", "end": "2025-12-16 19:10:15.387625", "msg": "", "rc": 0, "start": "2025-12-16 19:10:15.382878", "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.005226", "end": "2025-12-16 19:10:15.412077", "msg": "", "rc": 0, "start": "2025-12-16 19:10:15.406851", "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.005580", "end": "2025-12-16 19:10:15.418851", "msg": "", "rc": 0, "start": "2025-12-16 19:10:15.413271", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.004011", "end": "2025-12-16 19:09:50.278574", "msg": "", "rc": 0, "start": "2025-12-16 19:09:50.274563", "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.004585", "end": "2025-12-16 19:09:44.060728", "msg": "", "rc": 0, "start": "2025-12-16 19:09:44.056143", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.010997", "end": "2025-12-16 19:10:16.064049", "msg": "", "rc": 0, "start": "2025-12-16 19:10:16.053052", "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.012209", "end": "2025-12-16 19:10:16.117482", "msg": "", "rc": 0, "start": "2025-12-16 19:10:16.105273", "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-16 19:10:16.395924", "msg": "", "rc": 0, "start": "2025-12-16 19:10:16.389890", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004313", "end": "2025-12-16 19:09:47.270295", "msg": "", "rc": 0, "start": "2025-12-16 19:09:47.265982", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.003888", "end": "2025-12-16 19:09:53.551067", "msg": "", "rc": 0, "start": "2025-12-16 19:09:53.547179", "stderr": "", "stderr_lines": [], "stdout": "60.3%", "stdout_lines": ["60.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.005135", "end": "2025-12-16 16:10:16.610334", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:10:16.605199", "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.005408", "end": "2025-12-16 19:10:16.826537", "msg": "", "rc": 0, "start": "2025-12-16 19:10:16.821129", "stderr": "", "stderr_lines": [], "stdout": "13.8%", "stdout_lines": ["13.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.025557", "end": "2025-12-16 19:10:16.758244", "msg": "", "rc": 0, "start": "2025-12-16 19:10:16.732687", "stderr": "", "stderr_lines": [], "stdout": "20.0%", "stdout_lines": ["20.0%"]}
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.009653", "end": "2025-12-16 19:10:17.088963", "msg": "", "rc": 0, "start": "2025-12-16 19:10:17.079310", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005095", "end": "2025-12-16 19:10:17.312505", "msg": "", "rc": 0, "start": "2025-12-16 19:10:17.307410", "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.004944", "end": "2025-12-16 19:10:17.315910", "msg": "", "rc": 0, "start": "2025-12-16 19:10:17.310966", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005785", "end": "2025-12-16 19:10:17.332902", "msg": "", "rc": 0, "start": "2025-12-16 19:10:17.327117", "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.003351", "end": "2025-12-16 19:10:17.376736", "msg": "", "rc": 0, "start": "2025-12-16 19:10:17.373385", "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.006083", "end": "2025-12-16 19:10:17.372517", "msg": "", "rc": 0, "start": "2025-12-16 19:10:17.366434", "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.002972", "end": "2025-12-16 19:09:52.187289", "msg": "", "rc": 0, "start": "2025-12-16 19:09:52.184317", "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.003224", "end": "2025-12-16 19:09:45.998119", "msg": "", "rc": 0, "start": "2025-12-16 19:09:45.994895", "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.012185", "end": "2025-12-16 19:10:18.030629", "msg": "", "rc": 0, "start": "2025-12-16 19:10:18.018444", "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.012945", "end": "2025-12-16 19:10:18.069950", "msg": "", "rc": 0, "start": "2025-12-16 19:10:18.057005", "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.003732", "end": "2025-12-16 19:10:18.330500", "msg": "", "rc": 0, "start": "2025-12-16 19:10:18.326768", "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.002966", "end": "2025-12-16 19:09:49.179671", "msg": "", "rc": 0, "start": "2025-12-16 19:09:49.176705", "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.002570", "end": "2025-12-16 19:09:55.500108", "msg": "", "rc": 0, "start": "2025-12-16 19:09:55.497538", "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.003944", "end": "2025-12-16 16:10:18.541925", "msg": "", "rc": 0, "start": "2025-12-16 16:10:18.537981", "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.003177", "end": "2025-12-16 19:10:18.772440", "msg": "", "rc": 0, "start": "2025-12-16 19:10:18.769263", "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.004719", "end": "2025-12-16 19:10:19.053047", "msg": "", "rc": 0, "start": "2025-12-16 19:10:19.048328", "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.028287", "end": "2025-12-16 19:10:18.720398", "msg": "", "rc": 0, "start": "2025-12-16 19:10:18.692111", "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.004262", "end": "2025-12-16 19:10:19.247598", "msg": "", "rc": 0, "start": "2025-12-16 19:10:19.243336", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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.004000", "end": "2025-12-16 19:10:19.274085", "msg": "", "rc": 0, "start": "2025-12-16 19:10:19.270085", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.004822", "end": "2025-12-16 19:10:19.268040", "msg": "", "rc": 0, "start": "2025-12-16 19:10:19.263218", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004902", "end": "2025-12-16 19:10:19.301009", "msg": "", "rc": 0, "start": "2025-12-16 19:10:19.296107", "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.005624", "end": "2025-12-16 19:10:19.331264", "msg": "", "rc": 0, "start": "2025-12-16 19:10:19.325640", "stderr": "", "stderr_lines": [], "stdout": "0.49", "stdout_lines": ["0.49"]}
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.004445", "end": "2025-12-16 19:09:54.129237", "msg": "", "rc": 0, "start": "2025-12-16 19:09:54.124792", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005434", "end": "2025-12-16 19:09:47.975564", "msg": "", "rc": 0, "start": "2025-12-16 19:09:47.970130", "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.010142", "end": "2025-12-16 19:10:20.033381", "msg": "", "rc": 0, "start": "2025-12-16 19:10:20.023239", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
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.011190", "end": "2025-12-16 19:10:20.070651", "msg": "", "rc": 0, "start": "2025-12-16 19:10:20.059461", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005631", "end": "2025-12-16 19:10:20.252419", "msg": "", "rc": 0, "start": "2025-12-16 19:10:20.246788", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.006774", "end": "2025-12-16 19:09:51.175805", "msg": "", "rc": 0, "start": "2025-12-16 19:09:51.169031", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.004511", "end": "2025-12-16 19:09:57.500594", "msg": "", "rc": 0, "start": "2025-12-16 19:09:57.496083", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
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.005988", "end": "2025-12-16 16:10:20.548752", "msg": "", "rc": 0, "start": "2025-12-16 16:10:20.542764", "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.005258", "end": "2025-12-16 19:10:20.678530", "msg": "", "rc": 0, "start": "2025-12-16 19:10:20.673272", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.024362", "end": "2025-12-16 19:10:20.643013", "msg": "", "rc": 0, "start": "2025-12-16 19:10:20.618651", "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.007460", "end": "2025-12-16 19:10:21.117612", "msg": "", "rc": 0, "start": "2025-12-16 19:10:21.110152", "stderr": "", "stderr_lines": [], "stdout": "1.59", "stdout_lines": ["1.59"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:11 up 21 days, 6:01, 1 user, load average: 0.41, 0.40, 0.42\nDisk Usage: 23%\nMemory Usage: 81.6%\nCPU Load: 0.43\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:11 up 2 days, 8:42, 1 user, load average: 0.06, 0.15, 0.16\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.06\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:11 up 21 days, 6:21, 1 user, load average: 0.68, 0.64, 0.65\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.65\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:11 up 21 days, 7:34, 1 user, load average: 0.45, 0.57, 0.61\nDisk Usage: 14%\nMemory Usage: 60.0%\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:10:11 up 21 days, 8:20, 1 user, load average: 0.00, 0.00, 0.00\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:10:12 up 14 days, 8:36, 1 user, load average: 0.22, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 20.0%\nCPU Load: 0.34\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 193 days, 10:43, 1 user, load average: 0.14, 0.17, 0.20\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.20\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 193 days, 10:43, 1 user, load average: 0.10, 0.15, 0.14\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.09\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:46 up 10 days, 6:59, 0 user, load average: 0.18, 0.12, 0.10\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:40 up 17 days, 3:11, 0 user, load average: 0.08, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 70.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 2 days, 8:41, 1 user, load average: 0.08, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:43 up 19 days, 22:04, 0 user, load average: 0.30, 0.35, 0.41\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:09:49 up 16 days, 8:25, 0 user, load average: 0.09, 0.28, 0.33\nDisk Usage: 75%\nMemory Usage: 60.3%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:10PM up 21 days, 6 hrs, 1 user, load averages: 0.16, 0.21, 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:10:12 up 2 days, 8:41, 1 user, load average: 0.15, 0.05, 0.05\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:10:12 up 20:47, 1 user, load average: 1.24, 1.17, 1.14\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.59\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-17T00:10:21.930131+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `bf4b6434a6e24565934f5b46cf8ad2d0` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:15:00.001459+00:00 |
| **Fin** | 2025-12-17T00:15:22.099831+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: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.004073", "end": "2025-12-16 19:15:11.265530", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.261457", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 21 days, 8:25, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:15:11 up 21 days, 8:25, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003266", "end": "2025-12-16 19:15:11.263301", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.260035", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 21 days, 6:26, 1 user, load average: 1.25, 0.85, 0.72", "stdout_lines": [" 19:15:11 up 21 days, 6:26, 1 user, load average: 1.25, 0.85, 0.72"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004096", "end": "2025-12-16 19:15:11.283245", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.279149", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 21 days, 7:39, 1 user, load average: 0.57, 0.53, 0.59", "stdout_lines": [" 19:15:11 up 21 days, 7:39, 1 user, load average: 0.57, 0.53, 0.59"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002844", "end": "2025-12-16 19:15:11.295127", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.292283", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 2 days, 8:47, 1 user, load average: 0.12, 0.13, 0.15", "stdout_lines": [" 19:15:11 up 2 days, 8:47, 1 user, load average: 0.12, 0.13, 0.15"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002869", "end": "2025-12-16 19:14:46.137274", "msg": "", "rc": 0, "start": "2025-12-16 19:14:46.134405", "stderr": "", "stderr_lines": [], "stdout": " 19:14:46 up 10 days, 7:04, 0 user, load average: 0.09, 0.06, 0.08", "stdout_lines": [" 19:14:46 up 10 days, 7:04, 0 user, load average: 0.09, 0.06, 0.08"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008651", "end": "2025-12-16 19:15:11.961038", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.952387", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 193 days, 10:48, 1 user, load average: 0.10, 0.14, 0.13", "stdout_lines": [" 19:15:11 up 193 days, 10:48, 1 user, load average: 0.10, 0.14, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009299", "end": "2025-12-16 19:15:11.991769", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.982470", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 193 days, 10:48, 1 user, load average: 0.23, 0.22, 0.21", "stdout_lines": [" 19:15:11 up 193 days, 10:48, 1 user, load average: 0.23, 0.22, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004200", "end": "2025-12-16 19:15:12.253603", "msg": "", "rc": 0, "start": "2025-12-16 19:15:11.249403", "stderr": "", "stderr_lines": [], "stdout": " 19:15:11 up 21 days, 6:06, 1 user, load average: 0.29, 0.33, 0.38", "stdout_lines": [" 19:15:11 up 21 days, 6:06, 1 user, load average: 0.29, 0.33, 0.38"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003514", "end": "2025-12-16 19:14:40.395999", "msg": "", "rc": 0, "start": "2025-12-16 19:14:40.392485", "stderr": "", "stderr_lines": [], "stdout": " 19:14:40 up 17 days, 3:16, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:14:40 up 17 days, 3:16, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004718", "end": "2025-12-16 19:15:12.468563", "msg": "", "rc": 0, "start": "2025-12-16 19:15:12.463845", "stderr": "", "stderr_lines": [], "stdout": " 19:15:12 up 2 days, 8:46, 1 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 19:15:12 up 2 days, 8:46, 1 user, load average: 0.01, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003209", "end": "2025-12-16 19:14:43.290642", "msg": "", "rc": 0, "start": "2025-12-16 19:14:43.287433", "stderr": "", "stderr_lines": [], "stdout": " 19:14:43 up 19 days, 22:09, 0 user, load average: 0.54, 0.46, 0.44", "stdout_lines": [" 19:14:43 up 19 days, 22:09, 0 user, load average: 0.54, 0.46, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002909", "end": "2025-12-16 19:14:49.666123", "msg": "", "rc": 0, "start": "2025-12-16 19:14:49.663214", "stderr": "", "stderr_lines": [], "stdout": " 19:14:49 up 16 days, 8:30, 0 user, load average: 0.21, 0.20, 0.27", "stdout_lines": [" 19:14:49 up 16 days, 8:30, 0 user, load average: 0.21, 0.20, 0.27"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004288", "end": "2025-12-16 16:15:12.760007", "msg": "", "rc": 0, "start": "2025-12-16 16:15:12.755719", "stderr": "", "stderr_lines": [], "stdout": " 4:15PM up 21 days, 6:05, 1 user, load averages: 0.33, 0.27, 0.24", "stdout_lines": [" 4:15PM up 21 days, 6:05, 1 user, load averages: 0.33, 0.27, 0.24"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019311", "end": "2025-12-16 19:15:12.662284", "msg": "", "rc": 0, "start": "2025-12-16 19:15:12.642973", "stderr": "", "stderr_lines": [], "stdout": " 19:15:12 up 14 days, 8:41, 1 user, load average: 0.21, 0.13, 0.10", "stdout_lines": [" 19:15:12 up 14 days, 8:41, 1 user, load average: 0.21, 0.13, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003729", "end": "2025-12-16 19:15:12.898891", "msg": "", "rc": 0, "start": "2025-12-16 19:15:12.895162", "stderr": "", "stderr_lines": [], "stdout": " 19:15:12 up 2 days, 8:46, 1 user, load average: 0.20, 0.09, 0.06", "stdout_lines": [" 19:15:12 up 2 days, 8:46, 1 user, load average: 0.20, 0.09, 0.06"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008148", "end": "2025-12-16 19:15:13.359647", "msg": "", "rc": 0, "start": "2025-12-16 19:15:13.351499", "stderr": "", "stderr_lines": [], "stdout": " 19:15:13 up 20:52, 1 user, load average: 1.15, 1.16, 1.16", "stdout_lines": [" 19:15:13 up 20:52, 1 user, load average: 1.15, 1.16, 1.16"]}
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-16 19:15:13.321587", "msg": "", "rc": 0, "start": "2025-12-16 19:15:13.317477", "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.004282", "end": "2025-12-16 19:15:13.331779", "msg": "", "rc": 0, "start": "2025-12-16 19:15:13.327497", "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.004843", "end": "2025-12-16 19:15:13.350615", "msg": "", "rc": 0, "start": "2025-12-16 19:15:13.345772", "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.004620", "end": "2025-12-16 19:15:13.375972", "msg": "", "rc": 0, "start": "2025-12-16 19:15:13.371352", "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.005317", "end": "2025-12-16 19:15:13.369481", "msg": "", "rc": 0, "start": "2025-12-16 19:15:13.364164", "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.004977", "end": "2025-12-16 19:14:48.189370", "msg": "", "rc": 0, "start": "2025-12-16 19:14:48.184393", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005361", "end": "2025-12-16 19:14:41.992010", "msg": "", "rc": 0, "start": "2025-12-16 19:14:41.986649", "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.010624", "end": "2025-12-16 19:15:14.054398", "msg": "", "rc": 0, "start": "2025-12-16 19:15:14.043774", "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.011720", "end": "2025-12-16 19:15:14.093603", "msg": "", "rc": 0, "start": "2025-12-16 19:15:14.081883", "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.005855", "end": "2025-12-16 19:15:14.308762", "msg": "", "rc": 0, "start": "2025-12-16 19:15:14.302907", "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.005667", "end": "2025-12-16 19:14:45.166021", "msg": "", "rc": 0, "start": "2025-12-16 19:14:45.160354", "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.005293", "end": "2025-12-16 19:14:51.523263", "msg": "", "rc": 0, "start": "2025-12-16 19:14:51.517970", "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.006265", "end": "2025-12-16 16:15:14.557965", "msg": "", "rc": 0, "start": "2025-12-16 16:15:14.551700", "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.005727", "end": "2025-12-16 19:15:14.740316", "msg": "", "rc": 0, "start": "2025-12-16 19:15:14.734589", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020134", "end": "2025-12-16 19:15:15.281179", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.261045", "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.024918", "end": "2025-12-16 19:15:14.708574", "msg": "", "rc": 0, "start": "2025-12-16 19:15:14.683656", "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.004412", "end": "2025-12-16 19:15:15.232630", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.228218", "stderr": "", "stderr_lines": [], "stdout": "81.6%", "stdout_lines": ["81.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.004416", "end": "2025-12-16 19:15:15.253936", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.249520", "stderr": "", "stderr_lines": [], "stdout": "22.2%", "stdout_lines": ["22.2%"]}
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.004745", "end": "2025-12-16 19:15:15.256429", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.251684", "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.005116", "end": "2025-12-16 19:15:15.285945", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.280829", "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.005337", "end": "2025-12-16 19:15:15.300313", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.294976", "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.003656", "end": "2025-12-16 19:14:50.093661", "msg": "", "rc": 0, "start": "2025-12-16 19:14:50.090005", "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.004371", "end": "2025-12-16 19:14:43.909121", "msg": "", "rc": 0, "start": "2025-12-16 19:14:43.904750", "stderr": "", "stderr_lines": [], "stdout": "69.5%", "stdout_lines": ["69.5%"]}
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.011057", "end": "2025-12-16 19:15:15.936678", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.925621", "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.011918", "end": "2025-12-16 19:15:15.980743", "msg": "", "rc": 0, "start": "2025-12-16 19:15:15.968825", "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.005881", "end": "2025-12-16 19:15:16.188399", "msg": "", "rc": 0, "start": "2025-12-16 19:15:16.182518", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004025", "end": "2025-12-16 19:14:47.086389", "msg": "", "rc": 0, "start": "2025-12-16 19:14:47.082364", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005243", "end": "2025-12-16 16:15:16.447681", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:15:16.442438", "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.004081", "end": "2025-12-16 19:14:53.411123", "msg": "", "rc": 0, "start": "2025-12-16 19:14:53.407042", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.005551", "end": "2025-12-16 19:15:16.619915", "msg": "", "rc": 0, "start": "2025-12-16 19:15:16.614364", "stderr": "", "stderr_lines": [], "stdout": "14.1%", "stdout_lines": ["14.1%"]}
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.008735", "end": "2025-12-16 19:15:17.274994", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.266259", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.026795", "end": "2025-12-16 19:15:16.620605", "msg": "", "rc": 0, "start": "2025-12-16 19:15:16.593810", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005266", "end": "2025-12-16 19:15:17.154727", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.149461", "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.005020", "end": "2025-12-16 19:15:17.174951", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.169931", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005771", "end": "2025-12-16 19:15:17.173146", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.167375", "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.003202", "end": "2025-12-16 19:15:17.203652", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.200450", "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.006357", "end": "2025-12-16 19:15:17.220603", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.214246", "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.002854", "end": "2025-12-16 19:14:52.009994", "msg": "", "rc": 0, "start": "2025-12-16 19:14:52.007140", "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.003084", "end": "2025-12-16 19:14:45.839268", "msg": "", "rc": 0, "start": "2025-12-16 19:14:45.836184", "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.011935", "end": "2025-12-16 19:15:17.860743", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.848808", "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.013236", "end": "2025-12-16 19:15:17.889322", "msg": "", "rc": 0, "start": "2025-12-16 19:15:17.876086", "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.003094", "end": "2025-12-16 19:15:18.128997", "msg": "", "rc": 0, "start": "2025-12-16 19:15:18.125903", "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.004562", "end": "2025-12-16 19:14:49.040248", "msg": "", "rc": 0, "start": "2025-12-16 19:14:49.035686", "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.004228", "end": "2025-12-16 16:15:18.360984", "msg": "", "rc": 0, "start": "2025-12-16 16:15:18.356756", "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.002974", "end": "2025-12-16 19:14:55.343012", "msg": "", "rc": 0, "start": "2025-12-16 19:14:55.340038", "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.003651", "end": "2025-12-16 19:15:18.592372", "msg": "", "rc": 0, "start": "2025-12-16 19:15:18.588721", "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.003992", "end": "2025-12-16 19:15:19.311820", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.307828", "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.028556", "end": "2025-12-16 19:15:18.542232", "msg": "", "rc": 0, "start": "2025-12-16 19:15:18.513676", "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.004190", "end": "2025-12-16 19:15:19.056514", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.052324", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
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.005087", "end": "2025-12-16 19:15:19.080904", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.075817", "stderr": "", "stderr_lines": [], "stdout": "1.13", "stdout_lines": ["1.13"]}
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.004174", "end": "2025-12-16 19:15:19.080576", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.076402", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.005633", "end": "2025-12-16 19:15:19.114032", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.108399", "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.005433", "end": "2025-12-16 19:15:19.124100", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.118667", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
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.004515", "end": "2025-12-16 19:14:53.930613", "msg": "", "rc": 0, "start": "2025-12-16 19:14:53.926098", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005148", "end": "2025-12-16 19:14:47.737954", "msg": "", "rc": 0, "start": "2025-12-16 19:14:47.732806", "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.010203", "end": "2025-12-16 19:15:19.837578", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.827375", "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.011172", "end": "2025-12-16 19:15:19.878319", "msg": "", "rc": 0, "start": "2025-12-16 19:15:19.867147", "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.005661", "end": "2025-12-16 19:15:20.056534", "msg": "", "rc": 0, "start": "2025-12-16 19:15:20.050873", "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.005132", "end": "2025-12-16 19:14:50.902951", "msg": "", "rc": 0, "start": "2025-12-16 19:14:50.897819", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.004443", "end": "2025-12-16 19:14:57.310575", "msg": "", "rc": 0, "start": "2025-12-16 19:14:57.306132", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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-16 16:15:20.353772", "msg": "", "rc": 0, "start": "2025-12-16 16:15:20.347729", "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.005340", "end": "2025-12-16 19:15:20.484308", "msg": "", "rc": 0, "start": "2025-12-16 19:15:20.478968", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
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.006652", "end": "2025-12-16 19:15:21.256095", "msg": "", "rc": 0, "start": "2025-12-16 19:15:21.249443", "stderr": "", "stderr_lines": [], "stdout": "1.21", "stdout_lines": ["1.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.024061", "end": "2025-12-16 19:15:20.436718", "msg": "", "rc": 0, "start": "2025-12-16 19:15:20.412657", "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: 19:15:11 up 2 days, 8:47, 1 user, load average: 0.12, 0.13, 0.15\nDisk Usage: 22%\nMemory Usage: 22.2%\nCPU Load: 0.11\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:11 up 21 days, 6:06, 1 user, load average: 0.29, 0.33, 0.38\nDisk Usage: 23%\nMemory Usage: 81.6%\nCPU Load: 0.40\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:11 up 21 days, 6:26, 1 user, load average: 1.25, 0.85, 0.72\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.13\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:11 up 21 days, 7:39, 1 user, load average: 0.57, 0.53, 0.59\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.52\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:11 up 21 days, 8:25, 1 user, load average: 0.00, 0.00, 0.00\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:15:12 up 14 days, 8:41, 1 user, load average: 0.21, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 20.4%\nCPU Load: 0.26\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:11 up 193 days, 10:48, 1 user, load average: 0.23, 0.22, 0.21\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.21\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:11 up 193 days, 10:48, 1 user, load average: 0.10, 0.14, 0.13\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: 19:14:46 up 10 days, 7:04, 0 user, load average: 0.09, 0.06, 0.08\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:40 up 17 days, 3:16, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:12 up 2 days, 8:46, 1 user, load average: 0.01, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:43 up 19 days, 22:09, 0 user, load average: 0.54, 0.46, 0.44\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.62\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:14:49 up 16 days, 8:30, 0 user, load average: 0.21, 0.20, 0.27\nDisk Usage: 75%\nMemory Usage: 60.5%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:15PM up 21 days, 6:05, 1 user, load averages: 0.33, 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:15:12 up 2 days, 8:46, 1 user, load average: 0.20, 0.09, 0.06\nDisk Usage: 79%\nMemory Usage: 14.1%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:15:13 up 20:52, 1 user, load average: 1.15, 1.16, 1.16\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.21\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-17T00:15:22.140163+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `5035dd0ac6cb43e5abab2514fbed43cf` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:20:00.003293+00:00 |
| **Fin** | 2025-12-17T00:20:21.818551+00:00 |
| **Durée** | 21.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: [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.003146", "end": "2025-12-16 19:20:11.736901", "msg": "", "rc": 0, "start": "2025-12-16 19:20:11.733755", "stderr": "", "stderr_lines": [], "stdout": " 19:20:11 up 21 days, 6:11, 1 user, load average: 0.38, 0.33, 0.36", "stdout_lines": [" 19:20:11 up 21 days, 6:11, 1 user, load average: 0.38, 0.33, 0.36"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004071", "end": "2025-12-16 19:20:11.753392", "msg": "", "rc": 0, "start": "2025-12-16 19:20:11.749321", "stderr": "", "stderr_lines": [], "stdout": " 19:20:11 up 21 days, 8:30, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:20:11 up 21 days, 8:30, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003762", "end": "2025-12-16 19:20:11.758574", "msg": "", "rc": 0, "start": "2025-12-16 19:20:11.754812", "stderr": "", "stderr_lines": [], "stdout": " 19:20:11 up 21 days, 6:31, 1 user, load average: 0.70, 0.74, 0.71", "stdout_lines": [" 19:20:11 up 21 days, 6:31, 1 user, load average: 0.70, 0.74, 0.71"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003644", "end": "2025-12-16 19:20:11.767046", "msg": "", "rc": 0, "start": "2025-12-16 19:20:11.763402", "stderr": "", "stderr_lines": [], "stdout": " 19:20:11 up 21 days, 7:44, 1 user, load average: 0.50, 0.56, 0.58", "stdout_lines": [" 19:20:11 up 21 days, 7:44, 1 user, load average: 0.50, 0.56, 0.58"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002808", "end": "2025-12-16 19:20:11.776354", "msg": "", "rc": 0, "start": "2025-12-16 19:20:11.773546", "stderr": "", "stderr_lines": [], "stdout": " 19:20:11 up 2 days, 8:52, 1 user, load average: 0.29, 0.20, 0.17", "stdout_lines": [" 19:20:11 up 2 days, 8:52, 1 user, load average: 0.29, 0.20, 0.17"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003056", "end": "2025-12-16 19:19:46.575114", "msg": "", "rc": 0, "start": "2025-12-16 19:19:46.572058", "stderr": "", "stderr_lines": [], "stdout": " 19:19:46 up 10 days, 7:09, 0 user, load average: 0.13, 0.10, 0.09", "stdout_lines": [" 19:19:46 up 10 days, 7:09, 0 user, load average: 0.13, 0.10, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003212", "end": "2025-12-16 19:19:40.380415", "msg": "", "rc": 0, "start": "2025-12-16 19:19:40.377203", "stderr": "", "stderr_lines": [], "stdout": " 19:19:40 up 17 days, 3:21, 0 user, load average: 0.15, 0.06, 0.02", "stdout_lines": [" 19:19:40 up 17 days, 3:21, 0 user, load average: 0.15, 0.06, 0.02"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008396", "end": "2025-12-16 19:20:12.445538", "msg": "", "rc": 0, "start": "2025-12-16 19:20:12.437142", "stderr": "", "stderr_lines": [], "stdout": " 19:20:12 up 193 days, 10:53, 1 user, load average: 0.17, 0.13, 0.12", "stdout_lines": [" 19:20:12 up 193 days, 10:53, 1 user, load average: 0.17, 0.13, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009244", "end": "2025-12-16 19:20:12.479493", "msg": "", "rc": 0, "start": "2025-12-16 19:20:12.470249", "stderr": "", "stderr_lines": [], "stdout": " 19:20:12 up 193 days, 10:53, 1 user, load average: 0.28, 0.25, 0.22", "stdout_lines": [" 19:20:12 up 193 days, 10:53, 1 user, load average: 0.28, 0.25, 0.22"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004719", "end": "2025-12-16 19:20:12.695001", "msg": "", "rc": 0, "start": "2025-12-16 19:20:12.690282", "stderr": "", "stderr_lines": [], "stdout": " 19:20:12 up 2 days, 8:51, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 19:20:12 up 2 days, 8:51, 1 user, load average: 0.04, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003122", "end": "2025-12-16 19:19:43.548311", "msg": "", "rc": 0, "start": "2025-12-16 19:19:43.545189", "stderr": "", "stderr_lines": [], "stdout": " 19:19:43 up 19 days, 22:14, 0 user, load average: 0.47, 0.48, 0.45", "stdout_lines": [" 19:19:43 up 19 days, 22:14, 0 user, load average: 0.47, 0.48, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004361", "end": "2025-12-16 16:20:12.939775", "msg": "", "rc": 0, "start": "2025-12-16 16:20:12.935414", "stderr": "", "stderr_lines": [], "stdout": " 4:20PM up 21 days, 6:10, 1 user, load averages: 0.24, 0.22, 0.22", "stdout_lines": [" 4:20PM up 21 days, 6:10, 1 user, load averages: 0.24, 0.22, 0.22"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003225", "end": "2025-12-16 19:19:49.908268", "msg": "", "rc": 0, "start": "2025-12-16 19:19:49.905043", "stderr": "", "stderr_lines": [], "stdout": " 19:19:49 up 16 days, 8:35, 0 user, load average: 0.16, 0.19, 0.25", "stdout_lines": [" 19:19:49 up 16 days, 8:35, 0 user, load average: 0.16, 0.19, 0.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003700", "end": "2025-12-16 19:20:13.121273", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.117573", "stderr": "", "stderr_lines": [], "stdout": " 19:20:13 up 2 days, 8:51, 1 user, load average: 0.07, 0.05, 0.04", "stdout_lines": [" 19:20:13 up 2 days, 8:51, 1 user, load average: 0.07, 0.05, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008770", "end": "2025-12-16 19:20:14.066178", "msg": "", "rc": 0, "start": "2025-12-16 19:20:14.057408", "stderr": "", "stderr_lines": [], "stdout": " 19:20:14 up 20:57, 1 user, load average: 1.54, 1.19, 1.15", "stdout_lines": [" 19:20:14 up 20:57, 1 user, load average: 1.54, 1.19, 1.15"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019317", "end": "2025-12-16 19:20:13.140757", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.121440", "stderr": "", "stderr_lines": [], "stdout": " 19:20:13 up 14 days, 8:46, 1 user, load average: 0.16, 0.12, 0.09", "stdout_lines": [" 19:20:13 up 14 days, 8:46, 1 user, load average: 0.16, 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.004281", "end": "2025-12-16 19:20:13.668387", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.664106", "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.004060", "end": "2025-12-16 19:20:13.678527", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.674467", "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.004617", "end": "2025-12-16 19:20:13.686783", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.682166", "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.004878", "end": "2025-12-16 19:20:13.724521", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.719643", "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.005746", "end": "2025-12-16 19:20:13.727417", "msg": "", "rc": 0, "start": "2025-12-16 19:20:13.721671", "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.005076", "end": "2025-12-16 19:19:48.525842", "msg": "", "rc": 0, "start": "2025-12-16 19:19:48.520766", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005475", "end": "2025-12-16 19:19:42.340142", "msg": "", "rc": 0, "start": "2025-12-16 19:19:42.334667", "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.010574", "end": "2025-12-16 19:20:14.411184", "msg": "", "rc": 0, "start": "2025-12-16 19:20:14.400610", "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.011604", "end": "2025-12-16 19:20:14.433946", "msg": "", "rc": 0, "start": "2025-12-16 19:20:14.422342", "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-16 19:20:14.657716", "msg": "", "rc": 0, "start": "2025-12-16 19:20:14.651929", "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.005447", "end": "2025-12-16 19:19:45.516769", "msg": "", "rc": 0, "start": "2025-12-16 19:19:45.511322", "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.005544", "end": "2025-12-16 16:20:14.908266", "msg": "", "rc": 0, "start": "2025-12-16 16:20:14.902722", "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.004751", "end": "2025-12-16 19:19:51.875451", "msg": "", "rc": 0, "start": "2025-12-16 19:19:51.870700", "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.005292", "end": "2025-12-16 19:20:15.096597", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.091305", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021247", "end": "2025-12-16 19:20:16.080132", "msg": "", "rc": 0, "start": "2025-12-16 19:20:16.058885", "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.025637", "end": "2025-12-16 19:20:15.063967", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.038330", "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.004822", "end": "2025-12-16 19:20:15.585258", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.580436", "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.004438", "end": "2025-12-16 19:20:15.601416", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.596978", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005318", "end": "2025-12-16 19:20:15.607725", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.602407", "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.005063", "end": "2025-12-16 19:20:15.651491", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.646428", "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.005382", "end": "2025-12-16 19:20:15.662647", "msg": "", "rc": 0, "start": "2025-12-16 19:20:15.657265", "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.004329", "end": "2025-12-16 19:19:50.455998", "msg": "", "rc": 0, "start": "2025-12-16 19:19:50.451669", "stderr": "", "stderr_lines": [], "stdout": "70.4%", "stdout_lines": ["70.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.005891", "end": "2025-12-16 19:19:44.267339", "msg": "", "rc": 0, "start": "2025-12-16 19:19:44.261448", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.010883", "end": "2025-12-16 19:20:16.286917", "msg": "", "rc": 0, "start": "2025-12-16 19:20:16.276034", "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.012460", "end": "2025-12-16 19:20:16.303584", "msg": "", "rc": 0, "start": "2025-12-16 19:20:16.291124", "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.005894", "end": "2025-12-16 19:20:16.597730", "msg": "", "rc": 0, "start": "2025-12-16 19:20:16.591836", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004399", "end": "2025-12-16 19:19:47.441973", "msg": "", "rc": 0, "start": "2025-12-16 19:19:47.437574", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.005285", "end": "2025-12-16 16:20:16.772348", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:20:16.767063", "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.003894", "end": "2025-12-16 19:19:53.748303", "msg": "", "rc": 0, "start": "2025-12-16 19:19:53.744409", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.005397", "end": "2025-12-16 19:20:17.047449", "msg": "", "rc": 0, "start": "2025-12-16 19:20:17.042052", "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.010604", "end": "2025-12-16 19:20:18.070534", "msg": "", "rc": 0, "start": "2025-12-16 19:20:18.059930", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025458", "end": "2025-12-16 19:20:16.987230", "msg": "", "rc": 0, "start": "2025-12-16 19:20:16.961772", "stderr": "", "stderr_lines": [], "stdout": "19.7%", "stdout_lines": ["19.7%"]}
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-16 19:20:17.504845", "msg": "", "rc": 0, "start": "2025-12-16 19:20:17.499740", "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.005177", "end": "2025-12-16 19:20:17.537489", "msg": "", "rc": 0, "start": "2025-12-16 19:20:17.532312", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005448", "end": "2025-12-16 19:20:17.538157", "msg": "", "rc": 0, "start": "2025-12-16 19:20:17.532709", "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.003064", "end": "2025-12-16 19:20:17.573651", "msg": "", "rc": 0, "start": "2025-12-16 19:20:17.570587", "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.006009", "end": "2025-12-16 19:20:17.594667", "msg": "", "rc": 0, "start": "2025-12-16 19:20:17.588658", "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.002686", "end": "2025-12-16 19:19:52.369142", "msg": "", "rc": 0, "start": "2025-12-16 19:19:52.366456", "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.003314", "end": "2025-12-16 19:19:46.198190", "msg": "", "rc": 0, "start": "2025-12-16 19:19:46.194876", "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.011737", "end": "2025-12-16 19:20:18.227383", "msg": "", "rc": 0, "start": "2025-12-16 19:20:18.215646", "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.013214", "end": "2025-12-16 19:20:18.259939", "msg": "", "rc": 0, "start": "2025-12-16 19:20:18.246725", "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.003262", "end": "2025-12-16 19:20:18.476322", "msg": "", "rc": 0, "start": "2025-12-16 19:20:18.473060", "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.002969", "end": "2025-12-16 19:19:49.376170", "msg": "", "rc": 0, "start": "2025-12-16 19:19:49.373201", "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.002859", "end": "2025-12-16 19:19:55.685290", "msg": "", "rc": 0, "start": "2025-12-16 19:19:55.682431", "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.004090", "end": "2025-12-16 16:20:18.728053", "msg": "", "rc": 0, "start": "2025-12-16 16:20:18.723963", "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.003223", "end": "2025-12-16 19:20:18.923491", "msg": "", "rc": 0, "start": "2025-12-16 19:20:18.920268", "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.005659", "end": "2025-12-16 19:20:20.045938", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.040279", "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.028313", "end": "2025-12-16 19:20:18.909319", "msg": "", "rc": 0, "start": "2025-12-16 19:20:18.881006", "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.004261", "end": "2025-12-16 19:20:19.446198", "msg": "", "rc": 0, "start": "2025-12-16 19:20:19.441937", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.004059", "end": "2025-12-16 19:20:19.450563", "msg": "", "rc": 0, "start": "2025-12-16 19:20:19.446504", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.004889", "end": "2025-12-16 19:20:19.481427", "msg": "", "rc": 0, "start": "2025-12-16 19:20:19.476538", "stderr": "", "stderr_lines": [], "stdout": "0.73", "stdout_lines": ["0.73"]}
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.004922", "end": "2025-12-16 19:20:19.492344", "msg": "", "rc": 0, "start": "2025-12-16 19:20:19.487422", "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.006005", "end": "2025-12-16 19:20:19.524867", "msg": "", "rc": 0, "start": "2025-12-16 19:20:19.518862", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
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.004536", "end": "2025-12-16 19:19:54.316548", "msg": "", "rc": 0, "start": "2025-12-16 19:19:54.312012", "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.005242", "end": "2025-12-16 19:19:48.134677", "msg": "", "rc": 0, "start": "2025-12-16 19:19:48.129435", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.010160", "end": "2025-12-16 19:20:20.219055", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.208895", "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.011111", "end": "2025-12-16 19:20:20.257336", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.246225", "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.005601", "end": "2025-12-16 19:20:20.442758", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.437157", "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.005466", "end": "2025-12-16 19:19:51.322217", "msg": "", "rc": 0, "start": "2025-12-16 19:19:51.316751", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
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.004669", "end": "2025-12-16 19:19:57.681221", "msg": "", "rc": 0, "start": "2025-12-16 19:19:57.676552", "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.006079", "end": "2025-12-16 16:20:20.731104", "msg": "", "rc": 0, "start": "2025-12-16 16:20:20.725025", "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.005383", "end": "2025-12-16 19:20:20.879554", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.874171", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.007576", "end": "2025-12-16 19:20:20.988012", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.980436", "stderr": "", "stderr_lines": [], "stdout": "1.50", "stdout_lines": ["1.50"]}
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.024207", "end": "2025-12-16 19:20:20.834106", "msg": "", "rc": 0, "start": "2025-12-16 19:20:20.809899", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:11 up 2 days, 8:52, 1 user, load average: 0.29, 0.20, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.35\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:11 up 21 days, 6:11, 1 user, load average: 0.38, 0.33, 0.36\nDisk Usage: 23%\nMemory Usage: 81.0%\nCPU Load: 0.32\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:11 up 21 days, 6:31, 1 user, load average: 0.70, 0.74, 0.71\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.73\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:11 up 21 days, 7:44, 1 user, load average: 0.50, 0.56, 0.58\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.54\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:11 up 21 days, 8:30, 1 user, load average: 0.00, 0.00, 0.00\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:20:13 up 14 days, 8:46, 1 user, load average: 0.16, 0.12, 0.09\nDisk Usage: 21%\nMemory Usage: 19.7%\nCPU Load: 0.22\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:12 up 193 days, 10:53, 1 user, load average: 0.28, 0.25, 0.22\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.39\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:12 up 193 days, 10:53, 1 user, load average: 0.17, 0.13, 0.12\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.16\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:46 up 10 days, 7:09, 0 user, load average: 0.13, 0.10, 0.09\nDisk Usage: 47%\nMemory Usage: 70.4%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:12 up 2 days, 8:51, 1 user, load average: 0.04, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:43 up 19 days, 22:14, 0 user, load average: 0.47, 0.48, 0.45\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.40\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:40 up 17 days, 3:21, 0 user, load average: 0.15, 0.06, 0.02\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:19:49 up 16 days, 8:35, 0 user, load average: 0.16, 0.19, 0.25\nDisk Usage: 75%\nMemory Usage: 59.9%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:20PM up 21 days, 6:10, 1 user, load averages: 0.24, 0.22, 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:20:13 up 2 days, 8:51, 1 user, load average: 0.07, 0.05, 0.04\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:20:14 up 20:57, 1 user, load average: 1.54, 1.19, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.50\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-17T00:20:21.861024+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `fea1cac86ec34e2fade710bc6457b72b` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:25:00.002089+00:00 |
| **Fin** | 2025-12-17T00:25:22.309602+00:00 |
| **Durée** | 22.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: [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.003762", "end": "2025-12-16 19:25:11.463403", "msg": "", "rc": 0, "start": "2025-12-16 19:25:11.459641", "stderr": "", "stderr_lines": [], "stdout": " 19:25:11 up 21 days, 8:35, 1 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 19:25:11 up 21 days, 8:35, 1 user, load average: 0.01, 0.02, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002820", "end": "2025-12-16 19:25:11.492542", "msg": "", "rc": 0, "start": "2025-12-16 19:25:11.489722", "stderr": "", "stderr_lines": [], "stdout": " 19:25:11 up 2 days, 8:57, 1 user, load average: 0.06, 0.24, 0.21", "stdout_lines": [" 19:25:11 up 2 days, 8:57, 1 user, load average: 0.06, 0.24, 0.21"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003740", "end": "2025-12-16 19:25:11.492475", "msg": "", "rc": 0, "start": "2025-12-16 19:25:11.488735", "stderr": "", "stderr_lines": [], "stdout": " 19:25:11 up 21 days, 7:49, 1 user, load average: 0.71, 0.68, 0.63", "stdout_lines": [" 19:25:11 up 21 days, 7:49, 1 user, load average: 0.71, 0.68, 0.63"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008421", "end": "2025-12-16 19:25:12.162840", "msg": "", "rc": 0, "start": "2025-12-16 19:25:12.154419", "stderr": "", "stderr_lines": [], "stdout": " 19:25:12 up 193 days, 10:58, 1 user, load average: 0.21, 0.14, 0.10", "stdout_lines": [" 19:25:12 up 193 days, 10:58, 1 user, load average: 0.21, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009482", "end": "2025-12-16 19:25:12.199971", "msg": "", "rc": 0, "start": "2025-12-16 19:25:12.190489", "stderr": "", "stderr_lines": [], "stdout": " 19:25:12 up 193 days, 10:58, 1 user, load average: 0.24, 0.30, 0.26", "stdout_lines": [" 19:25:12 up 193 days, 10:58, 1 user, load average: 0.24, 0.30, 0.26"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004192", "end": "2025-12-16 19:25:12.451544", "msg": "", "rc": 0, "start": "2025-12-16 19:25:11.447352", "stderr": "", "stderr_lines": [], "stdout": " 19:25:11 up 21 days, 6:16, 1 user, load average: 0.30, 0.26, 0.32", "stdout_lines": [" 19:25:11 up 21 days, 6:16, 1 user, load average: 0.30, 0.26, 0.32"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003527", "end": "2025-12-16 19:25:12.467551", "msg": "", "rc": 0, "start": "2025-12-16 19:25:11.464024", "stderr": "", "stderr_lines": [], "stdout": " 19:25:11 up 21 days, 6:36, 1 user, load average: 1.05, 0.84, 0.75", "stdout_lines": [" 19:25:11 up 21 days, 6:36, 1 user, load average: 1.05, 0.84, 0.75"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002867", "end": "2025-12-16 19:24:47.013068", "msg": "", "rc": 0, "start": "2025-12-16 19:24:47.010201", "stderr": "", "stderr_lines": [], "stdout": " 19:24:47 up 10 days, 7:14, 0 user, load average: 0.72, 0.31, 0.18", "stdout_lines": [" 19:24:47 up 10 days, 7:14, 0 user, load average: 0.72, 0.31, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003505", "end": "2025-12-16 19:24:40.853338", "msg": "", "rc": 0, "start": "2025-12-16 19:24:40.849833", "stderr": "", "stderr_lines": [], "stdout": " 19:24:40 up 17 days, 3:26, 0 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 19:24:40 up 17 days, 3:26, 0 user, load average: 0.00, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004712", "end": "2025-12-16 19:25:12.911841", "msg": "", "rc": 0, "start": "2025-12-16 19:25:12.907129", "stderr": "", "stderr_lines": [], "stdout": " 19:25:12 up 2 days, 8:56, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 19:25:12 up 2 days, 8:56, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019543", "end": "2025-12-16 19:25:12.850607", "msg": "", "rc": 0, "start": "2025-12-16 19:25:12.831064", "stderr": "", "stderr_lines": [], "stdout": " 19:25:12 up 14 days, 8:51, 1 user, load average: 0.27, 0.13, 0.10", "stdout_lines": [" 19:25:12 up 14 days, 8:51, 1 user, load average: 0.27, 0.13, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003058", "end": "2025-12-16 19:24:43.703413", "msg": "", "rc": 0, "start": "2025-12-16 19:24:43.700355", "stderr": "", "stderr_lines": [], "stdout": " 19:24:43 up 19 days, 22:19, 0 user, load average: 0.34, 0.42, 0.44", "stdout_lines": [" 19:24:43 up 19 days, 22:19, 0 user, load average: 0.34, 0.42, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003196", "end": "2025-12-16 19:24:50.078693", "msg": "", "rc": 0, "start": "2025-12-16 19:24:50.075497", "stderr": "", "stderr_lines": [], "stdout": " 19:24:50 up 16 days, 8:40, 0 user, load average: 0.46, 0.36, 0.30", "stdout_lines": [" 19:24:50 up 16 days, 8:40, 0 user, load average: 0.46, 0.36, 0.30"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004207", "end": "2025-12-16 16:25:13.207739", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.203532", "stderr": "", "stderr_lines": [], "stdout": " 4:25PM up 21 days, 6:15, 1 user, load averages: 0.41, 0.33, 0.26", "stdout_lines": [" 4:25PM up 21 days, 6:15, 1 user, load averages: 0.41, 0.33, 0.26"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007867", "end": "2025-12-16 19:25:13.446437", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.438570", "stderr": "", "stderr_lines": [], "stdout": " 19:25:13 up 21:02, 1 user, load average: 1.28, 1.16, 1.14", "stdout_lines": [" 19:25:13 up 21:02, 1 user, load average: 1.28, 1.16, 1.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003700", "end": "2025-12-16 19:25:13.338140", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.334440", "stderr": "", "stderr_lines": [], "stdout": " 19:25:13 up 2 days, 8:56, 1 user, load average: 0.08, 0.03, 0.02", "stdout_lines": [" 19:25:13 up 2 days, 8:56, 1 user, load average: 0.08, 0.03, 0.02"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004393", "end": "2025-12-16 19:25:13.738772", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.734379", "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.004126", "end": "2025-12-16 19:25:13.748808", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.744682", "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.004974", "end": "2025-12-16 19:25:13.766339", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.761365", "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.004970", "end": "2025-12-16 19:25:13.776733", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.771763", "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.005292", "end": "2025-12-16 19:25:13.791282", "msg": "", "rc": 0, "start": "2025-12-16 19:25:13.785990", "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.004970", "end": "2025-12-16 19:24:48.592190", "msg": "", "rc": 0, "start": "2025-12-16 19:24:48.587220", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005303", "end": "2025-12-16 19:24:42.385066", "msg": "", "rc": 0, "start": "2025-12-16 19:24:42.379763", "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.011661", "end": "2025-12-16 19:25:14.509209", "msg": "", "rc": 0, "start": "2025-12-16 19:25:14.497548", "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.010508", "end": "2025-12-16 19:25:14.522651", "msg": "", "rc": 0, "start": "2025-12-16 19:25:14.512143", "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.005921", "end": "2025-12-16 19:25:14.713805", "msg": "", "rc": 0, "start": "2025-12-16 19:25:14.707884", "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.005361", "end": "2025-12-16 19:24:45.548565", "msg": "", "rc": 0, "start": "2025-12-16 19:24:45.543204", "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.005431", "end": "2025-12-16 16:25:14.976307", "msg": "", "rc": 0, "start": "2025-12-16 16:25:14.970876", "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.004419", "end": "2025-12-16 19:24:51.981385", "msg": "", "rc": 0, "start": "2025-12-16 19:24:51.976966", "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.005382", "end": "2025-12-16 19:25:15.137637", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.132255", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.024412", "end": "2025-12-16 19:25:15.432171", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.407759", "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.025033", "end": "2025-12-16 19:25:15.138899", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.113866", "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.004348", "end": "2025-12-16 19:25:15.665859", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.661511", "stderr": "", "stderr_lines": [], "stdout": "81.3%", "stdout_lines": ["81.3%"]}
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.004126", "end": "2025-12-16 19:25:15.679782", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.675656", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005095", "end": "2025-12-16 19:25:15.689246", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.684151", "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.004874", "end": "2025-12-16 19:25:15.717681", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.712807", "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.005387", "end": "2025-12-16 19:25:15.721161", "msg": "", "rc": 0, "start": "2025-12-16 19:25:15.715774", "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.003801", "end": "2025-12-16 19:24:50.513940", "msg": "", "rc": 0, "start": "2025-12-16 19:24:50.510139", "stderr": "", "stderr_lines": [], "stdout": "70.4%", "stdout_lines": ["70.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.004301", "end": "2025-12-16 19:24:44.324040", "msg": "", "rc": 0, "start": "2025-12-16 19:24:44.319739", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010763", "end": "2025-12-16 19:25:16.361942", "msg": "", "rc": 0, "start": "2025-12-16 19:25:16.351179", "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.012101", "end": "2025-12-16 19:25:16.388689", "msg": "", "rc": 0, "start": "2025-12-16 19:25:16.376588", "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.005854", "end": "2025-12-16 19:25:16.639091", "msg": "", "rc": 0, "start": "2025-12-16 19:25:16.633237", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004021", "end": "2025-12-16 19:24:47.517239", "msg": "", "rc": 0, "start": "2025-12-16 19:24:47.513218", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003715", "end": "2025-12-16 19:24:53.809440", "msg": "", "rc": 0, "start": "2025-12-16 19:24:53.805725", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.005187", "end": "2025-12-16 16:25:16.849261", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:25:16.844074", "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.005381", "end": "2025-12-16 19:25:17.063715", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.058334", "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.009523", "end": "2025-12-16 19:25:17.446016", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.436493", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.026142", "end": "2025-12-16 19:25:17.071363", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.045221", "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.005355", "end": "2025-12-16 19:25:17.599420", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.594065", "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.005002", "end": "2025-12-16 19:25:17.606974", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.601972", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005952", "end": "2025-12-16 19:25:17.630609", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.624657", "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.002977", "end": "2025-12-16 19:25:17.646199", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.643222", "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.006665", "end": "2025-12-16 19:25:17.656711", "msg": "", "rc": 0, "start": "2025-12-16 19:25:17.650046", "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.002643", "end": "2025-12-16 19:24:52.447962", "msg": "", "rc": 0, "start": "2025-12-16 19:24:52.445319", "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.003176", "end": "2025-12-16 19:24:46.266673", "msg": "", "rc": 0, "start": "2025-12-16 19:24:46.263497", "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.011741", "end": "2025-12-16 19:25:18.308405", "msg": "", "rc": 0, "start": "2025-12-16 19:25:18.296664", "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.014089", "end": "2025-12-16 19:25:18.338481", "msg": "", "rc": 0, "start": "2025-12-16 19:25:18.324392", "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.003352", "end": "2025-12-16 19:25:18.566831", "msg": "", "rc": 0, "start": "2025-12-16 19:25:18.563479", "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.003108", "end": "2025-12-16 19:24:49.438264", "msg": "", "rc": 0, "start": "2025-12-16 19:24:49.435156", "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.003952", "end": "2025-12-16 16:25:18.811808", "msg": "", "rc": 0, "start": "2025-12-16 16:25:18.807856", "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.002742", "end": "2025-12-16 19:24:55.780563", "msg": "", "rc": 0, "start": "2025-12-16 19:24:55.777821", "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.002900", "end": "2025-12-16 19:25:18.996614", "msg": "", "rc": 0, "start": "2025-12-16 19:25:18.993714", "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.004672", "end": "2025-12-16 19:25:19.432390", "msg": "", "rc": 0, "start": "2025-12-16 19:25:19.427718", "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.028419", "end": "2025-12-16 19:25:19.005692", "msg": "", "rc": 0, "start": "2025-12-16 19:25:18.977273", "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.004268", "end": "2025-12-16 19:25:19.534795", "msg": "", "rc": 0, "start": "2025-12-16 19:25:19.530527", "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.004302", "end": "2025-12-16 19:25:19.549377", "msg": "", "rc": 0, "start": "2025-12-16 19:25:19.545075", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.004940", "end": "2025-12-16 19:25:19.563240", "msg": "", "rc": 0, "start": "2025-12-16 19:25:19.558300", "stderr": "", "stderr_lines": [], "stdout": "1.05", "stdout_lines": ["1.05"]}
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-16 19:25:19.593191", "msg": "", "rc": 0, "start": "2025-12-16 19:25:19.587804", "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.005174", "end": "2025-12-16 19:25:19.595532", "msg": "", "rc": 0, "start": "2025-12-16 19:25:19.590358", "stderr": "", "stderr_lines": [], "stdout": "0.73", "stdout_lines": ["0.73"]}
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.004788", "end": "2025-12-16 19:24:54.417868", "msg": "", "rc": 0, "start": "2025-12-16 19:24:54.413080", "stderr": "", "stderr_lines": [], "stdout": "0.75", "stdout_lines": ["0.75"]}
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.005052", "end": "2025-12-16 19:24:48.187992", "msg": "", "rc": 0, "start": "2025-12-16 19:24:48.182940", "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.010140", "end": "2025-12-16 19:25:20.328613", "msg": "", "rc": 0, "start": "2025-12-16 19:25:20.318473", "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.011514", "end": "2025-12-16 19:25:20.379617", "msg": "", "rc": 0, "start": "2025-12-16 19:25:20.368103", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.005682", "end": "2025-12-16 19:25:20.524136", "msg": "", "rc": 0, "start": "2025-12-16 19:25:20.518454", "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.005228", "end": "2025-12-16 19:24:51.352892", "msg": "", "rc": 0, "start": "2025-12-16 19:24:51.347664", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
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.004822", "end": "2025-12-16 19:24:57.808890", "msg": "", "rc": 0, "start": "2025-12-16 19:24:57.804068", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.005836", "end": "2025-12-16 16:25:20.849642", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.843806", "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.005238", "end": "2025-12-16 19:25:20.953600", "msg": "", "rc": 0, "start": "2025-12-16 19:25:20.948362", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.007118", "end": "2025-12-16 19:25:21.447184", "msg": "", "rc": 0, "start": "2025-12-16 19:25:21.440066", "stderr": "", "stderr_lines": [], "stdout": "1.66", "stdout_lines": ["1.66"]}
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.023945", "end": "2025-12-16 19:25:20.936629", "msg": "", "rc": 0, "start": "2025-12-16 19:25:20.912684", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
TASK [Display health status] ***************************************************
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:11 up 21 days, 6:36, 1 user, load average: 1.05, 0.84, 0.75\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.05\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:11 up 2 days, 8:57, 1 user, load average: 0.06, 0.24, 0.21\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.06\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:11 up 21 days, 6:16, 1 user, load average: 0.30, 0.26, 0.32\nDisk Usage: 23%\nMemory Usage: 81.3%\nCPU Load: 0.26\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:11 up 21 days, 7:49, 1 user, load average: 0.71, 0.68, 0.63\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.73\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:11 up 21 days, 8:35, 1 user, load average: 0.01, 0.02, 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: 19:25:12 up 14 days, 8:51, 1 user, load average: 0.27, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.31\nCPU Temp: 36.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:12 up 193 days, 10:58, 1 user, load average: 0.24, 0.30, 0.26\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.22\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:12 up 193 days, 10:58, 1 user, load average: 0.21, 0.14, 0.10\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.27\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:47 up 10 days, 7:14, 0 user, load average: 0.72, 0.31, 0.18\nDisk Usage: 47%\nMemory Usage: 70.4%\nCPU Load: 0.75\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:40 up 17 days, 3:26, 0 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.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:25:12 up 2 days, 8:56, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\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:43 up 19 days, 22:19, 0 user, load average: 0.34, 0.42, 0.44\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:24:50 up 16 days, 8:40, 0 user, load average: 0.46, 0.36, 0.30\nDisk Usage: 75%\nMemory Usage: 59.9%\nCPU Load: 0.55\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:25PM up 21 days, 6:15, 1 user, load averages: 0.41, 0.33, 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:25:13 up 2 days, 8:56, 1 user, load average: 0.08, 0.03, 0.02\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:25:13 up 21:02, 1 user, load average: 1.28, 1.16, 1.14\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.66\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-17T00:25:22.353960+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `d0bb3c81aa544163a4f1f03c07f8f1da` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:30:00.004612+00:00 |
| **Fin** | 2025-12-17T00:30:23.156862+00:00 |
| **Durée** | 23.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: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.003467", "end": "2025-12-16 19:30:12.083673", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.080206", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 21 days, 6:41, 1 user, load average: 0.99, 0.77, 0.74", "stdout_lines": [" 19:30:12 up 21 days, 6:41, 1 user, load average: 0.99, 0.77, 0.74"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003568", "end": "2025-12-16 19:30:12.085474", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.081906", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 21 days, 8:40, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:30:12 up 21 days, 8:40, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002955", "end": "2025-12-16 19:30:12.108247", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.105292", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 2 days, 9:02, 1 user, load average: 0.18, 0.22, 0.20", "stdout_lines": [" 19:30:12 up 2 days, 9:02, 1 user, load average: 0.18, 0.22, 0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004298", "end": "2025-12-16 19:30:12.126790", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.122492", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 21 days, 7:54, 1 user, load average: 0.68, 0.65, 0.64", "stdout_lines": [" 19:30:12 up 21 days, 7:54, 1 user, load average: 0.68, 0.65, 0.64"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002978", "end": "2025-12-16 19:29:46.933074", "msg": "", "rc": 0, "start": "2025-12-16 19:29:46.930096", "stderr": "", "stderr_lines": [], "stdout": " 19:29:46 up 10 days, 7:19, 0 user, load average: 0.21, 0.20, 0.16", "stdout_lines": [" 19:29:46 up 10 days, 7:19, 0 user, load average: 0.21, 0.20, 0.16"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008359", "end": "2025-12-16 19:30:12.793296", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.784937", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 193 days, 11:03, 1 user, load average: 0.16, 0.11, 0.09", "stdout_lines": [" 19:30:12 up 193 days, 11:03, 1 user, load average: 0.16, 0.11, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009291", "end": "2025-12-16 19:30:12.807638", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.798347", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 193 days, 11:03, 1 user, load average: 0.12, 0.19, 0.22", "stdout_lines": [" 19:30:12 up 193 days, 11:03, 1 user, load average: 0.12, 0.19, 0.22"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003805", "end": "2025-12-16 19:30:13.073067", "msg": "", "rc": 0, "start": "2025-12-16 19:30:12.069262", "stderr": "", "stderr_lines": [], "stdout": " 19:30:12 up 21 days, 6:21, 1 user, load average: 0.24, 0.27, 0.30", "stdout_lines": [" 19:30:12 up 21 days, 6:21, 1 user, load average: 0.24, 0.27, 0.30"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003646", "end": "2025-12-16 19:29:41.174816", "msg": "", "rc": 0, "start": "2025-12-16 19:29:41.171170", "stderr": "", "stderr_lines": [], "stdout": " 19:29:41 up 17 days, 3:31, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:29:41 up 17 days, 3:31, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004665", "end": "2025-12-16 19:30:13.306004", "msg": "", "rc": 0, "start": "2025-12-16 19:30:13.301339", "stderr": "", "stderr_lines": [], "stdout": " 19:30:13 up 2 days, 9:01, 1 user, load average: 0.07, 0.05, 0.01", "stdout_lines": [" 19:30:13 up 2 days, 9:01, 1 user, load average: 0.07, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003113", "end": "2025-12-16 19:29:44.086217", "msg": "", "rc": 0, "start": "2025-12-16 19:29:44.083104", "stderr": "", "stderr_lines": [], "stdout": " 19:29:44 up 19 days, 22:24, 0 user, load average: 0.39, 0.41, 0.43", "stdout_lines": [" 19:29:44 up 19 days, 22:24, 0 user, load average: 0.39, 0.41, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003006", "end": "2025-12-16 19:29:50.471815", "msg": "", "rc": 0, "start": "2025-12-16 19:29:50.468809", "stderr": "", "stderr_lines": [], "stdout": " 19:29:50 up 16 days, 8:45, 0 user, load average: 0.28, 0.28, 0.27", "stdout_lines": [" 19:29:50 up 16 days, 8:45, 0 user, load average: 0.28, 0.28, 0.27"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004352", "end": "2025-12-16 16:30:13.542177", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.537825", "stderr": "", "stderr_lines": [], "stdout": " 4:30PM up 21 days, 6:20, 1 user, load averages: 0.23, 0.23, 0.23", "stdout_lines": [" 4:30PM up 21 days, 6:20, 1 user, load averages: 0.23, 0.23, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019283", "end": "2025-12-16 19:30:13.469019", "msg": "", "rc": 0, "start": "2025-12-16 19:30:13.449736", "stderr": "", "stderr_lines": [], "stdout": " 19:30:13 up 14 days, 8:56, 1 user, load average: 0.57, 0.25, 0.14", "stdout_lines": [" 19:30:13 up 14 days, 8:56, 1 user, load average: 0.57, 0.25, 0.14"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007238", "end": "2025-12-16 19:30:14.332210", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.324972", "stderr": "", "stderr_lines": [], "stdout": " 19:30:14 up 21:08, 1 user, load average: 1.02, 1.11, 1.13", "stdout_lines": [" 19:30:14 up 21:08, 1 user, load average: 1.02, 1.11, 1.13"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003737", "end": "2025-12-16 19:30:13.745542", "msg": "", "rc": 0, "start": "2025-12-16 19:30:13.741805", "stderr": "", "stderr_lines": [], "stdout": " 19:30:13 up 2 days, 9:01, 1 user, load average: 0.00, 0.02, 0.01", "stdout_lines": [" 19:30:13 up 2 days, 9:01, 1 user, load average: 0.00, 0.02, 0.01"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004376", "end": "2025-12-16 19:30:14.165936", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.161560", "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.004116", "end": "2025-12-16 19:30:14.171195", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.167079", "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.004778", "end": "2025-12-16 19:30:14.209655", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.204877", "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.004875", "end": "2025-12-16 19:30:14.198312", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.193437", "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.005607", "end": "2025-12-16 19:30:14.228876", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.223269", "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.004505", "end": "2025-12-16 19:29:49.064470", "msg": "", "rc": 0, "start": "2025-12-16 19:29:49.059965", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005678", "end": "2025-12-16 19:29:42.824390", "msg": "", "rc": 0, "start": "2025-12-16 19:29:42.818712", "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.010582", "end": "2025-12-16 19:30:14.934798", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.924216", "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.011345", "end": "2025-12-16 19:30:14.964147", "msg": "", "rc": 0, "start": "2025-12-16 19:30:14.952802", "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.006219", "end": "2025-12-16 19:30:15.207166", "msg": "", "rc": 0, "start": "2025-12-16 19:30:15.200947", "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.005197", "end": "2025-12-16 19:29:46.001495", "msg": "", "rc": 0, "start": "2025-12-16 19:29:45.996298", "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.006326", "end": "2025-12-16 16:30:15.432268", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.425942", "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.004990", "end": "2025-12-16 19:29:52.446707", "msg": "", "rc": 0, "start": "2025-12-16 19:29:52.441717", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018915", "end": "2025-12-16 19:30:16.326528", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.307613", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005460", "end": "2025-12-16 19:30:15.659991", "msg": "", "rc": 0, "start": "2025-12-16 19:30:15.654531", "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.025395", "end": "2025-12-16 19:30:15.562910", "msg": "", "rc": 0, "start": "2025-12-16 19:30:15.537515", "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.004477", "end": "2025-12-16 19:30:16.108370", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.103893", "stderr": "", "stderr_lines": [], "stdout": "81.4%", "stdout_lines": ["81.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.004831", "end": "2025-12-16 19:30:16.121876", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.117045", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004233", "end": "2025-12-16 19:30:16.124087", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.119854", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005092", "end": "2025-12-16 19:30:16.172021", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.166929", "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.005807", "end": "2025-12-16 19:30:16.184575", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.178768", "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.003984", "end": "2025-12-16 19:29:50.988888", "msg": "", "rc": 0, "start": "2025-12-16 19:29:50.984904", "stderr": "", "stderr_lines": [], "stdout": "70.4%", "stdout_lines": ["70.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.004672", "end": "2025-12-16 19:29:44.781021", "msg": "", "rc": 0, "start": "2025-12-16 19:29:44.776349", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010945", "end": "2025-12-16 19:30:16.806785", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.795840", "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.011920", "end": "2025-12-16 19:30:16.844579", "msg": "", "rc": 0, "start": "2025-12-16 19:30:16.832659", "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.006647", "end": "2025-12-16 19:30:17.118298", "msg": "", "rc": 0, "start": "2025-12-16 19:30:17.111651", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004144", "end": "2025-12-16 19:29:47.957563", "msg": "", "rc": 0, "start": "2025-12-16 19:29:47.953419", "stderr": "", "stderr_lines": [], "stdout": "27.4%", "stdout_lines": ["27.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.003991", "end": "2025-12-16 19:29:54.258217", "msg": "", "rc": 0, "start": "2025-12-16 19:29:54.254226", "stderr": "", "stderr_lines": [], "stdout": "60.6%", "stdout_lines": ["60.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.005185", "end": "2025-12-16 16:30:17.319961", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:30:17.314776", "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.005429", "end": "2025-12-16 19:30:17.551510", "msg": "", "rc": 0, "start": "2025-12-16 19:30:17.546081", "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.011269", "end": "2025-12-16 19:30:18.355952", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.344683", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025811", "end": "2025-12-16 19:30:17.519750", "msg": "", "rc": 0, "start": "2025-12-16 19:30:17.493939", "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.005326", "end": "2025-12-16 19:30:18.035591", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.030265", "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.004930", "end": "2025-12-16 19:30:18.059065", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.054135", "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.003547", "end": "2025-12-16 19:30:18.074374", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.070827", "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.005509", "end": "2025-12-16 19:30:18.079197", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.073688", "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.007088", "end": "2025-12-16 19:30:18.092846", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.085758", "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.002555", "end": "2025-12-16 19:29:52.892679", "msg": "", "rc": 0, "start": "2025-12-16 19:29:52.890124", "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.003176", "end": "2025-12-16 19:29:46.696074", "msg": "", "rc": 0, "start": "2025-12-16 19:29:46.692898", "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.011709", "end": "2025-12-16 19:30:18.738741", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.727032", "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.012929", "end": "2025-12-16 19:30:18.781441", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.768512", "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.003114", "end": "2025-12-16 19:30:18.992226", "msg": "", "rc": 0, "start": "2025-12-16 19:30:18.989112", "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.002844", "end": "2025-12-16 19:29:49.856200", "msg": "", "rc": 0, "start": "2025-12-16 19:29:49.853356", "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.003928", "end": "2025-12-16 16:30:19.240279", "msg": "", "rc": 0, "start": "2025-12-16 16:30:19.236351", "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.002523", "end": "2025-12-16 19:29:56.208482", "msg": "", "rc": 0, "start": "2025-12-16 19:29:56.205959", "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-16 19:30:19.425664", "msg": "", "rc": 0, "start": "2025-12-16 19:30:19.422659", "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.004004", "end": "2025-12-16 19:30:20.310536", "msg": "", "rc": 0, "start": "2025-12-16 19:30:20.306532", "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.028896", "end": "2025-12-16 19:30:19.431098", "msg": "", "rc": 0, "start": "2025-12-16 19:30:19.402202", "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.004261", "end": "2025-12-16 19:30:19.939734", "msg": "", "rc": 0, "start": "2025-12-16 19:30:19.935473", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004740", "end": "2025-12-16 19:30:19.970633", "msg": "", "rc": 0, "start": "2025-12-16 19:30:19.965893", "stderr": "", "stderr_lines": [], "stdout": "0.91", "stdout_lines": ["0.91"]}
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.004046", "end": "2025-12-16 19:30:19.975916", "msg": "", "rc": 0, "start": "2025-12-16 19:30:19.971870", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.005093", "end": "2025-12-16 19:30:19.990691", "msg": "", "rc": 0, "start": "2025-12-16 19:30:19.985598", "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.005313", "end": "2025-12-16 19:30:20.011575", "msg": "", "rc": 0, "start": "2025-12-16 19:30:20.006262", "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.004467", "end": "2025-12-16 19:29:54.788456", "msg": "", "rc": 0, "start": "2025-12-16 19:29:54.783989", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.004886", "end": "2025-12-16 19:29:48.602220", "msg": "", "rc": 0, "start": "2025-12-16 19:29:48.597334", "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.010150", "end": "2025-12-16 19:30:20.733258", "msg": "", "rc": 0, "start": "2025-12-16 19:30:20.723108", "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.012844", "end": "2025-12-16 19:30:20.777103", "msg": "", "rc": 0, "start": "2025-12-16 19:30:20.764259", "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.005671", "end": "2025-12-16 19:30:20.912959", "msg": "", "rc": 0, "start": "2025-12-16 19:30:20.907288", "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.004921", "end": "2025-12-16 19:29:51.764618", "msg": "", "rc": 0, "start": "2025-12-16 19:29:51.759697", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.004294", "end": "2025-12-16 19:29:58.204079", "msg": "", "rc": 0, "start": "2025-12-16 19:29:58.199785", "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.006037", "end": "2025-12-16 16:30:21.254699", "msg": "", "rc": 0, "start": "2025-12-16 16:30:21.248662", "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.005389", "end": "2025-12-16 19:30:21.359049", "msg": "", "rc": 0, "start": "2025-12-16 19:30:21.353660", "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.007437", "end": "2025-12-16 19:30:22.299958", "msg": "", "rc": 0, "start": "2025-12-16 19:30:22.292521", "stderr": "", "stderr_lines": [], "stdout": "1.02", "stdout_lines": ["1.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.024335", "end": "2025-12-16 19:30:21.329438", "msg": "", "rc": 0, "start": "2025-12-16 19:30:21.305103", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 21 days, 6:21, 1 user, load average: 0.24, 0.27, 0.30\nDisk Usage: 23%\nMemory Usage: 81.4%\nCPU Load: 0.28\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 2 days, 9:02, 1 user, load average: 0.18, 0.22, 0.20\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.25\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 21 days, 6:41, 1 user, load average: 0.99, 0.77, 0.74\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.91\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 21 days, 7:54, 1 user, load average: 0.68, 0.65, 0.64\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.63\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 21 days, 8:40, 1 user, load average: 0.00, 0.00, 0.00\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:30:13 up 14 days, 8:56, 1 user, load average: 0.57, 0.25, 0.14\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.56\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 193 days, 11:03, 1 user, load average: 0.12, 0.19, 0.22\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.18\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:30:12 up 193 days, 11:03, 1 user, load average: 0.16, 0.11, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.15\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:46 up 10 days, 7:19, 0 user, load average: 0.21, 0.20, 0.16\nDisk Usage: 47%\nMemory Usage: 70.4%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:41 up 17 days, 3:31, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.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:30:13 up 2 days, 9:01, 1 user, load average: 0.07, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:44 up 19 days, 22:24, 0 user, load average: 0.39, 0.41, 0.43\nDisk Usage: 28%\nMemory Usage: 27.4%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:29:50 up 16 days, 8:45, 0 user, load average: 0.28, 0.28, 0.27\nDisk Usage: 75%\nMemory Usage: 60.6%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:30PM up 21 days, 6:20, 1 user, load averages: 0.23, 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: 19:30:13 up 2 days, 9:01, 1 user, load average: 0.00, 0.02, 0.01\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:30:14 up 21:08, 1 user, load average: 1.02, 1.11, 1.13\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.02\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-17T00:30:23.200606+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `df3522da47b6432f9128bcf6b645416e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:35:00.002462+00:00 |
| **Fin** | 2025-12-17T00:35:22.225485+00:00 |
| **Durée** | 22.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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003597", "end": "2025-12-16 19:35:11.521230", "msg": "", "rc": 0, "start": "2025-12-16 19:35:11.517633", "stderr": "", "stderr_lines": [], "stdout": " 19:35:11 up 21 days, 8:45, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 19:35:11 up 21 days, 8:45, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002860", "end": "2025-12-16 19:35:11.543426", "msg": "", "rc": 0, "start": "2025-12-16 19:35:11.540566", "stderr": "", "stderr_lines": [], "stdout": " 19:35:11 up 2 days, 9:07, 1 user, load average: 0.22, 0.22, 0.19", "stdout_lines": [" 19:35:11 up 2 days, 9:07, 1 user, load average: 0.22, 0.22, 0.19"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004046", "end": "2025-12-16 19:35:11.560794", "msg": "", "rc": 0, "start": "2025-12-16 19:35:11.556748", "stderr": "", "stderr_lines": [], "stdout": " 19:35:11 up 21 days, 7:59, 1 user, load average: 0.70, 0.65, 0.64", "stdout_lines": [" 19:35:11 up 21 days, 7:59, 1 user, load average: 0.70, 0.65, 0.64"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008454", "end": "2025-12-16 19:35:12.217883", "msg": "", "rc": 0, "start": "2025-12-16 19:35:12.209429", "stderr": "", "stderr_lines": [], "stdout": " 19:35:12 up 193 days, 11:08, 1 user, load average: 0.15, 0.15, 0.10", "stdout_lines": [" 19:35:12 up 193 days, 11:08, 1 user, load average: 0.15, 0.15, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009300", "end": "2025-12-16 19:35:12.233677", "msg": "", "rc": 0, "start": "2025-12-16 19:35:12.224377", "stderr": "", "stderr_lines": [], "stdout": " 19:35:12 up 193 days, 11:08, 1 user, load average: 0.08, 0.17, 0.21", "stdout_lines": [" 19:35:12 up 193 days, 11:08, 1 user, load average: 0.08, 0.17, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004039", "end": "2025-12-16 19:35:12.508068", "msg": "", "rc": 0, "start": "2025-12-16 19:35:11.504029", "stderr": "", "stderr_lines": [], "stdout": " 19:35:11 up 21 days, 6:26, 1 user, load average: 0.19, 0.22, 0.26", "stdout_lines": [" 19:35:11 up 21 days, 6:26, 1 user, load average: 0.19, 0.22, 0.26"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004531", "end": "2025-12-16 19:35:12.506638", "msg": "", "rc": 0, "start": "2025-12-16 19:35:11.502107", "stderr": "", "stderr_lines": [], "stdout": " 19:35:11 up 21 days, 6:46, 1 user, load average: 0.91, 0.77, 0.74", "stdout_lines": [" 19:35:11 up 21 days, 6:46, 1 user, load average: 0.91, 0.77, 0.74"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002845", "end": "2025-12-16 19:34:47.066662", "msg": "", "rc": 0, "start": "2025-12-16 19:34:47.063817", "stderr": "", "stderr_lines": [], "stdout": " 19:34:47 up 10 days, 7:24, 0 user, load average: 0.24, 0.24, 0.18", "stdout_lines": [" 19:34:47 up 10 days, 7:24, 0 user, load average: 0.24, 0.24, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003822", "end": "2025-12-16 19:34:40.894617", "msg": "", "rc": 0, "start": "2025-12-16 19:34:40.890795", "stderr": "", "stderr_lines": [], "stdout": " 19:34:40 up 17 days, 3:36, 0 user, load average: 0.10, 0.03, 0.01", "stdout_lines": [" 19:34:40 up 17 days, 3:36, 0 user, load average: 0.10, 0.03, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004689", "end": "2025-12-16 19:35:12.972648", "msg": "", "rc": 0, "start": "2025-12-16 19:35:12.967959", "stderr": "", "stderr_lines": [], "stdout": " 19:35:12 up 2 days, 9:06, 1 user, load average: 0.08, 0.05, 0.01", "stdout_lines": [" 19:35:12 up 2 days, 9:06, 1 user, load average: 0.08, 0.05, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019187", "end": "2025-12-16 19:35:12.892224", "msg": "", "rc": 0, "start": "2025-12-16 19:35:12.873037", "stderr": "", "stderr_lines": [], "stdout": " 19:35:12 up 14 days, 9:01, 1 user, load average: 0.08, 0.16, 0.13", "stdout_lines": [" 19:35:12 up 14 days, 9:01, 1 user, load average: 0.08, 0.16, 0.13"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003532", "end": "2025-12-16 19:34:43.766915", "msg": "", "rc": 0, "start": "2025-12-16 19:34:43.763383", "stderr": "", "stderr_lines": [], "stdout": " 19:34:43 up 19 days, 22:29, 0 user, load average: 0.46, 0.40, 0.41", "stdout_lines": [" 19:34:43 up 19 days, 22:29, 0 user, load average: 0.46, 0.40, 0.41"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002806", "end": "2025-12-16 19:34:50.123329", "msg": "", "rc": 0, "start": "2025-12-16 19:34:50.120523", "stderr": "", "stderr_lines": [], "stdout": " 19:34:50 up 16 days, 8:50, 0 user, load average: 0.39, 0.31, 0.28", "stdout_lines": [" 19:34:50 up 16 days, 8:50, 0 user, load average: 0.39, 0.31, 0.28"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004273", "end": "2025-12-16 16:35:13.281632", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.277359", "stderr": "", "stderr_lines": [], "stdout": " 4:35PM up 21 days, 6:25, 1 user, load averages: 0.24, 0.22, 0.22", "stdout_lines": [" 4:35PM up 21 days, 6:25, 1 user, load averages: 0.24, 0.22, 0.22"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.011546", "end": "2025-12-16 19:35:14.320528", "msg": "", "rc": 0, "start": "2025-12-16 19:35:14.308982", "stderr": "", "stderr_lines": [], "stdout": " 19:35:14 up 21:13, 1 user, load average: 1.54, 1.19, 1.13", "stdout_lines": [" 19:35:14 up 21:13, 1 user, load average: 1.54, 1.19, 1.13"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003736", "end": "2025-12-16 19:35:13.401317", "msg": "", "rc": 0, "start": "2025-12-16 19:35:13.397581", "stderr": "", "stderr_lines": [], "stdout": " 19:35:13 up 2 days, 9:06, 1 user, load average: 0.15, 0.03, 0.01", "stdout_lines": [" 19:35:13 up 2 days, 9:06, 1 user, load average: 0.15, 0.03, 0.01"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004365", "end": "2025-12-16 19:35:13.815713", "msg": "", "rc": 0, "start": "2025-12-16 19:35:13.811348", "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.004142", "end": "2025-12-16 19:35:13.839275", "msg": "", "rc": 0, "start": "2025-12-16 19:35:13.835133", "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.004765", "end": "2025-12-16 19:35:13.855077", "msg": "", "rc": 0, "start": "2025-12-16 19:35:13.850312", "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.004889", "end": "2025-12-16 19:35:13.864567", "msg": "", "rc": 0, "start": "2025-12-16 19:35:13.859678", "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.005892", "end": "2025-12-16 19:35:13.892100", "msg": "", "rc": 0, "start": "2025-12-16 19:35:13.886208", "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.007059", "end": "2025-12-16 19:34:48.660568", "msg": "", "rc": 0, "start": "2025-12-16 19:34:48.653509", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005441", "end": "2025-12-16 19:34:42.498797", "msg": "", "rc": 0, "start": "2025-12-16 19:34:42.493356", "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.010595", "end": "2025-12-16 19:35:14.590287", "msg": "", "rc": 0, "start": "2025-12-16 19:35:14.579692", "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.011551", "end": "2025-12-16 19:35:14.616744", "msg": "", "rc": 0, "start": "2025-12-16 19:35:14.605193", "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.005752", "end": "2025-12-16 19:35:14.789561", "msg": "", "rc": 0, "start": "2025-12-16 19:35:14.783809", "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.005405", "end": "2025-12-16 19:34:45.660257", "msg": "", "rc": 0, "start": "2025-12-16 19:34:45.654852", "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.005355", "end": "2025-12-16 16:35:15.070464", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.065109", "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.004683", "end": "2025-12-16 19:34:52.058166", "msg": "", "rc": 0, "start": "2025-12-16 19:34:52.053483", "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.005442", "end": "2025-12-16 19:35:15.223939", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.218497", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019739", "end": "2025-12-16 19:35:16.365557", "msg": "", "rc": 0, "start": "2025-12-16 19:35:16.345818", "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.025213", "end": "2025-12-16 19:35:15.314434", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.289221", "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.004463", "end": "2025-12-16 19:35:15.844593", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.840130", "stderr": "", "stderr_lines": [], "stdout": "81.4%", "stdout_lines": ["81.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.004744", "end": "2025-12-16 19:35:15.877003", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.872259", "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.004183", "end": "2025-12-16 19:35:15.886362", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.882179", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004773", "end": "2025-12-16 19:35:15.890809", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.886036", "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.005768", "end": "2025-12-16 19:35:15.900489", "msg": "", "rc": 0, "start": "2025-12-16 19:35:15.894721", "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.003668", "end": "2025-12-16 19:34:50.714012", "msg": "", "rc": 0, "start": "2025-12-16 19:34:50.710344", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.004526", "end": "2025-12-16 19:34:44.516938", "msg": "", "rc": 0, "start": "2025-12-16 19:34:44.512412", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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-16 19:35:16.544155", "msg": "", "rc": 0, "start": "2025-12-16 19:35:16.533183", "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.011742", "end": "2025-12-16 19:35:16.593690", "msg": "", "rc": 0, "start": "2025-12-16 19:35:16.581948", "stderr": "", "stderr_lines": [], "stdout": "13.2%", "stdout_lines": ["13.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.005828", "end": "2025-12-16 19:35:16.871635", "msg": "", "rc": 0, "start": "2025-12-16 19:35:16.865807", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004190", "end": "2025-12-16 19:34:47.688601", "msg": "", "rc": 0, "start": "2025-12-16 19:34:47.684411", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003525", "end": "2025-12-16 19:34:53.985992", "msg": "", "rc": 0, "start": "2025-12-16 19:34:53.982467", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.005396", "end": "2025-12-16 16:35:17.047766", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:35:17.042370", "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.005613", "end": "2025-12-16 19:35:17.303540", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.297927", "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.008508", "end": "2025-12-16 19:35:17.418591", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.410083", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025941", "end": "2025-12-16 19:35:17.248999", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.223058", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005144", "end": "2025-12-16 19:35:17.788598", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.783454", "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.004972", "end": "2025-12-16 19:35:17.820611", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.815639", "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.006296", "end": "2025-12-16 19:35:17.831112", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.824816", "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.003348", "end": "2025-12-16 19:35:17.851723", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.848375", "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.006743", "end": "2025-12-16 19:35:17.859314", "msg": "", "rc": 0, "start": "2025-12-16 19:35:17.852571", "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.002704", "end": "2025-12-16 19:34:52.652453", "msg": "", "rc": 0, "start": "2025-12-16 19:34:52.649749", "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.003285", "end": "2025-12-16 19:34:46.456033", "msg": "", "rc": 0, "start": "2025-12-16 19:34:46.452748", "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.011804", "end": "2025-12-16 19:35:18.497439", "msg": "", "rc": 0, "start": "2025-12-16 19:35:18.485635", "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.012908", "end": "2025-12-16 19:35:18.545416", "msg": "", "rc": 0, "start": "2025-12-16 19:35:18.532508", "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.003312", "end": "2025-12-16 19:35:18.758115", "msg": "", "rc": 0, "start": "2025-12-16 19:35:18.754803", "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.002718", "end": "2025-12-16 19:34:49.631097", "msg": "", "rc": 0, "start": "2025-12-16 19:34:49.628379", "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.003859", "end": "2025-12-16 16:35:18.995104", "msg": "", "rc": 0, "start": "2025-12-16 16:35:18.991245", "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.002778", "end": "2025-12-16 19:34:55.981301", "msg": "", "rc": 0, "start": "2025-12-16 19:34:55.978523", "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.003019", "end": "2025-12-16 19:35:19.179281", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.176262", "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.004276", "end": "2025-12-16 19:35:19.376394", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.372118", "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.028054", "end": "2025-12-16 19:35:19.180204", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.152150", "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.004343", "end": "2025-12-16 19:35:19.704657", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.700314", "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.004144", "end": "2025-12-16 19:35:19.724655", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.720511", "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.004528", "end": "2025-12-16 19:35:19.731619", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.727091", "stderr": "", "stderr_lines": [], "stdout": "0.93", "stdout_lines": ["0.93"]}
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.005068", "end": "2025-12-16 19:35:19.753532", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.748464", "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.005387", "end": "2025-12-16 19:35:19.762649", "msg": "", "rc": 0, "start": "2025-12-16 19:35:19.757262", "stderr": "", "stderr_lines": [], "stdout": "0.64", "stdout_lines": ["0.64"]}
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.004433", "end": "2025-12-16 19:34:54.544028", "msg": "", "rc": 0, "start": "2025-12-16 19:34:54.539595", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004989", "end": "2025-12-16 19:34:48.338640", "msg": "", "rc": 0, "start": "2025-12-16 19:34:48.333651", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.010897", "end": "2025-12-16 19:35:20.504800", "msg": "", "rc": 0, "start": "2025-12-16 19:35:20.493903", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
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.011639", "end": "2025-12-16 19:35:20.540037", "msg": "", "rc": 0, "start": "2025-12-16 19:35:20.528398", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005573", "end": "2025-12-16 19:35:20.666306", "msg": "", "rc": 0, "start": "2025-12-16 19:35:20.660733", "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.004991", "end": "2025-12-16 19:34:51.504818", "msg": "", "rc": 0, "start": "2025-12-16 19:34:51.499827", "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.006923", "end": "2025-12-16 16:35:21.010959", "msg": "", "rc": 0, "start": "2025-12-16 16:35:21.004036", "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.007918", "end": "2025-12-16 19:34:57.990993", "msg": "", "rc": 0, "start": "2025-12-16 19:34:57.983075", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.005307", "end": "2025-12-16 19:35:21.087935", "msg": "", "rc": 0, "start": "2025-12-16 19:35:21.082628", "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.008821", "end": "2025-12-16 19:35:21.327699", "msg": "", "rc": 0, "start": "2025-12-16 19:35:21.318878", "stderr": "", "stderr_lines": [], "stdout": "1.69", "stdout_lines": ["1.69"]}
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.024222", "end": "2025-12-16 19:35:21.098229", "msg": "", "rc": 0, "start": "2025-12-16 19:35:21.074007", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:11 up 2 days, 9:07, 1 user, load average: 0.22, 0.22, 0.19\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.20\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:11 up 21 days, 6:26, 1 user, load average: 0.19, 0.22, 0.26\nDisk Usage: 23%\nMemory Usage: 81.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: 19:35:11 up 21 days, 6:46, 1 user, load average: 0.91, 0.77, 0.74\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.93\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:11 up 21 days, 7:59, 1 user, load average: 0.70, 0.65, 0.64\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.64\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:11 up 21 days, 8:45, 1 user, load average: 0.00, 0.01, 0.00\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:35:12 up 14 days, 9:01, 1 user, load average: 0.08, 0.16, 0.13\nDisk Usage: 21%\nMemory Usage: 20.4%\nCPU Load: 0.08\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:12 up 193 days, 11:08, 1 user, load average: 0.08, 0.17, 0.21\nDisk Usage: 6%\nMemory Usage: 13.2%\nCPU Load: 0.07\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:12 up 193 days, 11:08, 1 user, load average: 0.15, 0.15, 0.10\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.37\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:47 up 10 days, 7:24, 0 user, load average: 0.24, 0.24, 0.18\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:40 up 17 days, 3:36, 0 user, load average: 0.10, 0.03, 0.01\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:12 up 2 days, 9:06, 1 user, load average: 0.08, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:43 up 19 days, 22:29, 0 user, load average: 0.46, 0.40, 0.41\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.54\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:34:50 up 16 days, 8:50, 0 user, load average: 0.39, 0.31, 0.28\nDisk Usage: 75%\nMemory Usage: 59.9%\nCPU Load: 0.41\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:35PM up 21 days, 6:25, 1 user, load averages: 0.24, 0.22, 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:35:13 up 2 days, 9:06, 1 user, load average: 0.15, 0.03, 0.01\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:35:14 up 21:13, 1 user, load average: 1.54, 1.19, 1.13\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.69\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-17T00:35:22.264837+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `7c1df482a1044889a240fbe6c1f78653` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:40:00.001511+00:00 |
| **Fin** | 2025-12-17T00:40:22.023708+00:00 |
| **Durée** | 22.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: [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.4gb.home]
ok: [raspi.8gb.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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003455", "end": "2025-12-16 19:40:11.131121", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.127666", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 21 days, 8:50, 1 user, load average: 0.01, 0.01, 0.00", "stdout_lines": [" 19:40:11 up 21 days, 8:50, 1 user, load average: 0.01, 0.01, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003883", "end": "2025-12-16 19:40:11.146941", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.143058", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 21 days, 8:04, 1 user, load average: 0.64, 0.64, 0.64", "stdout_lines": [" 19:40:11 up 21 days, 8:04, 1 user, load average: 0.64, 0.64, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002914", "end": "2025-12-16 19:40:11.160566", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.157652", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 2 days, 9:12, 1 user, load average: 0.28, 0.20, 0.18", "stdout_lines": [" 19:40:11 up 2 days, 9:12, 1 user, load average: 0.28, 0.20, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008526", "end": "2025-12-16 19:40:11.834888", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.826362", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 193 days, 11:13, 1 user, load average: 0.13, 0.14, 0.10", "stdout_lines": [" 19:40:11 up 193 days, 11:13, 1 user, load average: 0.13, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009298", "end": "2025-12-16 19:40:11.853832", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.844534", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 193 days, 11:13, 1 user, load average: 0.12, 0.17, 0.19", "stdout_lines": [" 19:40:11 up 193 days, 11:13, 1 user, load average: 0.12, 0.17, 0.19"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004245", "end": "2025-12-16 19:40:12.112358", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.108113", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 21 days, 6:31, 1 user, load average: 0.15, 0.18, 0.24", "stdout_lines": [" 19:40:11 up 21 days, 6:31, 1 user, load average: 0.15, 0.18, 0.24"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004055", "end": "2025-12-16 19:40:12.130949", "msg": "", "rc": 0, "start": "2025-12-16 19:40:11.126894", "stderr": "", "stderr_lines": [], "stdout": " 19:40:11 up 21 days, 6:51, 1 user, load average: 1.23, 0.89, 0.79", "stdout_lines": [" 19:40:11 up 21 days, 6:51, 1 user, load average: 1.23, 0.89, 0.79"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002991", "end": "2025-12-16 19:39:46.676700", "msg": "", "rc": 0, "start": "2025-12-16 19:39:46.673709", "stderr": "", "stderr_lines": [], "stdout": " 19:39:46 up 10 days, 7:29, 0 user, load average: 0.00, 0.10, 0.14", "stdout_lines": [" 19:39:46 up 10 days, 7:29, 0 user, load average: 0.00, 0.10, 0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003757", "end": "2025-12-16 19:39:40.501224", "msg": "", "rc": 0, "start": "2025-12-16 19:39:40.497467", "stderr": "", "stderr_lines": [], "stdout": " 19:39:40 up 17 days, 3:41, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 19:39:40 up 17 days, 3:41, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004716", "end": "2025-12-16 19:40:12.566787", "msg": "", "rc": 0, "start": "2025-12-16 19:40:12.562071", "stderr": "", "stderr_lines": [], "stdout": " 19:40:12 up 2 days, 9:11, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 19:40:12 up 2 days, 9:11, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019274", "end": "2025-12-16 19:40:12.537175", "msg": "", "rc": 0, "start": "2025-12-16 19:40:12.517901", "stderr": "", "stderr_lines": [], "stdout": " 19:40:12 up 14 days, 9:06, 1 user, load average: 0.07, 0.07, 0.09", "stdout_lines": [" 19:40:12 up 14 days, 9:06, 1 user, load average: 0.07, 0.07, 0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003442", "end": "2025-12-16 19:39:43.396543", "msg": "", "rc": 0, "start": "2025-12-16 19:39:43.393101", "stderr": "", "stderr_lines": [], "stdout": " 19:39:43 up 19 days, 22:34, 0 user, load average: 0.50, 0.52, 0.48", "stdout_lines": [" 19:39:43 up 19 days, 22:34, 0 user, load average: 0.50, 0.52, 0.48"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002911", "end": "2025-12-16 19:39:49.737318", "msg": "", "rc": 0, "start": "2025-12-16 19:39:49.734407", "stderr": "", "stderr_lines": [], "stdout": " 19:39:49 up 16 days, 8:55, 0 user, load average: 0.65, 0.39, 0.31", "stdout_lines": [" 19:39:49 up 16 days, 8:55, 0 user, load average: 0.65, 0.39, 0.31"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004375", "end": "2025-12-16 16:40:12.884398", "msg": "", "rc": 0, "start": "2025-12-16 16:40:12.880023", "stderr": "", "stderr_lines": [], "stdout": " 4:40PM up 21 days, 6:30, 1 user, load averages: 0.36, 0.26, 0.22", "stdout_lines": [" 4:40PM up 21 days, 6:30, 1 user, load averages: 0.36, 0.26, 0.22"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007458", "end": "2025-12-16 19:40:13.287447", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.279989", "stderr": "", "stderr_lines": [], "stdout": " 19:40:13 up 21:18, 1 user, load average: 1.22, 1.15, 1.12", "stdout_lines": [" 19:40:13 up 21:18, 1 user, load average: 1.22, 1.15, 1.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003613", "end": "2025-12-16 19:40:13.008937", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.005324", "stderr": "", "stderr_lines": [], "stdout": " 19:40:13 up 2 days, 9:11, 1 user, load average: 0.04, 0.04, 0.00", "stdout_lines": [" 19:40:13 up 2 days, 9:11, 1 user, load average: 0.04, 0.04, 0.00"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004370", "end": "2025-12-16 19:40:13.408582", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.404212", "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.004136", "end": "2025-12-16 19:40:13.424970", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.420834", "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.004588", "end": "2025-12-16 19:40:13.448320", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.443732", "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.005057", "end": "2025-12-16 19:40:13.459720", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.454663", "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.006710", "end": "2025-12-16 19:40:13.488518", "msg": "", "rc": 0, "start": "2025-12-16 19:40:13.481808", "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.005082", "end": "2025-12-16 19:39:48.253142", "msg": "", "rc": 0, "start": "2025-12-16 19:39:48.248060", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005904", "end": "2025-12-16 19:39:42.099996", "msg": "", "rc": 0, "start": "2025-12-16 19:39:42.094092", "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.010529", "end": "2025-12-16 19:40:14.188668", "msg": "", "rc": 0, "start": "2025-12-16 19:40:14.178139", "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.011750", "end": "2025-12-16 19:40:14.209807", "msg": "", "rc": 0, "start": "2025-12-16 19:40:14.198057", "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.005656", "end": "2025-12-16 19:40:14.385528", "msg": "", "rc": 0, "start": "2025-12-16 19:40:14.379872", "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.006729", "end": "2025-12-16 19:39:45.290335", "msg": "", "rc": 0, "start": "2025-12-16 19:39:45.283606", "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.005464", "end": "2025-12-16 16:40:14.674406", "msg": "", "rc": 0, "start": "2025-12-16 16:40:14.668942", "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.004625", "end": "2025-12-16 19:39:51.650136", "msg": "", "rc": 0, "start": "2025-12-16 19:39:51.645511", "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.005451", "end": "2025-12-16 19:40:14.820528", "msg": "", "rc": 0, "start": "2025-12-16 19:40:14.815077", "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.025290", "end": "2025-12-16 19:40:14.792395", "msg": "", "rc": 0, "start": "2025-12-16 19:40:14.767105", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020745", "end": "2025-12-16 19:40:15.305760", "msg": "", "rc": 0, "start": "2025-12-16 19:40:15.285015", "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.004471", "end": "2025-12-16 19:40:15.318024", "msg": "", "rc": 0, "start": "2025-12-16 19:40:15.313553", "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.004220", "end": "2025-12-16 19:40:15.344212", "msg": "", "rc": 0, "start": "2025-12-16 19:40:15.339992", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004823", "end": "2025-12-16 19:40:15.351566", "msg": "", "rc": 0, "start": "2025-12-16 19:40:15.346743", "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.005099", "end": "2025-12-16 19:40:15.381498", "msg": "", "rc": 0, "start": "2025-12-16 19:40:15.376399", "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.005642", "end": "2025-12-16 19:40:15.410642", "msg": "", "rc": 0, "start": "2025-12-16 19:40:15.405000", "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.003907", "end": "2025-12-16 19:39:50.184820", "msg": "", "rc": 0, "start": "2025-12-16 19:39:50.180913", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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-16 19:39:44.040736", "msg": "", "rc": 0, "start": "2025-12-16 19:39:44.036039", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010997", "end": "2025-12-16 19:40:16.016061", "msg": "", "rc": 0, "start": "2025-12-16 19:40:16.005064", "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.012002", "end": "2025-12-16 19:40:16.057029", "msg": "", "rc": 0, "start": "2025-12-16 19:40:16.045027", "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.005841", "end": "2025-12-16 19:40:16.329664", "msg": "", "rc": 0, "start": "2025-12-16 19:40:16.323823", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003523", "end": "2025-12-16 19:39:53.465640", "msg": "", "rc": 0, "start": "2025-12-16 19:39:53.462117", "stderr": "", "stderr_lines": [], "stdout": "61.0%", "stdout_lines": ["61.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.005630", "end": "2025-12-16 16:40:16.533765", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:40:16.528135", "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.004946", "end": "2025-12-16 19:39:47.209765", "msg": "", "rc": 0, "start": "2025-12-16 19:39:47.204819", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005350", "end": "2025-12-16 19:40:16.777424", "msg": "", "rc": 0, "start": "2025-12-16 19:40:16.772074", "stderr": "", "stderr_lines": [], "stdout": "13.9%", "stdout_lines": ["13.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.009499", "end": "2025-12-16 19:40:17.289280", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.279781", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025696", "end": "2025-12-16 19:40:16.713304", "msg": "", "rc": 0, "start": "2025-12-16 19:40:16.687608", "stderr": "", "stderr_lines": [], "stdout": "19.7%", "stdout_lines": ["19.7%"]}
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.005264", "end": "2025-12-16 19:40:17.236264", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.231000", "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.004837", "end": "2025-12-16 19:40:17.259341", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.254504", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.006163", "end": "2025-12-16 19:40:17.273570", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.267407", "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.003387", "end": "2025-12-16 19:40:17.293548", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.290161", "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.006440", "end": "2025-12-16 19:40:17.314129", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.307689", "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.002598", "end": "2025-12-16 19:39:52.096099", "msg": "", "rc": 0, "start": "2025-12-16 19:39:52.093501", "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.003235", "end": "2025-12-16 19:39:45.894739", "msg": "", "rc": 0, "start": "2025-12-16 19:39:45.891504", "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.011908", "end": "2025-12-16 19:40:17.930666", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.918758", "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.013173", "end": "2025-12-16 19:40:17.979968", "msg": "", "rc": 0, "start": "2025-12-16 19:40:17.966795", "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.003558", "end": "2025-12-16 19:40:18.247826", "msg": "", "rc": 0, "start": "2025-12-16 19:40:18.244268", "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.002923", "end": "2025-12-16 19:39:49.087967", "msg": "", "rc": 0, "start": "2025-12-16 19:39:49.085044", "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.002901", "end": "2025-12-16 19:39:55.389269", "msg": "", "rc": 0, "start": "2025-12-16 19:39:55.386368", "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.003958", "end": "2025-12-16 16:40:18.440774", "msg": "", "rc": 0, "start": "2025-12-16 16:40:18.436816", "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.002959", "end": "2025-12-16 19:40:18.668040", "msg": "", "rc": 0, "start": "2025-12-16 19:40:18.665081", "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.004425", "end": "2025-12-16 19:40:19.237032", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.232607", "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.028556", "end": "2025-12-16 19:40:18.628076", "msg": "", "rc": 0, "start": "2025-12-16 19:40:18.599520", "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.004301", "end": "2025-12-16 19:40:19.144735", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.140434", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.004131", "end": "2025-12-16 19:40:19.150104", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.145973", "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.004532", "end": "2025-12-16 19:40:19.179711", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.175179", "stderr": "", "stderr_lines": [], "stdout": "1.04", "stdout_lines": ["1.04"]}
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.004946", "end": "2025-12-16 19:40:19.195288", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.190342", "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.005593", "end": "2025-12-16 19:40:19.213312", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.207719", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
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.004377", "end": "2025-12-16 19:39:53.964981", "msg": "", "rc": 0, "start": "2025-12-16 19:39:53.960604", "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.004966", "end": "2025-12-16 19:39:47.765775", "msg": "", "rc": 0, "start": "2025-12-16 19:39:47.760809", "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.010306", "end": "2025-12-16 19:40:19.921523", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.911217", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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-16 19:40:19.943220", "msg": "", "rc": 0, "start": "2025-12-16 19:40:19.931976", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.006131", "end": "2025-12-16 19:40:20.110988", "msg": "", "rc": 0, "start": "2025-12-16 19:40:20.104857", "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.004871", "end": "2025-12-16 19:39:50.938251", "msg": "", "rc": 0, "start": "2025-12-16 19:39:50.933380", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.006001", "end": "2025-12-16 16:40:20.398074", "msg": "", "rc": 0, "start": "2025-12-16 16:40:20.392073", "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.004057", "end": "2025-12-16 19:39:57.354976", "msg": "", "rc": 0, "start": "2025-12-16 19:39:57.350919", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.007120", "end": "2025-12-16 19:40:21.132921", "msg": "", "rc": 0, "start": "2025-12-16 19:40:21.125801", "stderr": "", "stderr_lines": [], "stdout": "1.59", "stdout_lines": ["1.59"]}
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.005342", "end": "2025-12-16 19:40:20.531167", "msg": "", "rc": 0, "start": "2025-12-16 19:40:20.525825", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.024313", "end": "2025-12-16 19:40:20.523951", "msg": "", "rc": 0, "start": "2025-12-16 19:40:20.499638", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 21 days, 6:31, 1 user, load average: 0.15, 0.18, 0.24\nDisk Usage: 23%\nMemory Usage: 81.2%\nCPU Load: 0.12\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 2 days, 9:12, 1 user, load average: 0.28, 0.20, 0.18\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.39\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 21 days, 6:51, 1 user, load average: 1.23, 0.89, 0.79\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 1.04\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 21 days, 8:04, 1 user, load average: 0.64, 0.64, 0.64\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.83\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 21 days, 8:50, 1 user, load average: 0.01, 0.01, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:12 up 14 days, 9:06, 1 user, load average: 0.07, 0.07, 0.09\nDisk Usage: 21%\nMemory Usage: 19.7%\nCPU Load: 0.15\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 193 days, 11:13, 1 user, load average: 0.12, 0.17, 0.19\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.19\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:11 up 193 days, 11:13, 1 user, load average: 0.13, 0.14, 0.10\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.18\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:46 up 10 days, 7:29, 0 user, load average: 0.00, 0.10, 0.14\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:40 up 17 days, 3:41, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 69.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:40:12 up 2 days, 9:11, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:43 up 19 days, 22:34, 0 user, load average: 0.50, 0.52, 0.48\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.50\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:39:49 up 16 days, 8:55, 0 user, load average: 0.65, 0.39, 0.31\nDisk Usage: 75%\nMemory Usage: 61.0%\nCPU Load: 0.55\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:40PM up 21 days, 6:30, 1 user, load averages: 0.36, 0.26, 0.22\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:13 up 21:18, 1 user, load average: 1.22, 1.15, 1.12\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.59\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:40:13 up 2 days, 9:11, 1 user, load average: 0.04, 0.04, 0.00\nDisk Usage: 79%\nMemory Usage: 13.9%\nCPU Load: 0.03\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-17T00:40:22.066973+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `20bf5abe304744ada82bf78a48a3089f` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:45:00.001056+00:00 |
| **Fin** | 2025-12-17T00:45:23.408315+00:00 |
| **Durée** | 23.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: [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.003134", "end": "2025-12-16 19:45:11.876209", "msg": "", "rc": 0, "start": "2025-12-16 19:45:11.873075", "stderr": "", "stderr_lines": [], "stdout": " 19:45:11 up 21 days, 6:36, 1 user, load average: 0.23, 0.18, 0.21", "stdout_lines": [" 19:45:11 up 21 days, 6:36, 1 user, load average: 0.23, 0.18, 0.21"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003927", "end": "2025-12-16 19:45:11.901342", "msg": "", "rc": 0, "start": "2025-12-16 19:45:11.897415", "stderr": "", "stderr_lines": [], "stdout": " 19:45:11 up 21 days, 8:55, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:45:11 up 21 days, 8:55, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002841", "end": "2025-12-16 19:45:11.915270", "msg": "", "rc": 0, "start": "2025-12-16 19:45:11.912429", "stderr": "", "stderr_lines": [], "stdout": " 19:45:11 up 2 days, 9:17, 1 user, load average: 0.10, 0.14, 0.16", "stdout_lines": [" 19:45:11 up 2 days, 9:17, 1 user, load average: 0.10, 0.14, 0.16"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008447", "end": "2025-12-16 19:45:12.568422", "msg": "", "rc": 0, "start": "2025-12-16 19:45:12.559975", "stderr": "", "stderr_lines": [], "stdout": " 19:45:12 up 193 days, 11:18, 1 user, load average: 0.13, 0.15, 0.11", "stdout_lines": [" 19:45:12 up 193 days, 11:18, 1 user, load average: 0.13, 0.15, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009327", "end": "2025-12-16 19:45:12.614763", "msg": "", "rc": 0, "start": "2025-12-16 19:45:12.605436", "stderr": "", "stderr_lines": [], "stdout": " 19:45:12 up 193 days, 11:18, 1 user, load average: 0.16, 0.18, 0.18", "stdout_lines": [" 19:45:12 up 193 days, 11:18, 1 user, load average: 0.16, 0.18, 0.18"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004288", "end": "2025-12-16 19:45:12.912515", "msg": "", "rc": 0, "start": "2025-12-16 19:45:11.908227", "stderr": "", "stderr_lines": [], "stdout": " 19:45:11 up 21 days, 6:56, 1 user, load average: 1.29, 1.07, 0.88", "stdout_lines": [" 19:45:11 up 21 days, 6:56, 1 user, load average: 1.29, 1.07, 0.88"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004732", "end": "2025-12-16 19:45:12.915364", "msg": "", "rc": 0, "start": "2025-12-16 19:45:11.910632", "stderr": "", "stderr_lines": [], "stdout": " 19:45:11 up 21 days, 8:09, 1 user, load average: 0.61, 0.60, 0.62", "stdout_lines": [" 19:45:11 up 21 days, 8:09, 1 user, load average: 0.61, 0.60, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002753", "end": "2025-12-16 19:44:47.397323", "msg": "", "rc": 0, "start": "2025-12-16 19:44:47.394570", "stderr": "", "stderr_lines": [], "stdout": " 19:44:47 up 10 days, 7:34, 0 user, load average: 0.14, 0.10, 0.12", "stdout_lines": [" 19:44:47 up 10 days, 7:34, 0 user, load average: 0.14, 0.10, 0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003605", "end": "2025-12-16 19:44:41.236790", "msg": "", "rc": 0, "start": "2025-12-16 19:44:41.233185", "stderr": "", "stderr_lines": [], "stdout": " 19:44:41 up 17 days, 3:46, 0 user, load average: 0.14, 0.05, 0.01", "stdout_lines": [" 19:44:41 up 17 days, 3:46, 0 user, load average: 0.14, 0.05, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019760", "end": "2025-12-16 19:45:13.258325", "msg": "", "rc": 0, "start": "2025-12-16 19:45:13.238565", "stderr": "", "stderr_lines": [], "stdout": " 19:45:13 up 14 days, 9:11, 1 user, load average: 0.06, 0.05, 0.07", "stdout_lines": [" 19:45:13 up 14 days, 9:11, 1 user, load average: 0.06, 0.05, 0.07"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004776", "end": "2025-12-16 19:45:13.380870", "msg": "", "rc": 0, "start": "2025-12-16 19:45:13.376094", "stderr": "", "stderr_lines": [], "stdout": " 19:45:13 up 2 days, 9:16, 1 user, load average: 0.11, 0.08, 0.02", "stdout_lines": [" 19:45:13 up 2 days, 9:16, 1 user, load average: 0.11, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004070", "end": "2025-12-16 19:44:44.132636", "msg": "", "rc": 0, "start": "2025-12-16 19:44:44.128566", "stderr": "", "stderr_lines": [], "stdout": " 19:44:44 up 19 days, 22:39, 0 user, load average: 0.68, 0.64, 0.55", "stdout_lines": [" 19:44:44 up 19 days, 22:39, 0 user, load average: 0.68, 0.64, 0.55"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005042", "end": "2025-12-16 19:44:50.489582", "msg": "", "rc": 0, "start": "2025-12-16 19:44:50.484540", "stderr": "", "stderr_lines": [], "stdout": " 19:44:50 up 16 days, 9:00, 0 user, load average: 0.05, 0.26, 0.27", "stdout_lines": [" 19:44:50 up 16 days, 9:00, 0 user, load average: 0.05, 0.26, 0.27"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004198", "end": "2025-12-16 16:45:13.643623", "msg": "", "rc": 0, "start": "2025-12-16 16:45:13.639425", "stderr": "", "stderr_lines": [], "stdout": " 4:45PM up 21 days, 6:35, 1 user, load averages: 0.39, 0.28, 0.24", "stdout_lines": [" 4:45PM up 21 days, 6:35, 1 user, load averages: 0.39, 0.28, 0.24"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007499", "end": "2025-12-16 19:45:14.476204", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.468705", "stderr": "", "stderr_lines": [], "stdout": " 19:45:14 up 21:23, 1 user, load average: 1.22, 1.16, 1.12", "stdout_lines": [" 19:45:14 up 21:23, 1 user, load average: 1.22, 1.16, 1.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003954", "end": "2025-12-16 19:45:13.799356", "msg": "", "rc": 0, "start": "2025-12-16 19:45:13.795402", "stderr": "", "stderr_lines": [], "stdout": " 19:45:13 up 2 days, 9:16, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 19:45:13 up 2 days, 9:16, 1 user, load average: 0.04, 0.03, 0.00"]}
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-16 19:45:14.197089", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.192816", "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.004086", "end": "2025-12-16 19:45:14.224530", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.220444", "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.005218", "end": "2025-12-16 19:45:14.225654", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.220436", "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.004649", "end": "2025-12-16 19:45:14.251722", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.247073", "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.005628", "end": "2025-12-16 19:45:14.279243", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.273615", "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.004858", "end": "2025-12-16 19:44:49.045838", "msg": "", "rc": 0, "start": "2025-12-16 19:44:49.040980", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005625", "end": "2025-12-16 19:44:42.882729", "msg": "", "rc": 0, "start": "2025-12-16 19:44:42.877104", "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.010520", "end": "2025-12-16 19:45:14.982557", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.972037", "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.012048", "end": "2025-12-16 19:45:15.004215", "msg": "", "rc": 0, "start": "2025-12-16 19:45:14.992167", "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.005854", "end": "2025-12-16 19:45:15.188641", "msg": "", "rc": 0, "start": "2025-12-16 19:45:15.182787", "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.005653", "end": "2025-12-16 19:44:46.083790", "msg": "", "rc": 0, "start": "2025-12-16 19:44:46.078137", "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.005394", "end": "2025-12-16 16:45:15.495148", "msg": "", "rc": 0, "start": "2025-12-16 16:45:15.489754", "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.004978", "end": "2025-12-16 19:44:52.453954", "msg": "", "rc": 0, "start": "2025-12-16 19:44:52.448976", "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.005549", "end": "2025-12-16 19:45:15.618025", "msg": "", "rc": 0, "start": "2025-12-16 19:45:15.612476", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019449", "end": "2025-12-16 19:45:16.540697", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.521248", "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.024866", "end": "2025-12-16 19:45:15.677952", "msg": "", "rc": 0, "start": "2025-12-16 19:45:15.653086", "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.004508", "end": "2025-12-16 19:45:16.210126", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.205618", "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.004256", "end": "2025-12-16 19:45:16.232484", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.228228", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004949", "end": "2025-12-16 19:45:16.239541", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.234592", "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.005131", "end": "2025-12-16 19:45:16.268536", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.263405", "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.007301", "end": "2025-12-16 19:45:16.303570", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.296269", "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.003857", "end": "2025-12-16 19:44:51.042779", "msg": "", "rc": 0, "start": "2025-12-16 19:44:51.038922", "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.004716", "end": "2025-12-16 19:44:44.910933", "msg": "", "rc": 0, "start": "2025-12-16 19:44:44.906217", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011078", "end": "2025-12-16 19:45:16.907934", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.896856", "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.011962", "end": "2025-12-16 19:45:16.947388", "msg": "", "rc": 0, "start": "2025-12-16 19:45:16.935426", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.006447", "end": "2025-12-16 19:45:17.174357", "msg": "", "rc": 0, "start": "2025-12-16 19:45:17.167910", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.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.005190", "end": "2025-12-16 16:45:17.419484", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:45:17.414294", "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.003442", "end": "2025-12-16 19:44:54.368459", "msg": "", "rc": 0, "start": "2025-12-16 19:44:54.365017", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.004175", "end": "2025-12-16 19:44:48.109972", "msg": "", "rc": 0, "start": "2025-12-16 19:44:48.105797", "stderr": "", "stderr_lines": [], "stdout": "27.0%", "stdout_lines": ["27.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.005429", "end": "2025-12-16 19:45:17.606970", "msg": "", "rc": 0, "start": "2025-12-16 19:45:17.601541", "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.008378", "end": "2025-12-16 19:45:18.604649", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.596271", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025476", "end": "2025-12-16 19:45:17.602760", "msg": "", "rc": 0, "start": "2025-12-16 19:45:17.577284", "stderr": "", "stderr_lines": [], "stdout": "20.8%", "stdout_lines": ["20.8%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
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.005522", "end": "2025-12-16 19:45:18.139274", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.133752", "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: [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.005536", "end": "2025-12-16 19:45:18.135311", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.129775", "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.004856", "end": "2025-12-16 19:45:18.143911", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.139055", "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.003186", "end": "2025-12-16 19:45:18.170600", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.167414", "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.006260", "end": "2025-12-16 19:45:18.193045", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.186785", "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.002861", "end": "2025-12-16 19:44:52.966834", "msg": "", "rc": 0, "start": "2025-12-16 19:44:52.963973", "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.003112", "end": "2025-12-16 19:44:46.775164", "msg": "", "rc": 0, "start": "2025-12-16 19:44:46.772052", "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.011866", "end": "2025-12-16 19:45:18.823349", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.811483", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.014731", "end": "2025-12-16 19:45:18.875619", "msg": "", "rc": 0, "start": "2025-12-16 19:45:18.860888", "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.003265", "end": "2025-12-16 19:45:19.106949", "msg": "", "rc": 0, "start": "2025-12-16 19:45:19.103684", "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.003013", "end": "2025-12-16 19:44:49.957001", "msg": "", "rc": 0, "start": "2025-12-16 19:44:49.953988", "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.002806", "end": "2025-12-16 19:44:56.261070", "msg": "", "rc": 0, "start": "2025-12-16 19:44:56.258264", "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.003898", "end": "2025-12-16 16:45:19.332143", "msg": "", "rc": 0, "start": "2025-12-16 16:45:19.328245", "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.002935", "end": "2025-12-16 19:45:19.533285", "msg": "", "rc": 0, "start": "2025-12-16 19:45:19.530350", "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.004333", "end": "2025-12-16 19:45:20.553636", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.549303", "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.028865", "end": "2025-12-16 19:45:19.536720", "msg": "", "rc": 0, "start": "2025-12-16 19:45:19.507855", "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.004253", "end": "2025-12-16 19:45:20.087837", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.083584", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.004723", "end": "2025-12-16 19:45:20.096473", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.091750", "stderr": "", "stderr_lines": [], "stdout": "1.17", "stdout_lines": ["1.17"]}
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.003995", "end": "2025-12-16 19:45:20.101562", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.097567", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.005140", "end": "2025-12-16 19:45:20.129680", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.124540", "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.005581", "end": "2025-12-16 19:45:20.147999", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.142418", "stderr": "", "stderr_lines": [], "stdout": "0.64", "stdout_lines": ["0.64"]}
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.004408", "end": "2025-12-16 19:44:54.929337", "msg": "", "rc": 0, "start": "2025-12-16 19:44:54.924929", "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.005062", "end": "2025-12-16 19:44:48.720517", "msg": "", "rc": 0, "start": "2025-12-16 19:44:48.715455", "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.010210", "end": "2025-12-16 19:45:20.872351", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.862141", "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.011146", "end": "2025-12-16 19:45:20.898599", "msg": "", "rc": 0, "start": "2025-12-16 19:45:20.887453", "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.005688", "end": "2025-12-16 19:45:21.073462", "msg": "", "rc": 0, "start": "2025-12-16 19:45:21.067774", "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.005062", "end": "2025-12-16 19:44:51.892149", "msg": "", "rc": 0, "start": "2025-12-16 19:44:51.887087", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.006052", "end": "2025-12-16 16:45:21.364857", "msg": "", "rc": 0, "start": "2025-12-16 16:45:21.358805", "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.004241", "end": "2025-12-16 19:44:58.315323", "msg": "", "rc": 0, "start": "2025-12-16 19:44:58.311082", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.005251", "end": "2025-12-16 19:45:21.496215", "msg": "", "rc": 0, "start": "2025-12-16 19:45:21.490964", "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.007262", "end": "2025-12-16 19:45:22.567577", "msg": "", "rc": 0, "start": "2025-12-16 19:45:22.560315", "stderr": "", "stderr_lines": [], "stdout": "1.41", "stdout_lines": ["1.41"]}
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.025326", "end": "2025-12-16 19:45:21.474933", "msg": "", "rc": 0, "start": "2025-12-16 19:45:21.449607", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:11 up 2 days, 9:17, 1 user, load average: 0.10, 0.14, 0.16\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.25\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:11 up 21 days, 6:36, 1 user, load average: 0.23, 0.18, 0.21\nDisk Usage: 23%\nMemory Usage: 81.2%\nCPU Load: 0.35\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:11 up 21 days, 6:56, 1 user, load average: 1.29, 1.07, 0.88\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.17\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:11 up 21 days, 8:09, 1 user, load average: 0.61, 0.60, 0.62\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.64\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:11 up 21 days, 8:55, 1 user, load average: 0.00, 0.00, 0.00\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:13 up 14 days, 9:11, 1 user, load average: 0.06, 0.05, 0.07\nDisk Usage: 21%\nMemory Usage: 20.8%\nCPU Load: 0.14\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:12 up 193 days, 11:18, 1 user, load average: 0.16, 0.18, 0.18\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.23\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:12 up 193 days, 11:18, 1 user, load average: 0.13, 0.15, 0.11\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.12\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:47 up 10 days, 7:34, 0 user, load average: 0.14, 0.10, 0.12\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:41 up 17 days, 3:46, 0 user, load average: 0.14, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:13 up 2 days, 9:16, 1 user, load average: 0.11, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:44 up 19 days, 22:39, 0 user, load average: 0.68, 0.64, 0.55\nDisk Usage: 28%\nMemory Usage: 27.0%\nCPU Load: 0.65\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:44:50 up 16 days, 9:00, 0 user, load average: 0.05, 0.26, 0.27\nDisk Usage: 75%\nMemory Usage: 60.0%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:45PM up 21 days, 6:35, 1 user, load averages: 0.39, 0.28, 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:45:13 up 2 days, 9:16, 1 user, load average: 0.04, 0.03, 0.00\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:45:14 up 21:23, 1 user, load average: 1.22, 1.16, 1.12\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.41\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-17T00:45:23.448015+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `189ed551ad3549648cd26ec5f6c551ec` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:50:00.002805+00:00 |
| **Fin** | 2025-12-17T00:50:22.159248+00:00 |
| **Durée** | 22.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: [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.003726", "end": "2025-12-16 19:50:11.644263", "msg": "", "rc": 0, "start": "2025-12-16 19:50:11.640537", "stderr": "", "stderr_lines": [], "stdout": " 19:50:11 up 21 days, 9:00, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:50:11 up 21 days, 9:00, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003333", "end": "2025-12-16 19:50:11.641991", "msg": "", "rc": 0, "start": "2025-12-16 19:50:11.638658", "stderr": "", "stderr_lines": [], "stdout": " 19:50:11 up 21 days, 7:01, 1 user, load average: 0.59, 0.86, 0.86", "stdout_lines": [" 19:50:11 up 21 days, 7:01, 1 user, load average: 0.59, 0.86, 0.86"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003774", "end": "2025-12-16 19:50:11.661485", "msg": "", "rc": 0, "start": "2025-12-16 19:50:11.657711", "stderr": "", "stderr_lines": [], "stdout": " 19:50:11 up 21 days, 8:14, 1 user, load average: 0.65, 0.57, 0.60", "stdout_lines": [" 19:50:11 up 21 days, 8:14, 1 user, load average: 0.65, 0.57, 0.60"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002757", "end": "2025-12-16 19:50:11.670365", "msg": "", "rc": 0, "start": "2025-12-16 19:50:11.667608", "stderr": "", "stderr_lines": [], "stdout": " 19:50:11 up 2 days, 9:22, 1 user, load average: 0.65, 0.50, 0.30", "stdout_lines": [" 19:50:11 up 2 days, 9:22, 1 user, load average: 0.65, 0.50, 0.30"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003043", "end": "2025-12-16 19:49:46.480861", "msg": "", "rc": 0, "start": "2025-12-16 19:49:46.477818", "stderr": "", "stderr_lines": [], "stdout": " 19:49:46 up 10 days, 7:39, 0 user, load average: 0.37, 0.21, 0.14", "stdout_lines": [" 19:49:46 up 10 days, 7:39, 0 user, load average: 0.37, 0.21, 0.14"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008610", "end": "2025-12-16 19:50:12.328583", "msg": "", "rc": 0, "start": "2025-12-16 19:50:12.319973", "stderr": "", "stderr_lines": [], "stdout": " 19:50:12 up 193 days, 11:23, 1 user, load average: 0.21, 0.17, 0.11", "stdout_lines": [" 19:50:12 up 193 days, 11:23, 1 user, load average: 0.21, 0.17, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009359", "end": "2025-12-16 19:50:12.373709", "msg": "", "rc": 0, "start": "2025-12-16 19:50:12.364350", "stderr": "", "stderr_lines": [], "stdout": " 19:50:12 up 193 days, 11:23, 1 user, load average: 0.14, 0.16, 0.17", "stdout_lines": [" 19:50:12 up 193 days, 11:23, 1 user, load average: 0.14, 0.16, 0.17"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004356", "end": "2025-12-16 19:50:12.629989", "msg": "", "rc": 0, "start": "2025-12-16 19:50:11.625633", "stderr": "", "stderr_lines": [], "stdout": " 19:50:11 up 21 days, 6:41, 1 user, load average: 0.10, 0.15, 0.18", "stdout_lines": [" 19:50:11 up 21 days, 6:41, 1 user, load average: 0.10, 0.15, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003900", "end": "2025-12-16 19:49:40.744624", "msg": "", "rc": 0, "start": "2025-12-16 19:49:40.740724", "stderr": "", "stderr_lines": [], "stdout": " 19:49:40 up 17 days, 3:51, 0 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 19:49:40 up 17 days, 3:51, 0 user, load average: 0.01, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004982", "end": "2025-12-16 19:50:12.841450", "msg": "", "rc": 0, "start": "2025-12-16 19:50:12.836468", "stderr": "", "stderr_lines": [], "stdout": " 19:50:12 up 2 days, 9:21, 1 user, load average: 0.23, 0.09, 0.02", "stdout_lines": [" 19:50:12 up 2 days, 9:21, 1 user, load average: 0.23, 0.09, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003059", "end": "2025-12-16 19:49:43.644114", "msg": "", "rc": 0, "start": "2025-12-16 19:49:43.641055", "stderr": "", "stderr_lines": [], "stdout": " 19:49:43 up 19 days, 22:44, 0 user, load average: 0.60, 0.74, 0.62", "stdout_lines": [" 19:49:43 up 19 days, 22:44, 0 user, load average: 0.60, 0.74, 0.62"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003100", "end": "2025-12-16 19:49:50.014030", "msg": "", "rc": 0, "start": "2025-12-16 19:49:50.010930", "stderr": "", "stderr_lines": [], "stdout": " 19:49:50 up 16 days, 9:05, 0 user, load average: 0.24, 0.20, 0.24", "stdout_lines": [" 19:49:50 up 16 days, 9:05, 0 user, load average: 0.24, 0.20, 0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004325", "end": "2025-12-16 16:50:13.153512", "msg": "", "rc": 0, "start": "2025-12-16 16:50:13.149187", "stderr": "", "stderr_lines": [], "stdout": " 4:50PM up 21 days, 6:40, 1 user, load averages: 0.22, 0.23, 0.23", "stdout_lines": [" 4:50PM up 21 days, 6:40, 1 user, load averages: 0.22, 0.23, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019370", "end": "2025-12-16 19:50:13.039345", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.019975", "stderr": "", "stderr_lines": [], "stdout": " 19:50:13 up 14 days, 9:16, 1 user, load average: 0.23, 0.18, 0.12", "stdout_lines": [" 19:50:13 up 14 days, 9:16, 1 user, load average: 0.23, 0.18, 0.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004168", "end": "2025-12-16 19:50:13.287532", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.283364", "stderr": "", "stderr_lines": [], "stdout": " 19:50:13 up 2 days, 9:21, 1 user, load average: 0.09, 0.05, 0.01", "stdout_lines": [" 19:50:13 up 2 days, 9:21, 1 user, load average: 0.09, 0.05, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008268", "end": "2025-12-16 19:50:13.320626", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.312358", "stderr": "", "stderr_lines": [], "stdout": " 19:50:13 up 21:28, 1 user, load average: 1.43, 1.20, 1.13", "stdout_lines": [" 19:50:13 up 21:28, 1 user, load average: 1.43, 1.20, 1.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004404", "end": "2025-12-16 19:50:13.699441", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.695037", "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.004198", "end": "2025-12-16 19:50:13.704443", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.700245", "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.004882", "end": "2025-12-16 19:50:13.714062", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.709180", "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.004810", "end": "2025-12-16 19:50:13.745965", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.741155", "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.005680", "end": "2025-12-16 19:50:13.745489", "msg": "", "rc": 0, "start": "2025-12-16 19:50:13.739809", "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.005145", "end": "2025-12-16 19:49:48.558857", "msg": "", "rc": 0, "start": "2025-12-16 19:49:48.553712", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005458", "end": "2025-12-16 19:49:42.334808", "msg": "", "rc": 0, "start": "2025-12-16 19:49:42.329350", "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.010585", "end": "2025-12-16 19:50:14.469269", "msg": "", "rc": 0, "start": "2025-12-16 19:50:14.458684", "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.011594", "end": "2025-12-16 19:50:14.478281", "msg": "", "rc": 0, "start": "2025-12-16 19:50:14.466687", "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.006397", "end": "2025-12-16 19:50:14.713669", "msg": "", "rc": 0, "start": "2025-12-16 19:50:14.707272", "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.006289", "end": "2025-12-16 19:49:45.515366", "msg": "", "rc": 0, "start": "2025-12-16 19:49:45.509077", "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.005365", "end": "2025-12-16 16:50:14.948650", "msg": "", "rc": 0, "start": "2025-12-16 16:50:14.943285", "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.004858", "end": "2025-12-16 19:49:51.958913", "msg": "", "rc": 0, "start": "2025-12-16 19:49:51.954055", "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.005993", "end": "2025-12-16 19:50:15.132153", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.126160", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.022214", "end": "2025-12-16 19:50:15.316206", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.293992", "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.024958", "end": "2025-12-16 19:50:15.114298", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.089340", "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.005141", "end": "2025-12-16 19:50:15.645347", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.640206", "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.004082", "end": "2025-12-16 19:50:15.663127", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.659045", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004759", "end": "2025-12-16 19:50:15.667156", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.662397", "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.004647", "end": "2025-12-16 19:50:15.696927", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.692280", "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.010004", "end": "2025-12-16 19:50:15.726038", "msg": "", "rc": 0, "start": "2025-12-16 19:50:15.716034", "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.003637", "end": "2025-12-16 19:49:50.472323", "msg": "", "rc": 0, "start": "2025-12-16 19:49:50.468686", "stderr": "", "stderr_lines": [], "stdout": "70.4%", "stdout_lines": ["70.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.005777", "end": "2025-12-16 19:49:44.329715", "msg": "", "rc": 0, "start": "2025-12-16 19:49:44.323938", "stderr": "", "stderr_lines": [], "stdout": "69.2%", "stdout_lines": ["69.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.010930", "end": "2025-12-16 19:50:16.359928", "msg": "", "rc": 0, "start": "2025-12-16 19:50:16.348998", "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.011741", "end": "2025-12-16 19:50:16.366774", "msg": "", "rc": 0, "start": "2025-12-16 19:50:16.355033", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005784", "end": "2025-12-16 19:50:16.635124", "msg": "", "rc": 0, "start": "2025-12-16 19:50:16.629340", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.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.005198", "end": "2025-12-16 16:50:16.861844", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:50:16.856646", "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.004334", "end": "2025-12-16 19:49:47.546209", "msg": "", "rc": 0, "start": "2025-12-16 19:49:47.541875", "stderr": "", "stderr_lines": [], "stdout": "26.6%", "stdout_lines": ["26.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.003556", "end": "2025-12-16 19:49:53.828230", "msg": "", "rc": 0, "start": "2025-12-16 19:49:53.824674", "stderr": "", "stderr_lines": [], "stdout": "60.6%", "stdout_lines": ["60.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.005365", "end": "2025-12-16 19:50:17.070945", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.065580", "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.025360", "end": "2025-12-16 19:50:17.041683", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.016323", "stderr": "", "stderr_lines": [], "stdout": "20.7%", "stdout_lines": ["20.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.009192", "end": "2025-12-16 19:50:17.344939", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.335747", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.005535", "end": "2025-12-16 19:50:17.569592", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.564057", "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.005091", "end": "2025-12-16 19:50:17.584583", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.579492", "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.005680", "end": "2025-12-16 19:50:17.614765", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.609085", "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.003352", "end": "2025-12-16 19:50:17.618635", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.615283", "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.006881", "end": "2025-12-16 19:50:17.647697", "msg": "", "rc": 0, "start": "2025-12-16 19:50:17.640816", "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.002687", "end": "2025-12-16 19:49:52.442346", "msg": "", "rc": 0, "start": "2025-12-16 19:49:52.439659", "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.003467", "end": "2025-12-16 19:49:46.260331", "msg": "", "rc": 0, "start": "2025-12-16 19:49:46.256864", "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.011829", "end": "2025-12-16 19:50:18.294396", "msg": "", "rc": 0, "start": "2025-12-16 19:50:18.282567", "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.012838", "end": "2025-12-16 19:50:18.315795", "msg": "", "rc": 0, "start": "2025-12-16 19:50:18.302957", "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.003441", "end": "2025-12-16 19:50:18.573062", "msg": "", "rc": 0, "start": "2025-12-16 19:50:18.569621", "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.003869", "end": "2025-12-16 16:50:18.778220", "msg": "", "rc": 0, "start": "2025-12-16 16:50:18.774351", "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.002966", "end": "2025-12-16 19:49:49.463198", "msg": "", "rc": 0, "start": "2025-12-16 19:49:49.460232", "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-16 19:49:55.748329", "msg": "", "rc": 0, "start": "2025-12-16 19:49:55.745882", "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.002992", "end": "2025-12-16 19:50:18.997979", "msg": "", "rc": 0, "start": "2025-12-16 19:50:18.994987", "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.005198", "end": "2025-12-16 19:50:19.312795", "msg": "", "rc": 0, "start": "2025-12-16 19:50:19.307597", "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.028559", "end": "2025-12-16 19:50:18.988553", "msg": "", "rc": 0, "start": "2025-12-16 19:50:18.959994", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.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.004378", "end": "2025-12-16 19:50:19.530711", "msg": "", "rc": 0, "start": "2025-12-16 19:50:19.526333", "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.004028", "end": "2025-12-16 19:50:19.530195", "msg": "", "rc": 0, "start": "2025-12-16 19:50:19.526167", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
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.004677", "end": "2025-12-16 19:50:19.554511", "msg": "", "rc": 0, "start": "2025-12-16 19:50:19.549834", "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.005155", "end": "2025-12-16 19:50:19.574355", "msg": "", "rc": 0, "start": "2025-12-16 19:50:19.569200", "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.005429", "end": "2025-12-16 19:50:19.579024", "msg": "", "rc": 0, "start": "2025-12-16 19:50:19.573595", "stderr": "", "stderr_lines": [], "stdout": "0.68", "stdout_lines": ["0.68"]}
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.004922", "end": "2025-12-16 19:49:54.359460", "msg": "", "rc": 0, "start": "2025-12-16 19:49:54.354538", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.005231", "end": "2025-12-16 19:49:48.154909", "msg": "", "rc": 0, "start": "2025-12-16 19:49:48.149678", "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.009952", "end": "2025-12-16 19:50:20.298095", "msg": "", "rc": 0, "start": "2025-12-16 19:50:20.288143", "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.011182", "end": "2025-12-16 19:50:20.365942", "msg": "", "rc": 0, "start": "2025-12-16 19:50:20.354760", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.005588", "end": "2025-12-16 19:50:20.512745", "msg": "", "rc": 0, "start": "2025-12-16 19:50:20.507157", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005000", "end": "2025-12-16 19:49:51.327818", "msg": "", "rc": 0, "start": "2025-12-16 19:49:51.322818", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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.004294", "end": "2025-12-16 19:49:57.724255", "msg": "", "rc": 0, "start": "2025-12-16 19:49:57.719961", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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.005903", "end": "2025-12-16 16:50:20.830341", "msg": "", "rc": 0, "start": "2025-12-16 16:50:20.824438", "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.005221", "end": "2025-12-16 19:50:20.934265", "msg": "", "rc": 0, "start": "2025-12-16 19:50:20.929044", "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.008003", "end": "2025-12-16 19:50:21.267392", "msg": "", "rc": 0, "start": "2025-12-16 19:50:21.259389", "stderr": "", "stderr_lines": [], "stdout": "1.52", "stdout_lines": ["1.52"]}
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.024311", "end": "2025-12-16 19:50:20.921223", "msg": "", "rc": 0, "start": "2025-12-16 19:50:20.896912", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:11 up 21 days, 6:41, 1 user, load average: 0.10, 0.15, 0.18\nDisk Usage: 23%\nMemory Usage: 81.1%\nCPU Load: 0.24\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:11 up 2 days, 9:22, 1 user, load average: 0.65, 0.50, 0.30\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.60\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:11 up 21 days, 7:01, 1 user, load average: 0.59, 0.86, 0.86\nDisk Usage: 14%\nMemory Usage: 49.0%\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:50:11 up 21 days, 8:14, 1 user, load average: 0.65, 0.57, 0.60\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.68\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:11 up 21 days, 9:00, 1 user, load average: 0.00, 0.00, 0.00\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:50:13 up 14 days, 9:16, 1 user, load average: 0.23, 0.18, 0.12\nDisk Usage: 21%\nMemory Usage: 20.7%\nCPU Load: 0.29\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:12 up 193 days, 11:23, 1 user, load average: 0.14, 0.16, 0.17\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.13\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:12 up 193 days, 11:23, 1 user, load average: 0.21, 0.17, 0.11\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.19\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:46 up 10 days, 7:39, 0 user, load average: 0.37, 0.21, 0.14\nDisk Usage: 47%\nMemory Usage: 70.4%\nCPU Load: 0.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:40 up 17 days, 3:51, 0 user, load average: 0.01, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.2%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:12 up 2 days, 9:21, 1 user, load average: 0.23, 0.09, 0.02\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:43 up 19 days, 22:44, 0 user, load average: 0.60, 0.74, 0.62\nDisk Usage: 28%\nMemory Usage: 26.6%\nCPU Load: 0.58\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:49:50 up 16 days, 9:05, 0 user, load average: 0.24, 0.20, 0.24\nDisk Usage: 75%\nMemory Usage: 60.6%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:50PM up 21 days, 6:40, 1 user, load averages: 0.22, 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: 19:50:13 up 2 days, 9:21, 1 user, load average: 0.09, 0.05, 0.01\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:50:13 up 21:28, 1 user, load average: 1.43, 1.20, 1.13\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.52\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-17T00:50:22.201581+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `355cf106f7a345388b52ce2444623271` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T00:55:00.001166+00:00 |
| **Fin** | 2025-12-17T00:55:22.108091+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: [hp2.i7.home] => {"changed": false, "ping": "pong"}
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: [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.003065", "end": "2025-12-16 19:55:11.375056", "msg": "", "rc": 0, "start": "2025-12-16 19:55:11.371991", "stderr": "", "stderr_lines": [], "stdout": " 19:55:11 up 21 days, 6:46, 1 user, load average: 0.02, 0.10, 0.15", "stdout_lines": [" 19:55:11 up 21 days, 6:46, 1 user, load average: 0.02, 0.10, 0.15"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003227", "end": "2025-12-16 19:55:11.379931", "msg": "", "rc": 0, "start": "2025-12-16 19:55:11.376704", "stderr": "", "stderr_lines": [], "stdout": " 19:55:11 up 21 days, 7:06, 1 user, load average: 0.63, 0.66, 0.77", "stdout_lines": [" 19:55:11 up 21 days, 7:06, 1 user, load average: 0.63, 0.66, 0.77"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003691", "end": "2025-12-16 19:55:11.386336", "msg": "", "rc": 0, "start": "2025-12-16 19:55:11.382645", "stderr": "", "stderr_lines": [], "stdout": " 19:55:11 up 21 days, 9:05, 1 user, load average: 0.03, 0.05, 0.02", "stdout_lines": [" 19:55:11 up 21 days, 9:05, 1 user, load average: 0.03, 0.05, 0.02"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003853", "end": "2025-12-16 19:55:11.403642", "msg": "", "rc": 0, "start": "2025-12-16 19:55:11.399789", "stderr": "", "stderr_lines": [], "stdout": " 19:55:11 up 21 days, 8:19, 1 user, load average: 0.50, 0.49, 0.55", "stdout_lines": [" 19:55:11 up 21 days, 8:19, 1 user, load average: 0.50, 0.49, 0.55"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002938", "end": "2025-12-16 19:55:11.412411", "msg": "", "rc": 0, "start": "2025-12-16 19:55:11.409473", "stderr": "", "stderr_lines": [], "stdout": " 19:55:11 up 2 days, 9:27, 1 user, load average: 0.34, 0.33, 0.27", "stdout_lines": [" 19:55:11 up 2 days, 9:27, 1 user, load average: 0.34, 0.33, 0.27"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003114", "end": "2025-12-16 19:54:46.210456", "msg": "", "rc": 0, "start": "2025-12-16 19:54:46.207342", "stderr": "", "stderr_lines": [], "stdout": " 19:54:46 up 10 days, 7:44, 0 user, load average: 0.02, 0.13, 0.12", "stdout_lines": [" 19:54:46 up 10 days, 7:44, 0 user, load average: 0.02, 0.13, 0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003291", "end": "2025-12-16 19:54:39.987173", "msg": "", "rc": 0, "start": "2025-12-16 19:54:39.983882", "stderr": "", "stderr_lines": [], "stdout": " 19:54:39 up 17 days, 3:56, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:54:39 up 17 days, 3:56, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008551", "end": "2025-12-16 19:55:12.060243", "msg": "", "rc": 0, "start": "2025-12-16 19:55:12.051692", "stderr": "", "stderr_lines": [], "stdout": " 19:55:12 up 193 days, 11:28, 1 user, load average: 0.35, 0.30, 0.18", "stdout_lines": [" 19:55:12 up 193 days, 11:28, 1 user, load average: 0.35, 0.30, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009230", "end": "2025-12-16 19:55:12.099385", "msg": "", "rc": 0, "start": "2025-12-16 19:55:12.090155", "stderr": "", "stderr_lines": [], "stdout": " 19:55:12 up 193 days, 11:28, 1 user, load average: 0.33, 0.20, 0.19", "stdout_lines": [" 19:55:12 up 193 days, 11:28, 1 user, load average: 0.33, 0.20, 0.19"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004777", "end": "2025-12-16 19:55:12.369494", "msg": "", "rc": 0, "start": "2025-12-16 19:55:12.364717", "stderr": "", "stderr_lines": [], "stdout": " 19:55:12 up 2 days, 9:26, 1 user, load average: 0.14, 0.08, 0.02", "stdout_lines": [" 19:55:12 up 2 days, 9:26, 1 user, load average: 0.14, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003384", "end": "2025-12-16 19:54:43.160625", "msg": "", "rc": 0, "start": "2025-12-16 19:54:43.157241", "stderr": "", "stderr_lines": [], "stdout": " 19:54:43 up 19 days, 22:49, 0 user, load average: 1.83, 0.99, 0.73", "stdout_lines": [" 19:54:43 up 19 days, 22:49, 0 user, load average: 1.83, 0.99, 0.73"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002987", "end": "2025-12-16 19:54:49.493742", "msg": "", "rc": 0, "start": "2025-12-16 19:54:49.490755", "stderr": "", "stderr_lines": [], "stdout": " 19:54:49 up 16 days, 9:10, 0 user, load average: 0.06, 0.12, 0.19", "stdout_lines": [" 19:54:49 up 16 days, 9:10, 0 user, load average: 0.06, 0.12, 0.19"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004316", "end": "2025-12-16 16:55:12.565953", "msg": "", "rc": 0, "start": "2025-12-16 16:55:12.561637", "stderr": "", "stderr_lines": [], "stdout": " 4:55PM up 21 days, 6:44, 1 user, load averages: 0.33, 0.21, 0.20", "stdout_lines": [" 4:55PM up 21 days, 6:44, 1 user, load averages: 0.33, 0.21, 0.20"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008025", "end": "2025-12-16 19:55:13.207095", "msg": "", "rc": 0, "start": "2025-12-16 19:55:13.199070", "stderr": "", "stderr_lines": [], "stdout": " 19:55:13 up 21:33, 1 user, load average: 1.60, 1.27, 1.16", "stdout_lines": [" 19:55:13 up 21:33, 1 user, load average: 1.60, 1.27, 1.16"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003702", "end": "2025-12-16 19:55:12.792443", "msg": "", "rc": 0, "start": "2025-12-16 19:55:12.788741", "stderr": "", "stderr_lines": [], "stdout": " 19:55:12 up 2 days, 9:26, 1 user, load average: 0.15, 0.10, 0.02", "stdout_lines": [" 19:55:12 up 2 days, 9:26, 1 user, load average: 0.15, 0.10, 0.02"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019197", "end": "2025-12-16 19:55:12.761533", "msg": "", "rc": 0, "start": "2025-12-16 19:55:12.742336", "stderr": "", "stderr_lines": [], "stdout": " 19:55:12 up 14 days, 9:21, 1 user, load average: 0.34, 0.18, 0.12", "stdout_lines": [" 19:55:12 up 14 days, 9:21, 1 user, load average: 0.34, 0.18, 0.12"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004571", "end": "2025-12-16 19:55:13.298318", "msg": "", "rc": 0, "start": "2025-12-16 19:55:13.293747", "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.004082", "end": "2025-12-16 19:55:13.329436", "msg": "", "rc": 0, "start": "2025-12-16 19:55:13.325354", "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.004738", "end": "2025-12-16 19:55:13.331941", "msg": "", "rc": 0, "start": "2025-12-16 19:55:13.327203", "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.005013", "end": "2025-12-16 19:55:13.357315", "msg": "", "rc": 0, "start": "2025-12-16 19:55:13.352302", "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.005440", "end": "2025-12-16 19:55:13.383529", "msg": "", "rc": 0, "start": "2025-12-16 19:55:13.378089", "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.004945", "end": "2025-12-16 19:54:48.135855", "msg": "", "rc": 0, "start": "2025-12-16 19:54:48.130910", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006053", "end": "2025-12-16 19:54:41.973702", "msg": "", "rc": 0, "start": "2025-12-16 19:54:41.967649", "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.010757", "end": "2025-12-16 19:55:14.057499", "msg": "", "rc": 0, "start": "2025-12-16 19:55:14.046742", "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.012193", "end": "2025-12-16 19:55:14.110019", "msg": "", "rc": 0, "start": "2025-12-16 19:55:14.097826", "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.005679", "end": "2025-12-16 19:55:14.276753", "msg": "", "rc": 0, "start": "2025-12-16 19:55:14.271074", "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-16 19:54:45.156355", "msg": "", "rc": 0, "start": "2025-12-16 19:54:45.151237", "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.005192", "end": "2025-12-16 19:54:51.497016", "msg": "", "rc": 0, "start": "2025-12-16 19:54:51.491824", "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.005473", "end": "2025-12-16 16:55:14.574886", "msg": "", "rc": 0, "start": "2025-12-16 16:55:14.569413", "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.005492", "end": "2025-12-16 19:55:14.704091", "msg": "", "rc": 0, "start": "2025-12-16 19:55:14.698599", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019097", "end": "2025-12-16 19:55:15.293177", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.274080", "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.025266", "end": "2025-12-16 19:55:14.697959", "msg": "", "rc": 0, "start": "2025-12-16 19:55:14.672693", "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.004337", "end": "2025-12-16 19:55:15.223694", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.219357", "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.004291", "end": "2025-12-16 19:55:15.255094", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.250803", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004844", "end": "2025-12-16 19:55:15.280537", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.275693", "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.004696", "end": "2025-12-16 19:55:15.289053", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.284357", "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.005865", "end": "2025-12-16 19:55:15.304336", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.298471", "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.003889", "end": "2025-12-16 19:54:50.077977", "msg": "", "rc": 0, "start": "2025-12-16 19:54:50.074088", "stderr": "", "stderr_lines": [], "stdout": "70.4%", "stdout_lines": ["70.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.004322", "end": "2025-12-16 19:54:43.889361", "msg": "", "rc": 0, "start": "2025-12-16 19:54:43.885039", "stderr": "", "stderr_lines": [], "stdout": "69.2%", "stdout_lines": ["69.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.010924", "end": "2025-12-16 19:55:15.971525", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.960601", "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.012047", "end": "2025-12-16 19:55:15.970367", "msg": "", "rc": 0, "start": "2025-12-16 19:55:15.958320", "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.005890", "end": "2025-12-16 19:55:16.234614", "msg": "", "rc": 0, "start": "2025-12-16 19:55:16.228724", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003863", "end": "2025-12-16 19:54:47.068992", "msg": "", "rc": 0, "start": "2025-12-16 19:54:47.065129", "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.005397", "end": "2025-12-16 16:55:16.446171", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 16:55:16.440774", "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.003886", "end": "2025-12-16 19:54:53.406308", "msg": "", "rc": 0, "start": "2025-12-16 19:54:53.402422", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.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.005422", "end": "2025-12-16 19:55:16.653085", "msg": "", "rc": 0, "start": "2025-12-16 19:55:16.647663", "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.008622", "end": "2025-12-16 19:55:17.306759", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.298137", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025940", "end": "2025-12-16 19:55:16.628065", "msg": "", "rc": 0, "start": "2025-12-16 19:55:16.602125", "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.005187", "end": "2025-12-16 19:55:17.146748", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.141561", "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.004926", "end": "2025-12-16 19:55:17.177161", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.172235", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005681", "end": "2025-12-16 19:55:17.182950", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.177269", "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.002770", "end": "2025-12-16 19:55:17.204019", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.201249", "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.006940", "end": "2025-12-16 19:55:17.245136", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.238196", "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.002621", "end": "2025-12-16 19:54:51.967640", "msg": "", "rc": 0, "start": "2025-12-16 19:54:51.965019", "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.003300", "end": "2025-12-16 19:54:45.836261", "msg": "", "rc": 0, "start": "2025-12-16 19:54:45.832961", "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.011813", "end": "2025-12-16 19:55:17.838580", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.826767", "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.012886", "end": "2025-12-16 19:55:17.892123", "msg": "", "rc": 0, "start": "2025-12-16 19:55:17.879237", "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.003123", "end": "2025-12-16 19:55:18.112837", "msg": "", "rc": 0, "start": "2025-12-16 19:55:18.109714", "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.002659", "end": "2025-12-16 19:54:55.286826", "msg": "", "rc": 0, "start": "2025-12-16 19:54:55.284167", "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.003908", "end": "2025-12-16 16:55:18.360450", "msg": "", "rc": 0, "start": "2025-12-16 16:55:18.356542", "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.003070", "end": "2025-12-16 19:54:49.036668", "msg": "", "rc": 0, "start": "2025-12-16 19:54:49.033598", "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.003206", "end": "2025-12-16 19:55:18.528436", "msg": "", "rc": 0, "start": "2025-12-16 19:55:18.525230", "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.004443", "end": "2025-12-16 19:55:19.289548", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.285105", "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.028478", "end": "2025-12-16 19:55:18.532378", "msg": "", "rc": 0, "start": "2025-12-16 19:55:18.503900", "stderr": "", "stderr_lines": [], "stdout": "36.8°C", "stdout_lines": ["36.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.004323", "end": "2025-12-16 19:55:19.073825", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.069502", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.003970", "end": "2025-12-16 19:55:19.079215", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.075245", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.004648", "end": "2025-12-16 19:55:19.097831", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.093183", "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.005748", "end": "2025-12-16 19:55:19.111469", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.105721", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.010184", "end": "2025-12-16 19:55:19.136573", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.126389", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
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.005206", "end": "2025-12-16 19:54:53.912559", "msg": "", "rc": 0, "start": "2025-12-16 19:54:53.907353", "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.005830", "end": "2025-12-16 19:54:47.730784", "msg": "", "rc": 0, "start": "2025-12-16 19:54:47.724954", "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.010084", "end": "2025-12-16 19:55:19.873609", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.863525", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
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.011155", "end": "2025-12-16 19:55:19.916466", "msg": "", "rc": 0, "start": "2025-12-16 19:55:19.905311", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005697", "end": "2025-12-16 19:55:20.054870", "msg": "", "rc": 0, "start": "2025-12-16 19:55:20.049173", "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.005046", "end": "2025-12-16 19:54:50.926263", "msg": "", "rc": 0, "start": "2025-12-16 19:54:50.921217", "stderr": "", "stderr_lines": [], "stdout": "1.71", "stdout_lines": ["1.71"]}
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.004112", "end": "2025-12-16 19:54:57.320011", "msg": "", "rc": 0, "start": "2025-12-16 19:54:57.315899", "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.006358", "end": "2025-12-16 16:55:20.403645", "msg": "", "rc": 0, "start": "2025-12-16 16:55:20.397287", "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.005380", "end": "2025-12-16 19:55:20.486427", "msg": "", "rc": 0, "start": "2025-12-16 19:55:20.481047", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.006915", "end": "2025-12-16 19:55:21.269945", "msg": "", "rc": 0, "start": "2025-12-16 19:55:21.263030", "stderr": "", "stderr_lines": [], "stdout": "1.73", "stdout_lines": ["1.73"]}
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.024025", "end": "2025-12-16 19:55:20.472306", "msg": "", "rc": 0, "start": "2025-12-16 19:55:20.448281", "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: 19:55:11 up 2 days, 9:27, 1 user, load average: 0.34, 0.33, 0.27\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.36\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:11 up 21 days, 6:46, 1 user, load average: 0.02, 0.10, 0.15\nDisk Usage: 23%\nMemory Usage: 81.0%\nCPU Load: 0.02\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:11 up 21 days, 7:06, 1 user, load average: 0.63, 0.66, 0.77\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: 19:55:11 up 21 days, 8:19, 1 user, load average: 0.50, 0.49, 0.55\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.54\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:11 up 21 days, 9:05, 1 user, load average: 0.03, 0.05, 0.02\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:12 up 14 days, 9:21, 1 user, load average: 0.34, 0.18, 0.12\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.31\nCPU Temp: 36.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:12 up 193 days, 11:28, 1 user, load average: 0.33, 0.20, 0.19\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.31\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:12 up 193 days, 11:28, 1 user, load average: 0.35, 0.30, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.46\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:46 up 10 days, 7:44, 0 user, load average: 0.02, 0.13, 0.12\nDisk Usage: 47%\nMemory Usage: 70.4%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:39 up 17 days, 3:56, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.2%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:12 up 2 days, 9:26, 1 user, load average: 0.14, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:43 up 19 days, 22:49, 0 user, load average: 1.83, 0.99, 0.73\nDisk Usage: 28%\nMemory Usage: 25.6%\nCPU Load: 1.71\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:54:49 up 16 days, 9:10, 0 user, load average: 0.06, 0.12, 0.19\nDisk Usage: 75%\nMemory Usage: 59.5%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 4:55PM up 21 days, 6:44, 1 user, load averages: 0.33, 0.21, 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: 19:55:12 up 2 days, 9:26, 1 user, load average: 0.15, 0.10, 0.02\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:55:13 up 21:33, 1 user, load average: 1.60, 1.27, 1.16\nDisk Usage: 1%\nMemory Usage: 20.3%\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-17T00:55:22.148002+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `8281ca7cee5b45628b8b61edd902d61a` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:00:00.000345+00:00 |
| **Fin** | 2025-12-17T01:00:22.176522+00:00 |
| **Durée** | 22.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: [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.4gb.home]
ok: [raspi.8gb.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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003650", "end": "2025-12-16 20:00:11.906281", "msg": "", "rc": 0, "start": "2025-12-16 20:00:11.902631", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 21 days, 9:10, 1 user, load average: 0.02, 0.02, 0.00", "stdout_lines": [" 20:00:11 up 21 days, 9:10, 1 user, load average: 0.02, 0.02, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002882", "end": "2025-12-16 20:00:11.932263", "msg": "", "rc": 0, "start": "2025-12-16 20:00:11.929381", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 2 days, 9:32, 1 user, load average: 0.01, 0.14, 0.20", "stdout_lines": [" 20:00:11 up 2 days, 9:32, 1 user, load average: 0.01, 0.14, 0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003956", "end": "2025-12-16 20:00:11.921825", "msg": "", "rc": 0, "start": "2025-12-16 20:00:11.917869", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 21 days, 8:24, 1 user, load average: 0.42, 0.49, 0.54", "stdout_lines": [" 20:00:11 up 21 days, 8:24, 1 user, load average: 0.42, 0.49, 0.54"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004360", "end": "2025-12-16 20:00:11.946833", "msg": "", "rc": 0, "start": "2025-12-16 20:00:11.942473", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 21 days, 7:11, 1 user, load average: 0.46, 0.59, 0.71", "stdout_lines": [" 20:00:11 up 21 days, 7:11, 1 user, load average: 0.46, 0.59, 0.71"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003115", "end": "2025-12-16 19:59:46.756198", "msg": "", "rc": 0, "start": "2025-12-16 19:59:46.753083", "stderr": "", "stderr_lines": [], "stdout": " 19:59:46 up 10 days, 7:49, 0 user, load average: 0.03, 0.08, 0.09", "stdout_lines": [" 19:59:46 up 10 days, 7:49, 0 user, load average: 0.03, 0.08, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008536", "end": "2025-12-16 20:00:12.604860", "msg": "", "rc": 0, "start": "2025-12-16 20:00:12.596324", "stderr": "", "stderr_lines": [], "stdout": " 20:00:12 up 193 days, 11:33, 1 user, load average: 0.25, 0.28, 0.20", "stdout_lines": [" 20:00:12 up 193 days, 11:33, 1 user, load average: 0.25, 0.28, 0.20"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009301", "end": "2025-12-16 20:00:12.662395", "msg": "", "rc": 0, "start": "2025-12-16 20:00:12.653094", "stderr": "", "stderr_lines": [], "stdout": " 20:00:12 up 193 days, 11:33, 1 user, load average: 0.25, 0.19, 0.18", "stdout_lines": [" 20:00:12 up 193 days, 11:33, 1 user, load average: 0.25, 0.19, 0.18"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003930", "end": "2025-12-16 20:00:12.896072", "msg": "", "rc": 0, "start": "2025-12-16 20:00:11.892142", "stderr": "", "stderr_lines": [], "stdout": " 20:00:11 up 21 days, 6:51, 1 user, load average: 0.12, 0.08, 0.12", "stdout_lines": [" 20:00:11 up 21 days, 6:51, 1 user, load average: 0.12, 0.08, 0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003589", "end": "2025-12-16 19:59:40.999547", "msg": "", "rc": 0, "start": "2025-12-16 19:59:40.995958", "stderr": "", "stderr_lines": [], "stdout": " 19:59:40 up 17 days, 4:01, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 19:59:40 up 17 days, 4:01, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004678", "end": "2025-12-16 20:00:13.116821", "msg": "", "rc": 0, "start": "2025-12-16 20:00:13.112143", "stderr": "", "stderr_lines": [], "stdout": " 20:00:13 up 2 days, 9:31, 1 user, load average: 0.07, 0.04, 0.00", "stdout_lines": [" 20:00:13 up 2 days, 9:31, 1 user, load average: 0.07, 0.04, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003156", "end": "2025-12-16 19:59:43.912953", "msg": "", "rc": 0, "start": "2025-12-16 19:59:43.909797", "stderr": "", "stderr_lines": [], "stdout": " 19:59:43 up 19 days, 22:54, 0 user, load average: 0.42, 0.62, 0.64", "stdout_lines": [" 19:59:43 up 19 days, 22:54, 0 user, load average: 0.42, 0.62, 0.64"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004355", "end": "2025-12-16 17:00:13.405262", "msg": "", "rc": 0, "start": "2025-12-16 17:00:13.400907", "stderr": "", "stderr_lines": [], "stdout": " 5:00PM up 21 days, 6:50, 1 user, load averages: 0.19, 0.20, 0.18", "stdout_lines": [" 5:00PM up 21 days, 6:50, 1 user, load averages: 0.19, 0.20, 0.18"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003270", "end": "2025-12-16 19:59:50.330417", "msg": "", "rc": 0, "start": "2025-12-16 19:59:50.327147", "stderr": "", "stderr_lines": [], "stdout": " 19:59:50 up 16 days, 9:15, 0 user, load average: 0.03, 0.12, 0.17", "stdout_lines": [" 19:59:50 up 16 days, 9:15, 0 user, load average: 0.03, 0.12, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019719", "end": "2025-12-16 20:00:13.315693", "msg": "", "rc": 0, "start": "2025-12-16 20:00:13.295974", "stderr": "", "stderr_lines": [], "stdout": " 20:00:13 up 14 days, 9:26, 1 user, load average: 0.21, 0.12, 0.10", "stdout_lines": [" 20:00:13 up 14 days, 9:26, 1 user, load average: 0.21, 0.12, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003687", "end": "2025-12-16 20:00:13.537360", "msg": "", "rc": 0, "start": "2025-12-16 20:00:13.533673", "stderr": "", "stderr_lines": [], "stdout": " 20:00:13 up 2 days, 9:31, 1 user, load average: 0.00, 0.04, 0.00", "stdout_lines": [" 20:00:13 up 2 days, 9:31, 1 user, load average: 0.00, 0.04, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007463", "end": "2025-12-16 20:00:14.413977", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.406514", "stderr": "", "stderr_lines": [], "stdout": " 20:00:14 up 21:39, 1 user, load average: 1.36, 1.20, 1.16", "stdout_lines": [" 20:00:14 up 21:39, 1 user, load average: 1.36, 1.20, 1.16"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004264", "end": "2025-12-16 20:00:13.974159", "msg": "", "rc": 0, "start": "2025-12-16 20:00:13.969895", "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.004117", "end": "2025-12-16 20:00:13.991737", "msg": "", "rc": 0, "start": "2025-12-16 20:00:13.987620", "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.004797", "end": "2025-12-16 20:00:14.014941", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.010144", "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.005203", "end": "2025-12-16 20:00:14.021132", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.015929", "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-16 20:00:14.039611", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.033991", "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.005119", "end": "2025-12-16 19:59:48.834444", "msg": "", "rc": 0, "start": "2025-12-16 19:59:48.829325", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005451", "end": "2025-12-16 19:59:42.608093", "msg": "", "rc": 0, "start": "2025-12-16 19:59:42.602642", "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.010472", "end": "2025-12-16 20:00:14.742500", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.732028", "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.011533", "end": "2025-12-16 20:00:14.809112", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.797579", "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.005678", "end": "2025-12-16 20:00:15.000782", "msg": "", "rc": 0, "start": "2025-12-16 20:00:14.995104", "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.005227", "end": "2025-12-16 19:59:45.779341", "msg": "", "rc": 0, "start": "2025-12-16 19:59:45.774114", "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.004583", "end": "2025-12-16 19:59:52.183711", "msg": "", "rc": 0, "start": "2025-12-16 19:59:52.179128", "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.005514", "end": "2025-12-16 17:00:15.271037", "msg": "", "rc": 0, "start": "2025-12-16 17:00:15.265523", "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.005356", "end": "2025-12-16 20:00:15.431019", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.425663", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021731", "end": "2025-12-16 20:00:16.345821", "msg": "", "rc": 0, "start": "2025-12-16 20:00:16.324090", "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.024885", "end": "2025-12-16 20:00:15.373679", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.348794", "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.004744", "end": "2025-12-16 20:00:15.905739", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.900995", "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.004147", "end": "2025-12-16 20:00:15.930328", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.926181", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005434", "end": "2025-12-16 20:00:15.956137", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.950703", "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.004970", "end": "2025-12-16 20:00:15.973542", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.968572", "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.006145", "end": "2025-12-16 20:00:15.984174", "msg": "", "rc": 0, "start": "2025-12-16 20:00:15.978029", "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.003751", "end": "2025-12-16 19:59:50.781780", "msg": "", "rc": 0, "start": "2025-12-16 19:59:50.778029", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.004552", "end": "2025-12-16 19:59:44.585280", "msg": "", "rc": 0, "start": "2025-12-16 19:59:44.580728", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010949", "end": "2025-12-16 20:00:16.647395", "msg": "", "rc": 0, "start": "2025-12-16 20:00:16.636446", "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.011815", "end": "2025-12-16 20:00:16.659296", "msg": "", "rc": 0, "start": "2025-12-16 20:00:16.647481", "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.005844", "end": "2025-12-16 20:00:16.961162", "msg": "", "rc": 0, "start": "2025-12-16 20:00:16.955318", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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-16 19:59:47.763294", "msg": "", "rc": 0, "start": "2025-12-16 19:59:47.759182", "stderr": "", "stderr_lines": [], "stdout": "27.4%", "stdout_lines": ["27.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.005168", "end": "2025-12-16 17:00:17.119384", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:00:17.114216", "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.008487", "end": "2025-12-16 19:59:54.104957", "msg": "", "rc": 0, "start": "2025-12-16 19:59:54.096470", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.005561", "end": "2025-12-16 20:00:17.409200", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.403639", "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.026080", "end": "2025-12-16 20:00:17.302291", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.276211", "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.008550", "end": "2025-12-16 20:00:18.423109", "msg": "", "rc": 0, "start": "2025-12-16 20:00:18.414559", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.005404", "end": "2025-12-16 20:00:17.839771", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.834367", "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.004995", "end": "2025-12-16 20:00:17.856005", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.851010", "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.002849", "end": "2025-12-16 20:00:17.873979", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.871130", "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.005610", "end": "2025-12-16 20:00:17.883903", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.878293", "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.006444", "end": "2025-12-16 20:00:17.891057", "msg": "", "rc": 0, "start": "2025-12-16 20:00:17.884613", "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.003029", "end": "2025-12-16 19:59:52.681786", "msg": "", "rc": 0, "start": "2025-12-16 19:59:52.678757", "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.004976", "end": "2025-12-16 19:59:46.479678", "msg": "", "rc": 0, "start": "2025-12-16 19:59:46.474702", "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.011674", "end": "2025-12-16 20:00:18.532763", "msg": "", "rc": 0, "start": "2025-12-16 20:00:18.521089", "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.013691", "end": "2025-12-16 20:00:18.557341", "msg": "", "rc": 0, "start": "2025-12-16 20:00:18.543650", "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.003098", "end": "2025-12-16 20:00:18.813144", "msg": "", "rc": 0, "start": "2025-12-16 20:00:18.810046", "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.004002", "end": "2025-12-16 17:00:19.014709", "msg": "", "rc": 0, "start": "2025-12-16 17:00:19.010707", "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.003186", "end": "2025-12-16 19:59:49.679423", "msg": "", "rc": 0, "start": "2025-12-16 19:59:49.676237", "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.002436", "end": "2025-12-16 19:59:55.979499", "msg": "", "rc": 0, "start": "2025-12-16 19:59:55.977063", "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.002928", "end": "2025-12-16 20:00:19.234037", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.231109", "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.004632", "end": "2025-12-16 20:00:20.350509", "msg": "", "rc": 0, "start": "2025-12-16 20:00:20.345877", "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.028619", "end": "2025-12-16 20:00:19.232915", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.204296", "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.004422", "end": "2025-12-16 20:00:19.769107", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.764685", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.003985", "end": "2025-12-16 20:00:19.766739", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.762754", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
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.004769", "end": "2025-12-16 20:00:19.798799", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.794030", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.005039", "end": "2025-12-16 20:00:19.798246", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.793207", "stderr": "", "stderr_lines": [], "stdout": "0.71", "stdout_lines": ["0.71"]}
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.005590", "end": "2025-12-16 20:00:19.833123", "msg": "", "rc": 0, "start": "2025-12-16 20:00:19.827533", "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.004899", "end": "2025-12-16 19:59:54.636082", "msg": "", "rc": 0, "start": "2025-12-16 19:59:54.631183", "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.005366", "end": "2025-12-16 19:59:48.427694", "msg": "", "rc": 0, "start": "2025-12-16 19:59:48.422328", "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.010101", "end": "2025-12-16 20:00:20.585444", "msg": "", "rc": 0, "start": "2025-12-16 20:00:20.575343", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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.011253", "end": "2025-12-16 20:00:20.599302", "msg": "", "rc": 0, "start": "2025-12-16 20:00:20.588049", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005729", "end": "2025-12-16 20:00:20.798055", "msg": "", "rc": 0, "start": "2025-12-16 20:00:20.792326", "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.005235", "end": "2025-12-16 19:59:51.626719", "msg": "", "rc": 0, "start": "2025-12-16 19:59:51.621484", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.006095", "end": "2025-12-16 17:00:21.069925", "msg": "", "rc": 0, "start": "2025-12-16 17:00:21.063830", "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.005224", "end": "2025-12-16 19:59:58.038738", "msg": "", "rc": 0, "start": "2025-12-16 19:59:58.033514", "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.005298", "end": "2025-12-16 20:00:21.222555", "msg": "", "rc": 0, "start": "2025-12-16 20:00:21.217257", "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.007774", "end": "2025-12-16 20:00:21.342122", "msg": "", "rc": 0, "start": "2025-12-16 20:00:21.334348", "stderr": "", "stderr_lines": [], "stdout": "1.33", "stdout_lines": ["1.33"]}
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.023759", "end": "2025-12-16 20:00:21.164052", "msg": "", "rc": 0, "start": "2025-12-16 20:00:21.140293", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 2 days, 9:32, 1 user, load average: 0.01, 0.14, 0.20\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.01\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 21 days, 6:51, 1 user, load average: 0.12, 0.08, 0.12\nDisk Usage: 23%\nMemory Usage: 81.0%\nCPU Load: 0.17\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 21 days, 7:11, 1 user, load average: 0.46, 0.59, 0.71\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.71\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 21 days, 8:24, 1 user, load average: 0.42, 0.49, 0.54\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.63\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:11 up 21 days, 9:10, 1 user, load average: 0.02, 0.02, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:13 up 14 days, 9:26, 1 user, load average: 0.21, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.27\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:12 up 193 days, 11:33, 1 user, load average: 0.25, 0.19, 0.18\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.31\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:12 up 193 days, 11:33, 1 user, load average: 0.25, 0.28, 0.20\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.21\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:46 up 10 days, 7:49, 0 user, load average: 0.03, 0.08, 0.09\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:40 up 17 days, 4:01, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:13 up 2 days, 9:31, 1 user, load average: 0.07, 0.04, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:43 up 19 days, 22:54, 0 user, load average: 0.42, 0.62, 0.64\nDisk Usage: 28%\nMemory Usage: 27.4%\nCPU Load: 0.51\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 19:59:50 up 16 days, 9:15, 0 user, load average: 0.03, 0.12, 0.17\nDisk Usage: 75%\nMemory Usage: 60.5%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:00PM up 21 days, 6:50, 1 user, load averages: 0.19, 0.20, 0.18\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:14 up 21:39, 1 user, load average: 1.36, 1.20, 1.16\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:00:13 up 2 days, 9:31, 1 user, load average: 0.00, 0.04, 0.00\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.00\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-17T01:00:22.221990+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `f43a1503285a4b6cb796cd95d1778127` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:05:00.001569+00:00 |
| **Fin** | 2025-12-17T01:05:22.239533+00:00 |
| **Durée** | 22.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: [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: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [hp2.i7.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.003968", "end": "2025-12-16 20:05:11.406218", "msg": "", "rc": 0, "start": "2025-12-16 20:05:11.402250", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 21 days, 9:15, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 20:05:11 up 21 days, 9:15, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002863", "end": "2025-12-16 20:05:11.431461", "msg": "", "rc": 0, "start": "2025-12-16 20:05:11.428598", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 2 days, 9:37, 1 user, load average: 0.25, 0.20, 0.20", "stdout_lines": [" 20:05:11 up 2 days, 9:37, 1 user, load average: 0.25, 0.20, 0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003982", "end": "2025-12-16 20:05:11.426118", "msg": "", "rc": 0, "start": "2025-12-16 20:05:11.422136", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 21 days, 8:29, 1 user, load average: 0.58, 0.64, 0.60", "stdout_lines": [" 20:05:11 up 21 days, 8:29, 1 user, load average: 0.58, 0.64, 0.60"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008488", "end": "2025-12-16 20:05:12.086130", "msg": "", "rc": 0, "start": "2025-12-16 20:05:12.077642", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 193 days, 11:38, 1 user, load average: 0.47, 0.30, 0.21", "stdout_lines": [" 20:05:12 up 193 days, 11:38, 1 user, load average: 0.47, 0.30, 0.21"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009303", "end": "2025-12-16 20:05:12.121287", "msg": "", "rc": 0, "start": "2025-12-16 20:05:12.111984", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 193 days, 11:38, 1 user, load average: 0.32, 0.23, 0.19", "stdout_lines": [" 20:05:12 up 193 days, 11:38, 1 user, load average: 0.32, 0.23, 0.19"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004064", "end": "2025-12-16 20:05:12.393371", "msg": "", "rc": 0, "start": "2025-12-16 20:05:11.389307", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 21 days, 6:56, 1 user, load average: 0.11, 0.08, 0.09", "stdout_lines": [" 20:05:11 up 21 days, 6:56, 1 user, load average: 0.11, 0.08, 0.09"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003767", "end": "2025-12-16 20:05:12.411509", "msg": "", "rc": 0, "start": "2025-12-16 20:05:11.407742", "stderr": "", "stderr_lines": [], "stdout": " 20:05:11 up 21 days, 7:16, 1 user, load average: 0.72, 0.74, 0.75", "stdout_lines": [" 20:05:11 up 21 days, 7:16, 1 user, load average: 0.72, 0.74, 0.75"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002785", "end": "2025-12-16 20:04:46.888939", "msg": "", "rc": 0, "start": "2025-12-16 20:04:46.886154", "stderr": "", "stderr_lines": [], "stdout": " 20:04:46 up 10 days, 7:54, 0 user, load average: 0.29, 0.15, 0.11", "stdout_lines": [" 20:04:46 up 10 days, 7:54, 0 user, load average: 0.29, 0.15, 0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003714", "end": "2025-12-16 20:04:40.718181", "msg": "", "rc": 0, "start": "2025-12-16 20:04:40.714467", "stderr": "", "stderr_lines": [], "stdout": " 20:04:40 up 17 days, 4:06, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 20:04:40 up 17 days, 4:06, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004662", "end": "2025-12-16 20:05:12.841794", "msg": "", "rc": 0, "start": "2025-12-16 20:05:12.837132", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 2 days, 9:36, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 20:05:12 up 2 days, 9:36, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019532", "end": "2025-12-16 20:05:12.784918", "msg": "", "rc": 0, "start": "2025-12-16 20:05:12.765386", "stderr": "", "stderr_lines": [], "stdout": " 20:05:12 up 14 days, 9:31, 1 user, load average: 0.15, 0.12, 0.09", "stdout_lines": [" 20:05:12 up 14 days, 9:31, 1 user, load average: 0.15, 0.12, 0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003241", "end": "2025-12-16 20:04:43.597333", "msg": "", "rc": 0, "start": "2025-12-16 20:04:43.594092", "stderr": "", "stderr_lines": [], "stdout": " 20:04:43 up 19 days, 22:59, 0 user, load average: 0.46, 0.58, 0.61", "stdout_lines": [" 20:04:43 up 19 days, 22:59, 0 user, load average: 0.46, 0.58, 0.61"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004999", "end": "2025-12-16 20:04:49.969556", "msg": "", "rc": 0, "start": "2025-12-16 20:04:49.964557", "stderr": "", "stderr_lines": [], "stdout": " 20:04:49 up 16 days, 9:20, 0 user, load average: 0.23, 0.29, 0.24", "stdout_lines": [" 20:04:49 up 16 days, 9:20, 0 user, load average: 0.23, 0.29, 0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004341", "end": "2025-12-16 17:05:13.116699", "msg": "", "rc": 0, "start": "2025-12-16 17:05:13.112358", "stderr": "", "stderr_lines": [], "stdout": " 5:05PM up 21 days, 6:55, 1 user, load averages: 0.09, 0.20, 0.19", "stdout_lines": [" 5:05PM up 21 days, 6:55, 1 user, load averages: 0.09, 0.20, 0.19"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008013", "end": "2025-12-16 20:05:13.374745", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.366732", "stderr": "", "stderr_lines": [], "stdout": " 20:05:13 up 21:44, 1 user, load average: 1.39, 1.18, 1.15", "stdout_lines": [" 20:05:13 up 21:44, 1 user, load average: 1.39, 1.18, 1.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003682", "end": "2025-12-16 20:05:13.280206", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.276524", "stderr": "", "stderr_lines": [], "stdout": " 20:05:13 up 2 days, 9:36, 1 user, load average: 0.25, 0.17, 0.06", "stdout_lines": [" 20:05:13 up 2 days, 9:36, 1 user, load average: 0.25, 0.17, 0.06"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004346", "end": "2025-12-16 20:05:13.686677", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.682331", "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-16 20:05:13.709191", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.705062", "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.004589", "end": "2025-12-16 20:05:13.716067", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.711478", "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.005078", "end": "2025-12-16 20:05:13.743776", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.738698", "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.005174", "end": "2025-12-16 20:05:13.758534", "msg": "", "rc": 0, "start": "2025-12-16 20:05:13.753360", "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.005434", "end": "2025-12-16 20:04:48.515153", "msg": "", "rc": 0, "start": "2025-12-16 20:04:48.509719", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005847", "end": "2025-12-16 20:04:42.323726", "msg": "", "rc": 0, "start": "2025-12-16 20:04:42.317879", "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.010541", "end": "2025-12-16 20:05:14.470258", "msg": "", "rc": 0, "start": "2025-12-16 20:05:14.459717", "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.011602", "end": "2025-12-16 20:05:14.497104", "msg": "", "rc": 0, "start": "2025-12-16 20:05:14.485502", "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.005743", "end": "2025-12-16 20:05:14.675243", "msg": "", "rc": 0, "start": "2025-12-16 20:05:14.669500", "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.006077", "end": "2025-12-16 20:04:45.496190", "msg": "", "rc": 0, "start": "2025-12-16 20:04:45.490113", "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.005512", "end": "2025-12-16 17:05:14.970563", "msg": "", "rc": 0, "start": "2025-12-16 17:05:14.965051", "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.004832", "end": "2025-12-16 20:04:51.901259", "msg": "", "rc": 0, "start": "2025-12-16 20:04:51.896427", "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.005426", "end": "2025-12-16 20:05:15.106650", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.101224", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018595", "end": "2025-12-16 20:05:15.378899", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.360304", "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.025171", "end": "2025-12-16 20:05:15.072509", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.047338", "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.004362", "end": "2025-12-16 20:05:15.615529", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.611167", "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.004118", "end": "2025-12-16 20:05:15.623736", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.619618", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004536", "end": "2025-12-16 20:05:15.655292", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.650756", "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.004555", "end": "2025-12-16 20:05:15.662750", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.658195", "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.005912", "end": "2025-12-16 20:05:15.677674", "msg": "", "rc": 0, "start": "2025-12-16 20:05:15.671762", "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.003680", "end": "2025-12-16 20:04:50.448646", "msg": "", "rc": 0, "start": "2025-12-16 20:04:50.444966", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.004602", "end": "2025-12-16 20:04:44.229131", "msg": "", "rc": 0, "start": "2025-12-16 20:04:44.224529", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.011213", "end": "2025-12-16 20:05:16.333385", "msg": "", "rc": 0, "start": "2025-12-16 20:05:16.322172", "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.011840", "end": "2025-12-16 20:05:16.341156", "msg": "", "rc": 0, "start": "2025-12-16 20:05:16.329316", "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.005772", "end": "2025-12-16 20:05:16.603698", "msg": "", "rc": 0, "start": "2025-12-16 20:05:16.597926", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004578", "end": "2025-12-16 20:04:47.415147", "msg": "", "rc": 0, "start": "2025-12-16 20:04:47.410569", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005292", "end": "2025-12-16 17:05:16.809674", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:05:16.804382", "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.003794", "end": "2025-12-16 20:04:53.765645", "msg": "", "rc": 0, "start": "2025-12-16 20:04:53.761851", "stderr": "", "stderr_lines": [], "stdout": "60.1%", "stdout_lines": ["60.1%"]}
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.008394", "end": "2025-12-16 20:05:17.347370", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.338976", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.005342", "end": "2025-12-16 20:05:17.055959", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.050617", "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.025420", "end": "2025-12-16 20:05:17.003061", "msg": "", "rc": 0, "start": "2025-12-16 20:05:16.977641", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.005478", "end": "2025-12-16 20:05:17.530747", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.525269", "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.004763", "end": "2025-12-16 20:05:17.550357", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.545594", "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.005361", "end": "2025-12-16 20:05:17.558097", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.552736", "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.003448", "end": "2025-12-16 20:05:17.576050", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.572602", "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.006364", "end": "2025-12-16 20:05:17.611944", "msg": "", "rc": 0, "start": "2025-12-16 20:05:17.605580", "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.002673", "end": "2025-12-16 20:04:52.339483", "msg": "", "rc": 0, "start": "2025-12-16 20:04:52.336810", "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.003002", "end": "2025-12-16 20:04:46.168889", "msg": "", "rc": 0, "start": "2025-12-16 20:04:46.165887", "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.011650", "end": "2025-12-16 20:05:18.228888", "msg": "", "rc": 0, "start": "2025-12-16 20:05:18.217238", "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.012986", "end": "2025-12-16 20:05:18.259459", "msg": "", "rc": 0, "start": "2025-12-16 20:05:18.246473", "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.003312", "end": "2025-12-16 20:05:18.491646", "msg": "", "rc": 0, "start": "2025-12-16 20:05:18.488334", "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.003130", "end": "2025-12-16 20:04:49.335642", "msg": "", "rc": 0, "start": "2025-12-16 20:04:49.332512", "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.003995", "end": "2025-12-16 17:05:18.731740", "msg": "", "rc": 0, "start": "2025-12-16 17:05:18.727745", "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.002647", "end": "2025-12-16 20:04:55.663958", "msg": "", "rc": 0, "start": "2025-12-16 20:04:55.661311", "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.003143", "end": "2025-12-16 20:05:18.908481", "msg": "", "rc": 0, "start": "2025-12-16 20:05:18.905338", "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.004658", "end": "2025-12-16 20:05:19.335853", "msg": "", "rc": 0, "start": "2025-12-16 20:05:19.331195", "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.028762", "end": "2025-12-16 20:05:18.928268", "msg": "", "rc": 0, "start": "2025-12-16 20:05:18.899506", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.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.004350", "end": "2025-12-16 20:05:19.448994", "msg": "", "rc": 0, "start": "2025-12-16 20:05:19.444644", "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.004545", "end": "2025-12-16 20:05:19.469480", "msg": "", "rc": 0, "start": "2025-12-16 20:05:19.464935", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
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.004152", "end": "2025-12-16 20:05:19.470941", "msg": "", "rc": 0, "start": "2025-12-16 20:05:19.466789", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
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.005048", "end": "2025-12-16 20:05:19.497014", "msg": "", "rc": 0, "start": "2025-12-16 20:05:19.491966", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
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.005392", "end": "2025-12-16 20:05:19.507477", "msg": "", "rc": 0, "start": "2025-12-16 20:05:19.502085", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.004276", "end": "2025-12-16 20:04:54.270425", "msg": "", "rc": 0, "start": "2025-12-16 20:04:54.266149", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005567", "end": "2025-12-16 20:04:48.088793", "msg": "", "rc": 0, "start": "2025-12-16 20:04:48.083226", "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.010060", "end": "2025-12-16 20:05:20.234477", "msg": "", "rc": 0, "start": "2025-12-16 20:05:20.224417", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.011156", "end": "2025-12-16 20:05:20.283688", "msg": "", "rc": 0, "start": "2025-12-16 20:05:20.272532", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005626", "end": "2025-12-16 20:05:20.426749", "msg": "", "rc": 0, "start": "2025-12-16 20:05:20.421123", "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.005217", "end": "2025-12-16 20:04:51.276097", "msg": "", "rc": 0, "start": "2025-12-16 20:04:51.270880", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.004745", "end": "2025-12-16 20:04:57.664299", "msg": "", "rc": 0, "start": "2025-12-16 20:04:57.659554", "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.006009", "end": "2025-12-16 17:05:20.754370", "msg": "", "rc": 0, "start": "2025-12-16 17:05:20.748361", "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.005407", "end": "2025-12-16 20:05:20.862816", "msg": "", "rc": 0, "start": "2025-12-16 20:05:20.857409", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.008448", "end": "2025-12-16 20:05:21.349370", "msg": "", "rc": 0, "start": "2025-12-16 20:05:21.340922", "stderr": "", "stderr_lines": [], "stdout": "1.44", "stdout_lines": ["1.44"]}
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.024207", "end": "2025-12-16 20:05:20.847510", "msg": "", "rc": 0, "start": "2025-12-16 20:05:20.823303", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 21 days, 6:56, 1 user, load average: 0.11, 0.08, 0.09\nDisk Usage: 23%\nMemory Usage: 80.9%\nCPU Load: 0.17\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 2 days, 9:37, 1 user, load average: 0.25, 0.20, 0.20\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.37\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 21 days, 7:16, 1 user, load average: 0.72, 0.74, 0.75\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.61\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 21 days, 8:29, 1 user, load average: 0.58, 0.64, 0.60\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.62\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:11 up 21 days, 9:15, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 14 days, 9:31, 1 user, load average: 0.15, 0.12, 0.09\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.14\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 193 days, 11:38, 1 user, load average: 0.32, 0.23, 0.19\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.27\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 193 days, 11:38, 1 user, load average: 0.47, 0.30, 0.21\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.47\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:46 up 10 days, 7:54, 0 user, load average: 0.29, 0.15, 0.11\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:40 up 17 days, 4:06, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:12 up 2 days, 9:36, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\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:43 up 19 days, 22:59, 0 user, load average: 0.46, 0.58, 0.61\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.47\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:04:49 up 16 days, 9:20, 0 user, load average: 0.23, 0.29, 0.24\nDisk Usage: 75%\nMemory Usage: 60.1%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:05PM up 21 days, 6:55, 1 user, load averages: 0.09, 0.20, 0.19\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 2 days, 9:36, 1 user, load average: 0.25, 0.17, 0.06\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:05:13 up 21:44, 1 user, load average: 1.39, 1.18, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.44\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-17T01:05:22.372970+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `64c12b1e3b874028981491ffd7709b43` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:10:00.000816+00:00 |
| **Fin** | 2025-12-17T01:10:22.704692+00:00 |
| **Durée** | 22.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: [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.003150", "end": "2025-12-16 20:10:11.787211", "msg": "", "rc": 0, "start": "2025-12-16 20:10:11.784061", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 21 days, 7:01, 1 user, load average: 0.21, 0.14, 0.10", "stdout_lines": [" 20:10:11 up 21 days, 7:01, 1 user, load average: 0.21, 0.14, 0.10"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003192", "end": "2025-12-16 20:10:11.793316", "msg": "", "rc": 0, "start": "2025-12-16 20:10:11.790124", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 21 days, 7:21, 1 user, load average: 1.22, 0.89, 0.79", "stdout_lines": [" 20:10:11 up 21 days, 7:21, 1 user, load average: 1.22, 0.89, 0.79"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003727", "end": "2025-12-16 20:10:11.805513", "msg": "", "rc": 0, "start": "2025-12-16 20:10:11.801786", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 21 days, 9:20, 1 user, load average: 0.03, 0.03, 0.00", "stdout_lines": [" 20:10:11 up 21 days, 9:20, 1 user, load average: 0.03, 0.03, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003728", "end": "2025-12-16 20:10:11.816969", "msg": "", "rc": 0, "start": "2025-12-16 20:10:11.813241", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 21 days, 8:34, 1 user, load average: 0.69, 0.71, 0.64", "stdout_lines": [" 20:10:11 up 21 days, 8:34, 1 user, load average: 0.69, 0.71, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003034", "end": "2025-12-16 20:10:11.827538", "msg": "", "rc": 0, "start": "2025-12-16 20:10:11.824504", "stderr": "", "stderr_lines": [], "stdout": " 20:10:11 up 2 days, 9:42, 1 user, load average: 0.18, 0.18, 0.18", "stdout_lines": [" 20:10:11 up 2 days, 9:42, 1 user, load average: 0.18, 0.18, 0.18"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003073", "end": "2025-12-16 20:09:46.600866", "msg": "", "rc": 0, "start": "2025-12-16 20:09:46.597793", "stderr": "", "stderr_lines": [], "stdout": " 20:09:46 up 10 days, 7:59, 0 user, load average: 0.21, 0.23, 0.15", "stdout_lines": [" 20:09:46 up 10 days, 7:59, 0 user, load average: 0.21, 0.23, 0.15"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003539", "end": "2025-12-16 20:09:40.394422", "msg": "", "rc": 0, "start": "2025-12-16 20:09:40.390883", "stderr": "", "stderr_lines": [], "stdout": " 20:09:40 up 17 days, 4:11, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 20:09:40 up 17 days, 4:11, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008415", "end": "2025-12-16 20:10:12.483536", "msg": "", "rc": 0, "start": "2025-12-16 20:10:12.475121", "stderr": "", "stderr_lines": [], "stdout": " 20:10:12 up 193 days, 11:43, 1 user, load average: 0.36, 0.23, 0.19", "stdout_lines": [" 20:10:12 up 193 days, 11:43, 1 user, load average: 0.36, 0.23, 0.19"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009246", "end": "2025-12-16 20:10:12.525382", "msg": "", "rc": 0, "start": "2025-12-16 20:10:12.516136", "stderr": "", "stderr_lines": [], "stdout": " 20:10:12 up 193 days, 11:43, 1 user, load average: 0.11, 0.22, 0.20", "stdout_lines": [" 20:10:12 up 193 days, 11:43, 1 user, load average: 0.11, 0.22, 0.20"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004692", "end": "2025-12-16 20:10:12.761722", "msg": "", "rc": 0, "start": "2025-12-16 20:10:12.757030", "stderr": "", "stderr_lines": [], "stdout": " 20:10:12 up 2 days, 9:41, 1 user, load average: 0.15, 0.08, 0.02", "stdout_lines": [" 20:10:12 up 2 days, 9:41, 1 user, load average: 0.15, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003273", "end": "2025-12-16 20:09:43.582061", "msg": "", "rc": 0, "start": "2025-12-16 20:09:43.578788", "stderr": "", "stderr_lines": [], "stdout": " 20:09:43 up 19 days, 23:04, 0 user, load average: 0.38, 0.46, 0.55", "stdout_lines": [" 20:09:43 up 19 days, 23:04, 0 user, load average: 0.38, 0.46, 0.55"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003074", "end": "2025-12-16 20:09:49.892784", "msg": "", "rc": 0, "start": "2025-12-16 20:09:49.889710", "stderr": "", "stderr_lines": [], "stdout": " 20:09:49 up 16 days, 9:25, 0 user, load average: 0.22, 0.32, 0.27", "stdout_lines": [" 20:09:49 up 16 days, 9:25, 0 user, load average: 0.22, 0.32, 0.27"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004174", "end": "2025-12-16 17:10:12.995244", "msg": "", "rc": 0, "start": "2025-12-16 17:10:12.991070", "stderr": "", "stderr_lines": [], "stdout": " 5:10PM up 21 days, 7 hrs, 1 user, load averages: 0.20, 0.24, 0.20", "stdout_lines": [" 5:10PM up 21 days, 7 hrs, 1 user, load averages: 0.20, 0.24, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003745", "end": "2025-12-16 20:10:13.192500", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.188755", "stderr": "", "stderr_lines": [], "stdout": " 20:10:13 up 2 days, 9:41, 1 user, load average: 0.04, 0.08, 0.04", "stdout_lines": [" 20:10:13 up 2 days, 9:41, 1 user, load average: 0.04, 0.08, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009306", "end": "2025-12-16 20:10:13.822065", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.812759", "stderr": "", "stderr_lines": [], "stdout": " 20:10:13 up 21:49, 1 user, load average: 1.11, 1.13, 1.14", "stdout_lines": [" 20:10:13 up 21:49, 1 user, load average: 1.11, 1.13, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019462", "end": "2025-12-16 20:10:13.173869", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.154407", "stderr": "", "stderr_lines": [], "stdout": " 20:10:13 up 14 days, 9:36, 1 user, load average: 0.27, 0.15, 0.10", "stdout_lines": [" 20:10:13 up 14 days, 9:36, 1 user, load average: 0.27, 0.15, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004658", "end": "2025-12-16 20:10:13.723119", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.718461", "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.004178", "end": "2025-12-16 20:10:13.735297", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.731119", "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.004810", "end": "2025-12-16 20:10:13.732451", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.727641", "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.004297", "end": "2025-12-16 20:10:13.758893", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.754596", "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.005360", "end": "2025-12-16 20:10:13.768963", "msg": "", "rc": 0, "start": "2025-12-16 20:10:13.763603", "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.005579", "end": "2025-12-16 20:09:48.552596", "msg": "", "rc": 0, "start": "2025-12-16 20:09:48.547017", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005641", "end": "2025-12-16 20:09:42.340892", "msg": "", "rc": 0, "start": "2025-12-16 20:09:42.335251", "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.010694", "end": "2025-12-16 20:10:14.503650", "msg": "", "rc": 0, "start": "2025-12-16 20:10:14.492956", "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-16 20:10:14.511855", "msg": "", "rc": 0, "start": "2025-12-16 20:10:14.500211", "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.005689", "end": "2025-12-16 20:10:14.700348", "msg": "", "rc": 0, "start": "2025-12-16 20:10:14.694659", "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.005193", "end": "2025-12-16 20:09:45.503355", "msg": "", "rc": 0, "start": "2025-12-16 20:09:45.498162", "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.005512", "end": "2025-12-16 17:10:15.006630", "msg": "", "rc": 0, "start": "2025-12-16 17:10:15.001118", "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.005209", "end": "2025-12-16 20:09:51.964404", "msg": "", "rc": 0, "start": "2025-12-16 20:09:51.959195", "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.005436", "end": "2025-12-16 20:10:15.143178", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.137742", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019839", "end": "2025-12-16 20:10:15.840135", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.820296", "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.025167", "end": "2025-12-16 20:10:15.139014", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.113847", "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.004467", "end": "2025-12-16 20:10:15.665563", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.661096", "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.004161", "end": "2025-12-16 20:10:15.690051", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.685890", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004809", "end": "2025-12-16 20:10:15.717302", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.712493", "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.004500", "end": "2025-12-16 20:10:15.724095", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.719595", "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.005772", "end": "2025-12-16 20:10:15.736497", "msg": "", "rc": 0, "start": "2025-12-16 20:10:15.730725", "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.003613", "end": "2025-12-16 20:09:50.503309", "msg": "", "rc": 0, "start": "2025-12-16 20:09:50.499696", "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.004817", "end": "2025-12-16 20:09:44.305741", "msg": "", "rc": 0, "start": "2025-12-16 20:09:44.300924", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.011393", "end": "2025-12-16 20:10:16.387907", "msg": "", "rc": 0, "start": "2025-12-16 20:10:16.376514", "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.011702", "end": "2025-12-16 20:10:16.441782", "msg": "", "rc": 0, "start": "2025-12-16 20:10:16.430080", "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.006501", "end": "2025-12-16 20:10:16.660873", "msg": "", "rc": 0, "start": "2025-12-16 20:10:16.654372", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004043", "end": "2025-12-16 20:09:47.479726", "msg": "", "rc": 0, "start": "2025-12-16 20:09:47.475683", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.003849", "end": "2025-12-16 20:09:53.811559", "msg": "", "rc": 0, "start": "2025-12-16 20:09:53.807710", "stderr": "", "stderr_lines": [], "stdout": "59.3%", "stdout_lines": ["59.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.005299", "end": "2025-12-16 17:10:16.907129", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:10:16.901830", "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.005423", "end": "2025-12-16 20:10:17.114691", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.109268", "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.010049", "end": "2025-12-16 20:10:17.837567", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.827518", "stderr": "", "stderr_lines": [], "stdout": "20.6%", "stdout_lines": ["20.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.025792", "end": "2025-12-16 20:10:17.073210", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.047418", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.005299", "end": "2025-12-16 20:10:17.599572", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.594273", "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.005524", "end": "2025-12-16 20:10:17.601457", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.595933", "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.004896", "end": "2025-12-16 20:10:17.604244", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.599348", "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.002740", "end": "2025-12-16 20:10:17.636770", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.634030", "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.006396", "end": "2025-12-16 20:10:17.645686", "msg": "", "rc": 0, "start": "2025-12-16 20:10:17.639290", "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.002505", "end": "2025-12-16 20:09:52.408505", "msg": "", "rc": 0, "start": "2025-12-16 20:09:52.406000", "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.002849", "end": "2025-12-16 20:09:46.217999", "msg": "", "rc": 0, "start": "2025-12-16 20:09:46.215150", "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.011856", "end": "2025-12-16 20:10:18.290398", "msg": "", "rc": 0, "start": "2025-12-16 20:10:18.278542", "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.013602", "end": "2025-12-16 20:10:18.343839", "msg": "", "rc": 0, "start": "2025-12-16 20:10:18.330237", "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.003439", "end": "2025-12-16 20:10:18.545733", "msg": "", "rc": 0, "start": "2025-12-16 20:10:18.542294", "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.002969", "end": "2025-12-16 20:09:49.391246", "msg": "", "rc": 0, "start": "2025-12-16 20:09:49.388277", "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.002582", "end": "2025-12-16 20:09:55.691457", "msg": "", "rc": 0, "start": "2025-12-16 20:09:55.688875", "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.003948", "end": "2025-12-16 17:10:18.805660", "msg": "", "rc": 0, "start": "2025-12-16 17:10:18.801712", "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.002878", "end": "2025-12-16 20:10:18.961829", "msg": "", "rc": 0, "start": "2025-12-16 20:10:18.958951", "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.004283", "end": "2025-12-16 20:10:19.860758", "msg": "", "rc": 0, "start": "2025-12-16 20:10:19.856475", "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-16 20:10:18.996093", "msg": "", "rc": 0, "start": "2025-12-16 20:10:18.968020", "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.004256", "end": "2025-12-16 20:10:19.529646", "msg": "", "rc": 0, "start": "2025-12-16 20:10:19.525390", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.004024", "end": "2025-12-16 20:10:19.535804", "msg": "", "rc": 0, "start": "2025-12-16 20:10:19.531780", "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.004669", "end": "2025-12-16 20:10:19.546006", "msg": "", "rc": 0, "start": "2025-12-16 20:10:19.541337", "stderr": "", "stderr_lines": [], "stdout": "1.19", "stdout_lines": ["1.19"]}
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.005354", "end": "2025-12-16 20:10:19.577551", "msg": "", "rc": 0, "start": "2025-12-16 20:10:19.572197", "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.005281", "end": "2025-12-16 20:10:19.590073", "msg": "", "rc": 0, "start": "2025-12-16 20:10:19.584792", "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.004312", "end": "2025-12-16 20:09:54.337145", "msg": "", "rc": 0, "start": "2025-12-16 20:09:54.332833", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005152", "end": "2025-12-16 20:09:48.139286", "msg": "", "rc": 0, "start": "2025-12-16 20:09:48.134134", "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.010047", "end": "2025-12-16 20:10:20.312219", "msg": "", "rc": 0, "start": "2025-12-16 20:10:20.302172", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
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.011087", "end": "2025-12-16 20:10:20.352968", "msg": "", "rc": 0, "start": "2025-12-16 20:10:20.341881", "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.005621", "end": "2025-12-16 20:10:20.516859", "msg": "", "rc": 0, "start": "2025-12-16 20:10:20.511238", "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.005161", "end": "2025-12-16 20:09:51.304856", "msg": "", "rc": 0, "start": "2025-12-16 20:09:51.299695", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
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.004372", "end": "2025-12-16 20:09:57.729841", "msg": "", "rc": 0, "start": "2025-12-16 20:09:57.725469", "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.005932", "end": "2025-12-16 17:10:20.815057", "msg": "", "rc": 0, "start": "2025-12-16 17:10:20.809125", "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.005252", "end": "2025-12-16 20:10:20.931849", "msg": "", "rc": 0, "start": "2025-12-16 20:10:20.926597", "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.011695", "end": "2025-12-16 20:10:21.808027", "msg": "", "rc": 0, "start": "2025-12-16 20:10:21.796332", "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.024319", "end": "2025-12-16 20:10:20.918586", "msg": "", "rc": 0, "start": "2025-12-16 20:10:20.894267", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 2 days, 9:42, 1 user, load average: 0.18, 0.18, 0.18\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.24\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 21 days, 7:01, 1 user, load average: 0.21, 0.14, 0.10\nDisk Usage: 23%\nMemory Usage: 81.1%\nCPU Load: 0.18\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 21 days, 7:21, 1 user, load average: 1.22, 0.89, 0.79\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.19\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 21 days, 8:34, 1 user, load average: 0.69, 0.71, 0.64\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.71\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:11 up 21 days, 9:20, 1 user, load average: 0.03, 0.03, 0.00\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:10:13 up 14 days, 9:36, 1 user, load average: 0.27, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 20.5%\nCPU Load: 0.25\nCPU Temp: 36.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:12 up 193 days, 11:43, 1 user, load average: 0.11, 0.22, 0.20\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.24\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:12 up 193 days, 11:43, 1 user, load average: 0.36, 0.23, 0.19\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.46\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:46 up 10 days, 7:59, 0 user, load average: 0.21, 0.23, 0.15\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:40 up 17 days, 4:11, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:12 up 2 days, 9:41, 1 user, load average: 0.15, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.6%\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:43 up 19 days, 23:04, 0 user, load average: 0.38, 0.46, 0.55\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.40\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:09:49 up 16 days, 9:25, 0 user, load average: 0.22, 0.32, 0.27\nDisk Usage: 75%\nMemory Usage: 59.3%\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 21 days, 7 hrs, 1 user, load averages: 0.20, 0.24, 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:10:13 up 2 days, 9:41, 1 user, load average: 0.04, 0.08, 0.04\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:10:13 up 21:49, 1 user, load average: 1.11, 1.13, 1.14\nDisk Usage: 1%\nMemory Usage: 20.6%\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-17T01:10:22.747029+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `73e36ad865004d94aea1bb0846789868` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:15:00.001246+00:00 |
| **Fin** | 2025-12-17T01:15:22.127118+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: [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: [hp2.i7.home]
ok: [hp.nas.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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003506", "end": "2025-12-16 20:15:11.517193", "msg": "", "rc": 0, "start": "2025-12-16 20:15:11.513687", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 21 days, 9:25, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 20:15:11 up 21 days, 9:25, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002898", "end": "2025-12-16 20:15:11.542774", "msg": "", "rc": 0, "start": "2025-12-16 20:15:11.539876", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 2 days, 9:47, 1 user, load average: 0.14, 0.19, 0.18", "stdout_lines": [" 20:15:11 up 2 days, 9:47, 1 user, load average: 0.14, 0.19, 0.18"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003701", "end": "2025-12-16 20:15:11.538820", "msg": "", "rc": 0, "start": "2025-12-16 20:15:11.535119", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 21 days, 8:39, 1 user, load average: 0.81, 0.74, 0.66", "stdout_lines": [" 20:15:11 up 21 days, 8:39, 1 user, load average: 0.81, 0.74, 0.66"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008552", "end": "2025-12-16 20:15:12.198778", "msg": "", "rc": 0, "start": "2025-12-16 20:15:12.190226", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 193 days, 11:48, 1 user, load average: 0.18, 0.24, 0.20", "stdout_lines": [" 20:15:12 up 193 days, 11:48, 1 user, load average: 0.18, 0.24, 0.20"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009199", "end": "2025-12-16 20:15:12.244621", "msg": "", "rc": 0, "start": "2025-12-16 20:15:12.235422", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 193 days, 11:48, 1 user, load average: 0.15, 0.26, 0.23", "stdout_lines": [" 20:15:12 up 193 days, 11:48, 1 user, load average: 0.15, 0.26, 0.23"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004795", "end": "2025-12-16 20:15:12.506090", "msg": "", "rc": 0, "start": "2025-12-16 20:15:11.501295", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 21 days, 7:06, 1 user, load average: 0.12, 0.14, 0.10", "stdout_lines": [" 20:15:11 up 21 days, 7:06, 1 user, load average: 0.12, 0.14, 0.10"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004072", "end": "2025-12-16 20:15:12.520542", "msg": "", "rc": 0, "start": "2025-12-16 20:15:11.516470", "stderr": "", "stderr_lines": [], "stdout": " 20:15:11 up 21 days, 7:26, 1 user, load average: 0.64, 0.64, 0.70", "stdout_lines": [" 20:15:11 up 21 days, 7:26, 1 user, load average: 0.64, 0.64, 0.70"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003063", "end": "2025-12-16 20:14:47.003640", "msg": "", "rc": 0, "start": "2025-12-16 20:14:47.000577", "stderr": "", "stderr_lines": [], "stdout": " 20:14:47 up 10 days, 8:04, 0 user, load average: 0.12, 0.14, 0.12", "stdout_lines": [" 20:14:47 up 10 days, 8:04, 0 user, load average: 0.12, 0.14, 0.12"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003579", "end": "2025-12-16 20:14:40.842893", "msg": "", "rc": 0, "start": "2025-12-16 20:14:40.839314", "stderr": "", "stderr_lines": [], "stdout": " 20:14:40 up 17 days, 4:16, 0 user, load average: 0.02, 0.02, 0.00", "stdout_lines": [" 20:14:40 up 17 days, 4:16, 0 user, load average: 0.02, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004809", "end": "2025-12-16 20:15:12.981053", "msg": "", "rc": 0, "start": "2025-12-16 20:15:12.976244", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 2 days, 9:46, 1 user, load average: 0.08, 0.05, 0.01", "stdout_lines": [" 20:15:12 up 2 days, 9:46, 1 user, load average: 0.08, 0.05, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019924", "end": "2025-12-16 20:15:12.908075", "msg": "", "rc": 0, "start": "2025-12-16 20:15:12.888151", "stderr": "", "stderr_lines": [], "stdout": " 20:15:12 up 14 days, 9:41, 1 user, load average: 0.16, 0.15, 0.10", "stdout_lines": [" 20:15:12 up 14 days, 9:41, 1 user, load average: 0.16, 0.15, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003673", "end": "2025-12-16 20:14:43.704538", "msg": "", "rc": 0, "start": "2025-12-16 20:14:43.700865", "stderr": "", "stderr_lines": [], "stdout": " 20:14:43 up 19 days, 23:09, 0 user, load average: 0.40, 0.39, 0.49", "stdout_lines": [" 20:14:43 up 19 days, 23:09, 0 user, load average: 0.40, 0.39, 0.49"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003106", "end": "2025-12-16 20:14:50.065176", "msg": "", "rc": 0, "start": "2025-12-16 20:14:50.062070", "stderr": "", "stderr_lines": [], "stdout": " 20:14:50 up 16 days, 9:30, 0 user, load average: 0.34, 0.35, 0.29", "stdout_lines": [" 20:14:50 up 16 days, 9:30, 0 user, load average: 0.34, 0.35, 0.29"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004342", "end": "2025-12-16 17:15:13.264657", "msg": "", "rc": 0, "start": "2025-12-16 17:15:13.260315", "stderr": "", "stderr_lines": [], "stdout": " 5:15PM up 21 days, 7:05, 1 user, load averages: 0.17, 0.22, 0.19", "stdout_lines": [" 5:15PM up 21 days, 7:05, 1 user, load averages: 0.17, 0.22, 0.19"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006918", "end": "2025-12-16 20:15:14.289041", "msg": "", "rc": 0, "start": "2025-12-16 20:15:14.282123", "stderr": "", "stderr_lines": [], "stdout": " 20:15:14 up 21:54, 1 user, load average: 2.02, 1.31, 1.19", "stdout_lines": [" 20:15:14 up 21:54, 1 user, load average: 2.02, 1.31, 1.19"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003692", "end": "2025-12-16 20:15:13.417412", "msg": "", "rc": 0, "start": "2025-12-16 20:15:13.413720", "stderr": "", "stderr_lines": [], "stdout": " 20:15:13 up 2 days, 9:46, 1 user, load average: 0.36, 0.18, 0.08", "stdout_lines": [" 20:15:13 up 2 days, 9:46, 1 user, load average: 0.36, 0.18, 0.08"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004346", "end": "2025-12-16 20:15:13.831652", "msg": "", "rc": 0, "start": "2025-12-16 20:15:13.827306", "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.004660", "end": "2025-12-16 20:15:13.840406", "msg": "", "rc": 0, "start": "2025-12-16 20:15:13.835746", "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.004086", "end": "2025-12-16 20:15:13.856716", "msg": "", "rc": 0, "start": "2025-12-16 20:15:13.852630", "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.004792", "end": "2025-12-16 20:15:13.866444", "msg": "", "rc": 0, "start": "2025-12-16 20:15:13.861652", "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.005639", "end": "2025-12-16 20:15:13.889062", "msg": "", "rc": 0, "start": "2025-12-16 20:15:13.883423", "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.005605", "end": "2025-12-16 20:14:48.649162", "msg": "", "rc": 0, "start": "2025-12-16 20:14:48.643557", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005648", "end": "2025-12-16 20:14:42.432126", "msg": "", "rc": 0, "start": "2025-12-16 20:14:42.426478", "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.010465", "end": "2025-12-16 20:15:14.628860", "msg": "", "rc": 0, "start": "2025-12-16 20:15:14.618395", "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.011811", "end": "2025-12-16 20:15:14.644160", "msg": "", "rc": 0, "start": "2025-12-16 20:15:14.632349", "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.005727", "end": "2025-12-16 20:15:14.822577", "msg": "", "rc": 0, "start": "2025-12-16 20:15:14.816850", "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.005381", "end": "2025-12-16 20:14:45.643405", "msg": "", "rc": 0, "start": "2025-12-16 20:14:45.638024", "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.005615", "end": "2025-12-16 17:15:15.100764", "msg": "", "rc": 0, "start": "2025-12-16 17:15:15.095149", "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.005531", "end": "2025-12-16 20:14:52.052648", "msg": "", "rc": 0, "start": "2025-12-16 20:14:52.047117", "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.005576", "end": "2025-12-16 20:15:15.252461", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.246885", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019631", "end": "2025-12-16 20:15:16.340720", "msg": "", "rc": 0, "start": "2025-12-16 20:15:16.321089", "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.025357", "end": "2025-12-16 20:15:15.223916", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.198559", "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.004539", "end": "2025-12-16 20:15:15.755393", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.750854", "stderr": "", "stderr_lines": [], "stdout": "81.3%", "stdout_lines": ["81.3%"]}
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.004111", "end": "2025-12-16 20:15:15.772011", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.767900", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004966", "end": "2025-12-16 20:15:15.783452", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.778486", "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.005144", "end": "2025-12-16 20:15:15.804571", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.799427", "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.005364", "end": "2025-12-16 20:15:15.812412", "msg": "", "rc": 0, "start": "2025-12-16 20:15:15.807048", "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.003922", "end": "2025-12-16 20:14:50.550533", "msg": "", "rc": 0, "start": "2025-12-16 20:14:50.546611", "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.004564", "end": "2025-12-16 20:14:44.362452", "msg": "", "rc": 0, "start": "2025-12-16 20:14:44.357888", "stderr": "", "stderr_lines": [], "stdout": "68.9%", "stdout_lines": ["68.9%"]}
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.012068", "end": "2025-12-16 20:15:16.459236", "msg": "", "rc": 0, "start": "2025-12-16 20:15:16.447168", "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-16 20:15:16.506526", "msg": "", "rc": 0, "start": "2025-12-16 20:15:16.494478", "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.005976", "end": "2025-12-16 20:15:16.703437", "msg": "", "rc": 0, "start": "2025-12-16 20:15:16.697461", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004226", "end": "2025-12-16 20:14:47.541076", "msg": "", "rc": 0, "start": "2025-12-16 20:14:47.536850", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005223", "end": "2025-12-16 17:15:17.001298", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:15:16.996075", "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.004548", "end": "2025-12-16 20:14:53.919034", "msg": "", "rc": 0, "start": "2025-12-16 20:14:53.914486", "stderr": "", "stderr_lines": [], "stdout": "60.8%", "stdout_lines": ["60.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.005368", "end": "2025-12-16 20:15:17.158412", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.153044", "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.008449", "end": "2025-12-16 20:15:17.211207", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.202758", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025546", "end": "2025-12-16 20:15:17.157377", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.131831", "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.005360", "end": "2025-12-16 20:15:17.687335", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.681975", "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.004828", "end": "2025-12-16 20:15:17.699961", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.695133", "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.005653", "end": "2025-12-16 20:15:17.708494", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.702841", "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.002778", "end": "2025-12-16 20:15:17.733889", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.731111", "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.006273", "end": "2025-12-16 20:15:17.757588", "msg": "", "rc": 0, "start": "2025-12-16 20:15:17.751315", "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.002857", "end": "2025-12-16 20:14:52.496945", "msg": "", "rc": 0, "start": "2025-12-16 20:14:52.494088", "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.003036", "end": "2025-12-16 20:14:46.328976", "msg": "", "rc": 0, "start": "2025-12-16 20:14:46.325940", "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.011731", "end": "2025-12-16 20:15:18.371003", "msg": "", "rc": 0, "start": "2025-12-16 20:15:18.359272", "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.013181", "end": "2025-12-16 20:15:18.422884", "msg": "", "rc": 0, "start": "2025-12-16 20:15:18.409703", "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.003108", "end": "2025-12-16 20:15:18.645089", "msg": "", "rc": 0, "start": "2025-12-16 20:15:18.641981", "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.002924", "end": "2025-12-16 20:14:49.509458", "msg": "", "rc": 0, "start": "2025-12-16 20:14:49.506534", "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.002821", "end": "2025-12-16 20:14:55.788405", "msg": "", "rc": 0, "start": "2025-12-16 20:14:55.785584", "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-16 17:15:18.888352", "msg": "", "rc": 0, "start": "2025-12-16 17:15:18.884415", "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.003068", "end": "2025-12-16 20:15:19.093081", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.090013", "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.003994", "end": "2025-12-16 20:15:19.247760", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.243766", "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.028651", "end": "2025-12-16 20:15:19.081652", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.053001", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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-16 20:15:19.607030", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.602724", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.003982", "end": "2025-12-16 20:15:19.613522", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.609540", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.004643", "end": "2025-12-16 20:15:19.630033", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.625390", "stderr": "", "stderr_lines": [], "stdout": "0.84", "stdout_lines": ["0.84"]}
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.005554", "end": "2025-12-16 20:15:19.657828", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.652274", "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.005264", "end": "2025-12-16 20:15:19.661249", "msg": "", "rc": 0, "start": "2025-12-16 20:15:19.655985", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.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.005040", "end": "2025-12-16 20:14:54.418206", "msg": "", "rc": 0, "start": "2025-12-16 20:14:54.413166", "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.005392", "end": "2025-12-16 20:14:48.218968", "msg": "", "rc": 0, "start": "2025-12-16 20:14:48.213576", "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.011056", "end": "2025-12-16 20:15:20.331252", "msg": "", "rc": 0, "start": "2025-12-16 20:15:20.320196", "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.010044", "end": "2025-12-16 20:15:20.375917", "msg": "", "rc": 0, "start": "2025-12-16 20:15:20.365873", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005532", "end": "2025-12-16 20:15:20.564539", "msg": "", "rc": 0, "start": "2025-12-16 20:15:20.559007", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.004997", "end": "2025-12-16 20:14:51.389773", "msg": "", "rc": 0, "start": "2025-12-16 20:14:51.384776", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.006044", "end": "2025-12-16 17:15:20.829638", "msg": "", "rc": 0, "start": "2025-12-16 17:15:20.823594", "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.004220", "end": "2025-12-16 20:14:57.786387", "msg": "", "rc": 0, "start": "2025-12-16 20:14:57.782167", "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.005285", "end": "2025-12-16 20:15:20.984537", "msg": "", "rc": 0, "start": "2025-12-16 20:15:20.979252", "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.007813", "end": "2025-12-16 20:15:21.228912", "msg": "", "rc": 0, "start": "2025-12-16 20:15:21.221099", "stderr": "", "stderr_lines": [], "stdout": "2.24", "stdout_lines": ["2.24"]}
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.024485", "end": "2025-12-16 20:15:21.007236", "msg": "", "rc": 0, "start": "2025-12-16 20:15:20.982751", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 21 days, 7:06, 1 user, load average: 0.12, 0.14, 0.10\nDisk Usage: 23%\nMemory Usage: 81.3%\nCPU Load: 0.10\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 2 days, 9:47, 1 user, load average: 0.14, 0.19, 0.18\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.19\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 21 days, 7:26, 1 user, load average: 0.64, 0.64, 0.70\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.84\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 21 days, 8:39, 1 user, load average: 0.81, 0.74, 0.66\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.91\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:11 up 21 days, 9:25, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 14 days, 9:41, 1 user, load average: 0.16, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.21\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 193 days, 11:48, 1 user, load average: 0.15, 0.26, 0.23\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.13\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 193 days, 11:48, 1 user, load average: 0.18, 0.24, 0.20\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.31\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:47 up 10 days, 8:04, 0 user, load average: 0.12, 0.14, 0.12\nDisk Usage: 47%\nMemory Usage: 70.8%\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:40 up 17 days, 4:16, 0 user, load average: 0.02, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 68.9%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:12 up 2 days, 9:46, 1 user, load average: 0.08, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:43 up 19 days, 23:09, 0 user, load average: 0.40, 0.39, 0.49\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.50\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:14:50 up 16 days, 9:30, 0 user, load average: 0.34, 0.35, 0.29\nDisk Usage: 75%\nMemory Usage: 60.8%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:15PM up 21 days, 7:05, 1 user, load averages: 0.17, 0.22, 0.19\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:13 up 2 days, 9:46, 1 user, load average: 0.36, 0.18, 0.08\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:15:14 up 21:54, 1 user, load average: 2.02, 1.31, 1.19\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 2.24\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-17T01:15:22.172648+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `89b3b634d3794faf93ffe26649680e0f` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:20:00.002567+00:00 |
| **Fin** | 2025-12-17T01:20:22.227390+00:00 |
| **Durée** | 22.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: [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: [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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003335", "end": "2025-12-16 20:20:11.456802", "msg": "", "rc": 0, "start": "2025-12-16 20:20:11.453467", "stderr": "", "stderr_lines": [], "stdout": " 20:20:11 up 21 days, 7:31, 1 user, load average: 0.42, 0.63, 0.69", "stdout_lines": [" 20:20:11 up 21 days, 7:31, 1 user, load average: 0.42, 0.63, 0.69"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003630", "end": "2025-12-16 20:20:11.457370", "msg": "", "rc": 0, "start": "2025-12-16 20:20:11.453740", "stderr": "", "stderr_lines": [], "stdout": " 20:20:11 up 21 days, 9:30, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 20:20:11 up 21 days, 9:30, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002991", "end": "2025-12-16 20:20:11.492540", "msg": "", "rc": 0, "start": "2025-12-16 20:20:11.489549", "stderr": "", "stderr_lines": [], "stdout": " 20:20:11 up 2 days, 9:52, 1 user, load average: 0.08, 0.17, 0.17", "stdout_lines": [" 20:20:11 up 2 days, 9:52, 1 user, load average: 0.08, 0.17, 0.17"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004265", "end": "2025-12-16 20:20:11.500536", "msg": "", "rc": 0, "start": "2025-12-16 20:20:11.496271", "stderr": "", "stderr_lines": [], "stdout": " 20:20:11 up 21 days, 8:44, 1 user, load average: 0.74, 0.74, 0.68", "stdout_lines": [" 20:20:11 up 21 days, 8:44, 1 user, load average: 0.74, 0.74, 0.68"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003319", "end": "2025-12-16 20:19:46.260003", "msg": "", "rc": 0, "start": "2025-12-16 20:19:46.256684", "stderr": "", "stderr_lines": [], "stdout": " 20:19:46 up 10 days, 8:09, 0 user, load average: 0.11, 0.10, 0.09", "stdout_lines": [" 20:19:46 up 10 days, 8:09, 0 user, load average: 0.11, 0.10, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008546", "end": "2025-12-16 20:20:12.129126", "msg": "", "rc": 0, "start": "2025-12-16 20:20:12.120580", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 193 days, 11:53, 1 user, load average: 0.12, 0.16, 0.17", "stdout_lines": [" 20:20:12 up 193 days, 11:53, 1 user, load average: 0.12, 0.16, 0.17"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009290", "end": "2025-12-16 20:20:12.168775", "msg": "", "rc": 0, "start": "2025-12-16 20:20:12.159485", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 193 days, 11:53, 1 user, load average: 0.14, 0.22, 0.21", "stdout_lines": [" 20:20:12 up 193 days, 11:53, 1 user, load average: 0.14, 0.22, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004236", "end": "2025-12-16 20:20:12.442579", "msg": "", "rc": 0, "start": "2025-12-16 20:20:11.438343", "stderr": "", "stderr_lines": [], "stdout": " 20:20:11 up 21 days, 7:11, 1 user, load average: 0.08, 0.11, 0.09", "stdout_lines": [" 20:20:11 up 21 days, 7:11, 1 user, load average: 0.08, 0.11, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003606", "end": "2025-12-16 20:19:40.503855", "msg": "", "rc": 0, "start": "2025-12-16 20:19:40.500249", "stderr": "", "stderr_lines": [], "stdout": " 20:19:40 up 17 days, 4:21, 0 user, load average: 0.04, 0.04, 0.00", "stdout_lines": [" 20:19:40 up 17 days, 4:21, 0 user, load average: 0.04, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004656", "end": "2025-12-16 20:20:12.640180", "msg": "", "rc": 0, "start": "2025-12-16 20:20:12.635524", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 2 days, 9:51, 1 user, load average: 0.17, 0.12, 0.04", "stdout_lines": [" 20:20:12 up 2 days, 9:51, 1 user, load average: 0.17, 0.12, 0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003093", "end": "2025-12-16 20:19:43.394898", "msg": "", "rc": 0, "start": "2025-12-16 20:19:43.391805", "stderr": "", "stderr_lines": [], "stdout": " 20:19:43 up 19 days, 23:14, 0 user, load average: 0.51, 0.54, 0.52", "stdout_lines": [" 20:19:43 up 19 days, 23:14, 0 user, load average: 0.51, 0.54, 0.52"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002793", "end": "2025-12-16 20:19:49.808031", "msg": "", "rc": 0, "start": "2025-12-16 20:19:49.805238", "stderr": "", "stderr_lines": [], "stdout": " 20:19:49 up 16 days, 9:35, 0 user, load average: 0.30, 0.31, 0.28", "stdout_lines": [" 20:19:49 up 16 days, 9:35, 0 user, load average: 0.30, 0.31, 0.28"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004255", "end": "2025-12-16 17:20:12.916126", "msg": "", "rc": 0, "start": "2025-12-16 17:20:12.911871", "stderr": "", "stderr_lines": [], "stdout": " 5:20PM up 21 days, 7:10, 1 user, load averages: 0.20, 0.24, 0.20", "stdout_lines": [" 5:20PM up 21 days, 7:10, 1 user, load averages: 0.20, 0.24, 0.20"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019762", "end": "2025-12-16 20:20:12.931587", "msg": "", "rc": 0, "start": "2025-12-16 20:20:12.911825", "stderr": "", "stderr_lines": [], "stdout": " 20:20:12 up 14 days, 9:46, 1 user, load average: 0.15, 0.15, 0.10", "stdout_lines": [" 20:20:12 up 14 days, 9:46, 1 user, load average: 0.15, 0.15, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008752", "end": "2025-12-16 20:20:13.329982", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.321230", "stderr": "", "stderr_lines": [], "stdout": " 20:20:13 up 21:59, 1 user, load average: 1.19, 1.19, 1.17", "stdout_lines": [" 20:20:13 up 21:59, 1 user, load average: 1.19, 1.19, 1.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003650", "end": "2025-12-16 20:20:13.062195", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.058545", "stderr": "", "stderr_lines": [], "stdout": " 20:20:13 up 2 days, 9:51, 1 user, load average: 0.00, 0.06, 0.05", "stdout_lines": [" 20:20:13 up 2 days, 9:51, 1 user, load average: 0.00, 0.06, 0.05"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004271", "end": "2025-12-16 20:20:13.470102", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.465831", "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.004204", "end": "2025-12-16 20:20:13.491668", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.487464", "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.004711", "end": "2025-12-16 20:20:13.498762", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.494051", "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.004834", "end": "2025-12-16 20:20:13.529587", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.524753", "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.005532", "end": "2025-12-16 20:20:13.545974", "msg": "", "rc": 0, "start": "2025-12-16 20:20:13.540442", "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.004997", "end": "2025-12-16 20:19:48.313049", "msg": "", "rc": 0, "start": "2025-12-16 20:19:48.308052", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005777", "end": "2025-12-16 20:19:42.094710", "msg": "", "rc": 0, "start": "2025-12-16 20:19:42.088933", "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.010517", "end": "2025-12-16 20:20:14.249707", "msg": "", "rc": 0, "start": "2025-12-16 20:20:14.239190", "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.011664", "end": "2025-12-16 20:20:14.259929", "msg": "", "rc": 0, "start": "2025-12-16 20:20:14.248265", "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.005738", "end": "2025-12-16 20:20:14.495050", "msg": "", "rc": 0, "start": "2025-12-16 20:20:14.489312", "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.005449", "end": "2025-12-16 20:19:45.300353", "msg": "", "rc": 0, "start": "2025-12-16 20:19:45.294904", "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.005652", "end": "2025-12-16 17:20:14.732121", "msg": "", "rc": 0, "start": "2025-12-16 17:20:14.726469", "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.005171", "end": "2025-12-16 20:19:51.676507", "msg": "", "rc": 0, "start": "2025-12-16 20:19:51.671336", "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.005375", "end": "2025-12-16 20:20:14.919899", "msg": "", "rc": 0, "start": "2025-12-16 20:20:14.914524", "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.025113", "end": "2025-12-16 20:20:14.876708", "msg": "", "rc": 0, "start": "2025-12-16 20:20:14.851595", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020017", "end": "2025-12-16 20:20:15.353859", "msg": "", "rc": 0, "start": "2025-12-16 20:20:15.333842", "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.004466", "end": "2025-12-16 20:20:15.412089", "msg": "", "rc": 0, "start": "2025-12-16 20:20:15.407623", "stderr": "", "stderr_lines": [], "stdout": "81.6%", "stdout_lines": ["81.6%"]}
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.004695", "end": "2025-12-16 20:20:15.429496", "msg": "", "rc": 0, "start": "2025-12-16 20:20:15.424801", "stderr": "", "stderr_lines": [], "stdout": "48.9%", "stdout_lines": ["48.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.004162", "end": "2025-12-16 20:20:15.433075", "msg": "", "rc": 0, "start": "2025-12-16 20:20:15.428913", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004940", "end": "2025-12-16 20:20:15.464860", "msg": "", "rc": 0, "start": "2025-12-16 20:20:15.459920", "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.005667", "end": "2025-12-16 20:20:15.488563", "msg": "", "rc": 0, "start": "2025-12-16 20:20:15.482896", "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.003714", "end": "2025-12-16 20:19:50.221476", "msg": "", "rc": 0, "start": "2025-12-16 20:19:50.217762", "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.004153", "end": "2025-12-16 20:19:44.041230", "msg": "", "rc": 0, "start": "2025-12-16 20:19:44.037077", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010925", "end": "2025-12-16 20:20:16.127329", "msg": "", "rc": 0, "start": "2025-12-16 20:20:16.116404", "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.011968", "end": "2025-12-16 20:20:16.172011", "msg": "", "rc": 0, "start": "2025-12-16 20:20:16.160043", "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.005879", "end": "2025-12-16 20:20:16.400697", "msg": "", "rc": 0, "start": "2025-12-16 20:20:16.394818", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003926", "end": "2025-12-16 20:19:47.224518", "msg": "", "rc": 0, "start": "2025-12-16 20:19:47.220592", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005057", "end": "2025-12-16 17:20:16.647050", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:20:16.641993", "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.005923", "end": "2025-12-16 20:19:53.563476", "msg": "", "rc": 0, "start": "2025-12-16 20:19:53.557553", "stderr": "", "stderr_lines": [], "stdout": "59.8%", "stdout_lines": ["59.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.005369", "end": "2025-12-16 20:20:16.838329", "msg": "", "rc": 0, "start": "2025-12-16 20:20:16.832960", "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.008217", "end": "2025-12-16 20:20:17.320785", "msg": "", "rc": 0, "start": "2025-12-16 20:20:17.312568", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025755", "end": "2025-12-16 20:20:16.831847", "msg": "", "rc": 0, "start": "2025-12-16 20:20:16.806092", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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-16 20:20:17.352215", "msg": "", "rc": 0, "start": "2025-12-16 20:20:17.347021", "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.004844", "end": "2025-12-16 20:20:17.386592", "msg": "", "rc": 0, "start": "2025-12-16 20:20:17.381748", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005640", "end": "2025-12-16 20:20:17.394206", "msg": "", "rc": 0, "start": "2025-12-16 20:20:17.388566", "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.003539", "end": "2025-12-16 20:20:17.407438", "msg": "", "rc": 0, "start": "2025-12-16 20:20:17.403899", "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.006332", "end": "2025-12-16 20:20:17.424251", "msg": "", "rc": 0, "start": "2025-12-16 20:20:17.417919", "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.002650", "end": "2025-12-16 20:19:52.260622", "msg": "", "rc": 0, "start": "2025-12-16 20:19:52.257972", "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.003627", "end": "2025-12-16 20:19:46.042426", "msg": "", "rc": 0, "start": "2025-12-16 20:19:46.038799", "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.012269", "end": "2025-12-16 20:20:18.148583", "msg": "", "rc": 0, "start": "2025-12-16 20:20:18.136314", "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.013036", "end": "2025-12-16 20:20:18.200787", "msg": "", "rc": 0, "start": "2025-12-16 20:20:18.187751", "stderr": "", "stderr_lines": [], "stdout": "37.5°C", "stdout_lines": ["37.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.003258", "end": "2025-12-16 20:20:18.472748", "msg": "", "rc": 0, "start": "2025-12-16 20:20:18.469490", "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.002954", "end": "2025-12-16 20:19:49.258191", "msg": "", "rc": 0, "start": "2025-12-16 20:19:49.255237", "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.003350", "end": "2025-12-16 20:19:55.616757", "msg": "", "rc": 0, "start": "2025-12-16 20:19:55.613407", "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.003896", "end": "2025-12-16 17:20:18.708983", "msg": "", "rc": 0, "start": "2025-12-16 17:20:18.705087", "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.004005", "end": "2025-12-16 20:20:19.402509", "msg": "", "rc": 0, "start": "2025-12-16 20:20:19.398504", "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.003165", "end": "2025-12-16 20:20:18.919795", "msg": "", "rc": 0, "start": "2025-12-16 20:20:18.916630", "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.028771", "end": "2025-12-16 20:20:18.809893", "msg": "", "rc": 0, "start": "2025-12-16 20:20:18.781122", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.1°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.004071", "end": "2025-12-16 20:20:19.356503", "msg": "", "rc": 0, "start": "2025-12-16 20:20:19.352432", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.004181", "end": "2025-12-16 20:20:19.373142", "msg": "", "rc": 0, "start": "2025-12-16 20:20:19.368961", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.004700", "end": "2025-12-16 20:20:19.411086", "msg": "", "rc": 0, "start": "2025-12-16 20:20:19.406386", "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.005391", "end": "2025-12-16 20:20:19.406667", "msg": "", "rc": 0, "start": "2025-12-16 20:20:19.401276", "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.005576", "end": "2025-12-16 20:20:19.431358", "msg": "", "rc": 0, "start": "2025-12-16 20:20:19.425782", "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.004231", "end": "2025-12-16 20:19:54.187196", "msg": "", "rc": 0, "start": "2025-12-16 20:19:54.182965", "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.005072", "end": "2025-12-16 20:19:47.970878", "msg": "", "rc": 0, "start": "2025-12-16 20:19:47.965806", "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.010240", "end": "2025-12-16 20:20:20.150457", "msg": "", "rc": 0, "start": "2025-12-16 20:20:20.140217", "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.011151", "end": "2025-12-16 20:20:20.163962", "msg": "", "rc": 0, "start": "2025-12-16 20:20:20.152811", "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.005653", "end": "2025-12-16 20:20:20.341006", "msg": "", "rc": 0, "start": "2025-12-16 20:20:20.335353", "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.005181", "end": "2025-12-16 20:19:51.135097", "msg": "", "rc": 0, "start": "2025-12-16 20:19:51.129916", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.006227", "end": "2025-12-16 17:20:20.634986", "msg": "", "rc": 0, "start": "2025-12-16 17:20:20.628759", "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.005298", "end": "2025-12-16 20:19:57.561737", "msg": "", "rc": 0, "start": "2025-12-16 20:19:57.556439", "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.005339", "end": "2025-12-16 20:20:20.775673", "msg": "", "rc": 0, "start": "2025-12-16 20:20:20.770334", "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.007263", "end": "2025-12-16 20:20:21.345470", "msg": "", "rc": 0, "start": "2025-12-16 20:20:21.338207", "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.024603", "end": "2025-12-16 20:20:20.742649", "msg": "", "rc": 0, "start": "2025-12-16 20:20:20.718046", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:11 up 21 days, 7:11, 1 user, load average: 0.08, 0.11, 0.09\nDisk Usage: 23%\nMemory Usage: 81.6%\nCPU Load: 0.06\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:11 up 2 days, 9:52, 1 user, load average: 0.08, 0.17, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.15\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:11 up 21 days, 7:31, 1 user, load average: 0.42, 0.63, 0.69\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.44\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:11 up 21 days, 8:44, 1 user, load average: 0.74, 0.74, 0.68\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.76\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:11 up 21 days, 9:30, 1 user, load average: 0.00, 0.00, 0.00\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: 20:20:12 up 14 days, 9:46, 1 user, load average: 0.15, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.21\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 193 days, 11:53, 1 user, load average: 0.14, 0.22, 0.21\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.28\nCPU Temp: 37.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 193 days, 11:53, 1 user, load average: 0.12, 0.16, 0.17\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.10\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:46 up 10 days, 8:09, 0 user, load average: 0.11, 0.10, 0.09\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:40 up 17 days, 4:21, 0 user, load average: 0.04, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:20:12 up 2 days, 9:51, 1 user, load average: 0.17, 0.12, 0.04\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:43 up 19 days, 23:14, 0 user, load average: 0.51, 0.54, 0.52\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.47\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:19:49 up 16 days, 9:35, 0 user, load average: 0.30, 0.31, 0.28\nDisk Usage: 75%\nMemory Usage: 59.8%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:20PM up 21 days, 7:10, 1 user, load averages: 0.20, 0.24, 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:20:13 up 2 days, 9:51, 1 user, load average: 0.00, 0.06, 0.05\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: 20:20:13 up 21:59, 1 user, load average: 1.19, 1.19, 1.17\nDisk Usage: 1%\nMemory Usage: 20.3%\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-17T01:20:22.270349+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `50a05821ded143d9b871f1c1f1efdeb6` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:25:00.001516+00:00 |
| **Fin** | 2025-12-17T01:25:23.165823+00:00 |
| **Durée** | 23.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: [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: [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.003463", "end": "2025-12-16 20:25:12.203554", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.200091", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 21 days, 7:16, 1 user, load average: 0.09, 0.08, 0.08", "stdout_lines": [" 20:25:12 up 21 days, 7:16, 1 user, load average: 0.09, 0.08, 0.08"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003800", "end": "2025-12-16 20:25:12.220009", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.216209", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 21 days, 9:35, 1 user, load average: 0.29, 0.12, 0.04", "stdout_lines": [" 20:25:12 up 21 days, 9:35, 1 user, load average: 0.29, 0.12, 0.04"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003335", "end": "2025-12-16 20:25:12.227678", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.224343", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 21 days, 7:36, 1 user, load average: 0.39, 0.47, 0.60", "stdout_lines": [" 20:25:12 up 21 days, 7:36, 1 user, load average: 0.39, 0.47, 0.60"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002881", "end": "2025-12-16 20:25:12.248024", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.245143", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 2 days, 9:57, 1 user, load average: 0.63, 0.26, 0.20", "stdout_lines": [" 20:25:12 up 2 days, 9:57, 1 user, load average: 0.63, 0.26, 0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004211", "end": "2025-12-16 20:25:12.253343", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.249132", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 21 days, 8:49, 1 user, load average: 0.77, 0.71, 0.67", "stdout_lines": [" 20:25:12 up 21 days, 8:49, 1 user, load average: 0.77, 0.71, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003018", "end": "2025-12-16 20:24:47.001674", "msg": "", "rc": 0, "start": "2025-12-16 20:24:46.998656", "stderr": "", "stderr_lines": [], "stdout": " 20:24:47 up 10 days, 8:14, 0 user, load average: 0.14, 0.13, 0.10", "stdout_lines": [" 20:24:47 up 10 days, 8:14, 0 user, load average: 0.14, 0.13, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005452", "end": "2025-12-16 20:24:40.807593", "msg": "", "rc": 0, "start": "2025-12-16 20:24:40.802141", "stderr": "", "stderr_lines": [], "stdout": " 20:24:40 up 17 days, 4:26, 0 user, load average: 0.18, 0.07, 0.01", "stdout_lines": [" 20:24:40 up 17 days, 4:26, 0 user, load average: 0.18, 0.07, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008526", "end": "2025-12-16 20:25:12.885778", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.877252", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 193 days, 11:58, 1 user, load average: 0.16, 0.14, 0.16", "stdout_lines": [" 20:25:12 up 193 days, 11:58, 1 user, load average: 0.16, 0.14, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009265", "end": "2025-12-16 20:25:12.939072", "msg": "", "rc": 0, "start": "2025-12-16 20:25:12.929807", "stderr": "", "stderr_lines": [], "stdout": " 20:25:12 up 193 days, 11:58, 1 user, load average: 0.35, 0.31, 0.26", "stdout_lines": [" 20:25:12 up 193 days, 11:58, 1 user, load average: 0.35, 0.31, 0.26"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004733", "end": "2025-12-16 20:25:13.167084", "msg": "", "rc": 0, "start": "2025-12-16 20:25:13.162351", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 2 days, 9:56, 1 user, load average: 0.11, 0.09, 0.03", "stdout_lines": [" 20:25:13 up 2 days, 9:56, 1 user, load average: 0.11, 0.09, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003464", "end": "2025-12-16 20:24:43.996075", "msg": "", "rc": 0, "start": "2025-12-16 20:24:43.992611", "stderr": "", "stderr_lines": [], "stdout": " 20:24:43 up 19 days, 23:19, 0 user, load average: 1.60, 0.91, 0.66", "stdout_lines": [" 20:24:43 up 19 days, 23:19, 0 user, load average: 1.60, 0.91, 0.66"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002845", "end": "2025-12-16 20:24:50.314508", "msg": "", "rc": 0, "start": "2025-12-16 20:24:50.311663", "stderr": "", "stderr_lines": [], "stdout": " 20:24:50 up 16 days, 9:40, 0 user, load average: 0.16, 0.23, 0.25", "stdout_lines": [" 20:24:50 up 16 days, 9:40, 0 user, load average: 0.16, 0.23, 0.25"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004093", "end": "2025-12-16 17:25:13.410762", "msg": "", "rc": 0, "start": "2025-12-16 17:25:13.406669", "stderr": "", "stderr_lines": [], "stdout": " 5:25PM up 21 days, 7:15, 1 user, load averages: 0.28, 0.25, 0.20", "stdout_lines": [" 5:25PM up 21 days, 7:15, 1 user, load averages: 0.28, 0.25, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003658", "end": "2025-12-16 20:25:13.590452", "msg": "", "rc": 0, "start": "2025-12-16 20:25:13.586794", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 2 days, 9:56, 1 user, load average: 0.02, 0.04, 0.03", "stdout_lines": [" 20:25:13 up 2 days, 9:56, 1 user, load average: 0.02, 0.04, 0.03"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008026", "end": "2025-12-16 20:25:14.358059", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.350033", "stderr": "", "stderr_lines": [], "stdout": " 20:25:14 up 22:05, 1 user, load average: 1.57, 1.32, 1.22", "stdout_lines": [" 20:25:14 up 22:05, 1 user, load average: 1.57, 1.32, 1.22"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019666", "end": "2025-12-16 20:25:13.590198", "msg": "", "rc": 0, "start": "2025-12-16 20:25:13.570532", "stderr": "", "stderr_lines": [], "stdout": " 20:25:13 up 14 days, 9:51, 1 user, load average: 0.26, 0.16, 0.10", "stdout_lines": [" 20:25:13 up 14 days, 9:51, 1 user, load average: 0.26, 0.16, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004425", "end": "2025-12-16 20:25:14.111751", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.107326", "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.004089", "end": "2025-12-16 20:25:14.134306", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.130217", "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.004745", "end": "2025-12-16 20:25:14.134934", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.130189", "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.004796", "end": "2025-12-16 20:25:14.168806", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.164010", "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.005492", "end": "2025-12-16 20:25:14.182694", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.177202", "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.005231", "end": "2025-12-16 20:24:48.918382", "msg": "", "rc": 0, "start": "2025-12-16 20:24:48.913151", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005620", "end": "2025-12-16 20:24:42.721919", "msg": "", "rc": 0, "start": "2025-12-16 20:24:42.716299", "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.010638", "end": "2025-12-16 20:25:14.845736", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.835098", "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.012370", "end": "2025-12-16 20:25:14.885981", "msg": "", "rc": 0, "start": "2025-12-16 20:25:14.873611", "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.005696", "end": "2025-12-16 20:25:15.084018", "msg": "", "rc": 0, "start": "2025-12-16 20:25:15.078322", "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.005322", "end": "2025-12-16 20:24:45.890339", "msg": "", "rc": 0, "start": "2025-12-16 20:24:45.885017", "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.004627", "end": "2025-12-16 20:24:52.253139", "msg": "", "rc": 0, "start": "2025-12-16 20:24:52.248512", "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.005310", "end": "2025-12-16 17:25:15.360092", "msg": "", "rc": 0, "start": "2025-12-16 17:25:15.354782", "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.005616", "end": "2025-12-16 20:25:15.514969", "msg": "", "rc": 0, "start": "2025-12-16 20:25:15.509353", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020396", "end": "2025-12-16 20:25:16.322964", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.302568", "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.025400", "end": "2025-12-16 20:25:15.501080", "msg": "", "rc": 0, "start": "2025-12-16 20:25:15.475680", "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-16 20:25:16.026570", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.022161", "stderr": "", "stderr_lines": [], "stdout": "81.5%", "stdout_lines": ["81.5%"]}
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.004777", "end": "2025-12-16 20:25:16.049134", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.044357", "stderr": "", "stderr_lines": [], "stdout": "48.9%", "stdout_lines": ["48.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.004248", "end": "2025-12-16 20:25:16.054261", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.050013", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005302", "end": "2025-12-16 20:25:16.087985", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.082683", "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.005674", "end": "2025-12-16 20:25:16.101948", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.096274", "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.003890", "end": "2025-12-16 20:24:50.886008", "msg": "", "rc": 0, "start": "2025-12-16 20:24:50.882118", "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.004838", "end": "2025-12-16 20:24:44.662065", "msg": "", "rc": 0, "start": "2025-12-16 20:24:44.657227", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010964", "end": "2025-12-16 20:25:16.735641", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.724677", "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.011848", "end": "2025-12-16 20:25:16.770296", "msg": "", "rc": 0, "start": "2025-12-16 20:25:16.758448", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005935", "end": "2025-12-16 20:25:17.088905", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.082970", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004244", "end": "2025-12-16 20:24:47.837988", "msg": "", "rc": 0, "start": "2025-12-16 20:24:47.833744", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003745", "end": "2025-12-16 20:24:54.150929", "msg": "", "rc": 0, "start": "2025-12-16 20:24:54.147184", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.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.006043", "end": "2025-12-16 17:25:17.258082", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:25:17.252039", "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.009653", "end": "2025-12-16 20:25:18.328511", "msg": "", "rc": 0, "start": "2025-12-16 20:25:18.318858", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005392", "end": "2025-12-16 20:25:17.518166", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.512774", "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.026145", "end": "2025-12-16 20:25:17.415549", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.389404", "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.005148", "end": "2025-12-16 20:25:17.959758", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.954610", "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.004825", "end": "2025-12-16 20:25:17.968393", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.963568", "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.005900", "end": "2025-12-16 20:25:17.988880", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.982980", "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.002856", "end": "2025-12-16 20:25:17.997855", "msg": "", "rc": 0, "start": "2025-12-16 20:25:17.994999", "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.006679", "end": "2025-12-16 20:25:18.020735", "msg": "", "rc": 0, "start": "2025-12-16 20:25:18.014056", "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.002949", "end": "2025-12-16 20:24:52.767554", "msg": "", "rc": 0, "start": "2025-12-16 20:24:52.764605", "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.002745", "end": "2025-12-16 20:24:46.571147", "msg": "", "rc": 0, "start": "2025-12-16 20:24:46.568402", "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.011911", "end": "2025-12-16 20:25:18.649683", "msg": "", "rc": 0, "start": "2025-12-16 20:25:18.637772", "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.012942", "end": "2025-12-16 20:25:18.694175", "msg": "", "rc": 0, "start": "2025-12-16 20:25:18.681233", "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.003088", "end": "2025-12-16 20:25:18.902585", "msg": "", "rc": 0, "start": "2025-12-16 20:25:18.899497", "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.002945", "end": "2025-12-16 20:24:49.730074", "msg": "", "rc": 0, "start": "2025-12-16 20:24:49.727129", "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.002748", "end": "2025-12-16 20:24:56.041372", "msg": "", "rc": 0, "start": "2025-12-16 20:24:56.038624", "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.003926", "end": "2025-12-16 17:25:19.163575", "msg": "", "rc": 0, "start": "2025-12-16 17:25:19.159649", "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.003050", "end": "2025-12-16 20:25:19.332373", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.329323", "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.004039", "end": "2025-12-16 20:25:20.307498", "msg": "", "rc": 0, "start": "2025-12-16 20:25:20.303459", "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.028567", "end": "2025-12-16 20:25:19.359537", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.330970", "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.004238", "end": "2025-12-16 20:25:19.898049", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.893811", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004605", "end": "2025-12-16 20:25:19.910401", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.905796", "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.004279", "end": "2025-12-16 20:25:19.910517", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.906238", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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.005382", "end": "2025-12-16 20:25:19.951842", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.946460", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005367", "end": "2025-12-16 20:25:19.958704", "msg": "", "rc": 0, "start": "2025-12-16 20:25:19.953337", "stderr": "", "stderr_lines": [], "stdout": "0.70", "stdout_lines": ["0.70"]}
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.004657", "end": "2025-12-16 20:24:54.736911", "msg": "", "rc": 0, "start": "2025-12-16 20:24:54.732254", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.005286", "end": "2025-12-16 20:24:48.507126", "msg": "", "rc": 0, "start": "2025-12-16 20:24:48.501840", "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.010237", "end": "2025-12-16 20:25:20.672780", "msg": "", "rc": 0, "start": "2025-12-16 20:25:20.662543", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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.011035", "end": "2025-12-16 20:25:20.690829", "msg": "", "rc": 0, "start": "2025-12-16 20:25:20.679794", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
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.005728", "end": "2025-12-16 20:25:20.890368", "msg": "", "rc": 0, "start": "2025-12-16 20:25:20.884640", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005136", "end": "2025-12-16 20:24:51.682015", "msg": "", "rc": 0, "start": "2025-12-16 20:24:51.676879", "stderr": "", "stderr_lines": [], "stdout": "1.43", "stdout_lines": ["1.43"]}
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.005972", "end": "2025-12-16 17:25:21.170684", "msg": "", "rc": 0, "start": "2025-12-16 17:25:21.164712", "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.004280", "end": "2025-12-16 20:24:58.094989", "msg": "", "rc": 0, "start": "2025-12-16 20:24:58.090709", "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.005289", "end": "2025-12-16 20:25:21.325914", "msg": "", "rc": 0, "start": "2025-12-16 20:25:21.320625", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.008769", "end": "2025-12-16 20:25:22.336443", "msg": "", "rc": 0, "start": "2025-12-16 20:25:22.327674", "stderr": "", "stderr_lines": [], "stdout": "1.96", "stdout_lines": ["1.96"]}
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.024290", "end": "2025-12-16 20:25:21.289778", "msg": "", "rc": 0, "start": "2025-12-16 20:25:21.265488", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 2 days, 9:57, 1 user, load average: 0.63, 0.26, 0.20\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.58\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 21 days, 7:16, 1 user, load average: 0.09, 0.08, 0.08\nDisk Usage: 23%\nMemory Usage: 81.5%\nCPU Load: 0.31\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 21 days, 7:36, 1 user, load average: 0.39, 0.47, 0.60\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.63\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 21 days, 8:49, 1 user, load average: 0.77, 0.71, 0.67\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.70\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 21 days, 9:35, 1 user, load average: 0.29, 0.12, 0.04\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:13 up 14 days, 9:51, 1 user, load average: 0.26, 0.16, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.32\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 193 days, 11:58, 1 user, load average: 0.35, 0.31, 0.26\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.46\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:12 up 193 days, 11:58, 1 user, load average: 0.16, 0.14, 0.16\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.14\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:47 up 10 days, 8:14, 0 user, load average: 0.14, 0.13, 0.10\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:13 up 2 days, 9:56, 1 user, load average: 0.11, 0.09, 0.03\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:40 up 17 days, 4:26, 0 user, load average: 0.18, 0.07, 0.01\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:43 up 19 days, 23:19, 0 user, load average: 1.60, 0.91, 0.66\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 1.43\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:24:50 up 16 days, 9:40, 0 user, load average: 0.16, 0.23, 0.25\nDisk Usage: 75%\nMemory Usage: 59.5%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:25PM up 21 days, 7:15, 1 user, load averages: 0.28, 0.25, 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:25:13 up 2 days, 9:56, 1 user, load average: 0.02, 0.04, 0.03\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:25:14 up 22:05, 1 user, load average: 1.57, 1.32, 1.22\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.96\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-17T01:25:23.213093+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `8f245982aa364ff4816d49fc0483774a` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:30:00.001437+00:00 |
| **Fin** | 2025-12-17T01:30:22.133912+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: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.003211", "end": "2025-12-16 20:30:11.627223", "msg": "", "rc": 0, "start": "2025-12-16 20:30:11.624012", "stderr": "", "stderr_lines": [], "stdout": " 20:30:11 up 21 days, 7:21, 1 user, load average: 0.04, 0.11, 0.09", "stdout_lines": [" 20:30:11 up 21 days, 7:21, 1 user, load average: 0.04, 0.11, 0.09"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004154", "end": "2025-12-16 20:30:11.649469", "msg": "", "rc": 0, "start": "2025-12-16 20:30:11.645315", "stderr": "", "stderr_lines": [], "stdout": " 20:30:11 up 21 days, 9:40, 1 user, load average: 0.00, 0.04, 0.02", "stdout_lines": [" 20:30:11 up 21 days, 9:40, 1 user, load average: 0.00, 0.04, 0.02"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002820", "end": "2025-12-16 20:30:11.665870", "msg": "", "rc": 0, "start": "2025-12-16 20:30:11.663050", "stderr": "", "stderr_lines": [], "stdout": " 20:30:11 up 2 days, 10:02, 1 user, load average: 0.22, 0.22, 0.18", "stdout_lines": [" 20:30:11 up 2 days, 10:02, 1 user, load average: 0.22, 0.22, 0.18"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004474", "end": "2025-12-16 20:30:11.669453", "msg": "", "rc": 0, "start": "2025-12-16 20:30:11.664979", "stderr": "", "stderr_lines": [], "stdout": " 20:30:11 up 21 days, 8:54, 1 user, load average: 0.75, 0.70, 0.67", "stdout_lines": [" 20:30:11 up 21 days, 8:54, 1 user, load average: 0.75, 0.70, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003021", "end": "2025-12-16 20:29:46.445464", "msg": "", "rc": 0, "start": "2025-12-16 20:29:46.442443", "stderr": "", "stderr_lines": [], "stdout": " 20:29:46 up 10 days, 8:19, 0 user, load average: 0.09, 0.14, 0.10", "stdout_lines": [" 20:29:46 up 10 days, 8:19, 0 user, load average: 0.09, 0.14, 0.10"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008466", "end": "2025-12-16 20:30:12.333136", "msg": "", "rc": 0, "start": "2025-12-16 20:30:12.324670", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 193 days, 12:03, 1 user, load average: 0.16, 0.13, 0.15", "stdout_lines": [" 20:30:12 up 193 days, 12:03, 1 user, load average: 0.16, 0.13, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009244", "end": "2025-12-16 20:30:12.392295", "msg": "", "rc": 0, "start": "2025-12-16 20:30:12.383051", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 193 days, 12:03, 1 user, load average: 0.24, 0.26, 0.26", "stdout_lines": [" 20:30:12 up 193 days, 12:03, 1 user, load average: 0.24, 0.26, 0.26"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003910", "end": "2025-12-16 20:30:12.643681", "msg": "", "rc": 0, "start": "2025-12-16 20:30:11.639771", "stderr": "", "stderr_lines": [], "stdout": " 20:30:11 up 21 days, 7:41, 1 user, load average: 0.68, 0.61, 0.63", "stdout_lines": [" 20:30:11 up 21 days, 7:41, 1 user, load average: 0.68, 0.61, 0.63"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003493", "end": "2025-12-16 20:29:40.707235", "msg": "", "rc": 0, "start": "2025-12-16 20:29:40.703742", "stderr": "", "stderr_lines": [], "stdout": " 20:29:40 up 17 days, 4:31, 0 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 20:29:40 up 17 days, 4:31, 0 user, load average: 0.00, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004663", "end": "2025-12-16 20:30:12.861564", "msg": "", "rc": 0, "start": "2025-12-16 20:30:12.856901", "stderr": "", "stderr_lines": [], "stdout": " 20:30:12 up 2 days, 10:01, 1 user, load average: 0.10, 0.08, 0.03", "stdout_lines": [" 20:30:12 up 2 days, 10:01, 1 user, load average: 0.10, 0.08, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003376", "end": "2025-12-16 20:29:43.638972", "msg": "", "rc": 0, "start": "2025-12-16 20:29:43.635596", "stderr": "", "stderr_lines": [], "stdout": " 20:29:43 up 19 days, 23:24, 0 user, load average: 0.30, 0.52, 0.56", "stdout_lines": [" 20:29:43 up 19 days, 23:24, 0 user, load average: 0.30, 0.52, 0.56"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003171", "end": "2025-12-16 20:29:50.009376", "msg": "", "rc": 0, "start": "2025-12-16 20:29:50.006205", "stderr": "", "stderr_lines": [], "stdout": " 20:29:50 up 16 days, 9:45, 0 user, load average: 0.37, 0.24, 0.25", "stdout_lines": [" 20:29:50 up 16 days, 9:45, 0 user, load average: 0.37, 0.24, 0.25"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019672", "end": "2025-12-16 20:30:13.024914", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.005242", "stderr": "", "stderr_lines": [], "stdout": " 20:30:13 up 14 days, 9:56, 1 user, load average: 0.29, 0.17, 0.11", "stdout_lines": [" 20:30:13 up 14 days, 9:56, 1 user, load average: 0.29, 0.17, 0.11"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004209", "end": "2025-12-16 17:30:13.157661", "msg": "", "rc": 0, "start": "2025-12-16 17:30:13.153452", "stderr": "", "stderr_lines": [], "stdout": " 5:30PM up 21 days, 7:20, 1 user, load averages: 0.27, 0.23, 0.20", "stdout_lines": [" 5:30PM up 21 days, 7:20, 1 user, load averages: 0.27, 0.23, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003694", "end": "2025-12-16 20:30:13.292409", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.288715", "stderr": "", "stderr_lines": [], "stdout": " 20:30:13 up 2 days, 10:01, 1 user, load average: 0.27, 0.09, 0.04", "stdout_lines": [" 20:30:13 up 2 days, 10:01, 1 user, load average: 0.27, 0.09, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008986", "end": "2025-12-16 20:30:14.388291", "msg": "", "rc": 0, "start": "2025-12-16 20:30:14.379305", "stderr": "", "stderr_lines": [], "stdout": " 20:30:14 up 22:10, 1 user, load average: 1.29, 1.22, 1.20", "stdout_lines": [" 20:30:14 up 22:10, 1 user, load average: 1.29, 1.22, 1.20"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004410", "end": "2025-12-16 20:30:13.700469", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.696059", "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.004126", "end": "2025-12-16 20:30:13.727584", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.723458", "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.004862", "end": "2025-12-16 20:30:13.742406", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.737544", "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.004745", "end": "2025-12-16 20:30:13.768200", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.763455", "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.005625", "end": "2025-12-16 20:30:13.788772", "msg": "", "rc": 0, "start": "2025-12-16 20:30:13.783147", "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.005107", "end": "2025-12-16 20:29:48.538034", "msg": "", "rc": 0, "start": "2025-12-16 20:29:48.532927", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006385", "end": "2025-12-16 20:29:42.364405", "msg": "", "rc": 0, "start": "2025-12-16 20:29:42.358020", "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.010670", "end": "2025-12-16 20:30:14.472369", "msg": "", "rc": 0, "start": "2025-12-16 20:30:14.461699", "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.011462", "end": "2025-12-16 20:30:14.514091", "msg": "", "rc": 0, "start": "2025-12-16 20:30:14.502629", "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.005765", "end": "2025-12-16 20:30:14.704374", "msg": "", "rc": 0, "start": "2025-12-16 20:30:14.698609", "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.005349", "end": "2025-12-16 20:29:45.568169", "msg": "", "rc": 0, "start": "2025-12-16 20:29:45.562820", "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.004865", "end": "2025-12-16 20:29:51.901017", "msg": "", "rc": 0, "start": "2025-12-16 20:29:51.896152", "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.005516", "end": "2025-12-16 17:30:15.005616", "msg": "", "rc": 0, "start": "2025-12-16 17:30:15.000100", "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.005559", "end": "2025-12-16 20:30:15.164041", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.158482", "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.025106", "end": "2025-12-16 20:30:15.091002", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.065896", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021353", "end": "2025-12-16 20:30:15.328702", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.307349", "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.004512", "end": "2025-12-16 20:30:15.665120", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.660608", "stderr": "", "stderr_lines": [], "stdout": "81.6%", "stdout_lines": ["81.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.004115", "end": "2025-12-16 20:30:15.681918", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.677803", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004853", "end": "2025-12-16 20:30:15.707161", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.702308", "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.005008", "end": "2025-12-16 20:30:15.717247", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.712239", "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.006364", "end": "2025-12-16 20:30:15.746386", "msg": "", "rc": 0, "start": "2025-12-16 20:30:15.740022", "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.004234", "end": "2025-12-16 20:29:50.479706", "msg": "", "rc": 0, "start": "2025-12-16 20:29:50.475472", "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.004309", "end": "2025-12-16 20:29:44.306270", "msg": "", "rc": 0, "start": "2025-12-16 20:29:44.301961", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010928", "end": "2025-12-16 20:30:16.385925", "msg": "", "rc": 0, "start": "2025-12-16 20:30:16.374997", "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.011870", "end": "2025-12-16 20:30:16.391712", "msg": "", "rc": 0, "start": "2025-12-16 20:30:16.379842", "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.006406", "end": "2025-12-16 20:30:16.648791", "msg": "", "rc": 0, "start": "2025-12-16 20:30:16.642385", "stderr": "", "stderr_lines": [], "stdout": "34.4%", "stdout_lines": ["34.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.004457", "end": "2025-12-16 20:29:47.482040", "msg": "", "rc": 0, "start": "2025-12-16 20:29:47.477583", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.005201", "end": "2025-12-16 17:30:16.862406", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:30:16.857205", "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.004728", "end": "2025-12-16 20:29:53.810153", "msg": "", "rc": 0, "start": "2025-12-16 20:29:53.805425", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.005607", "end": "2025-12-16 20:30:17.083814", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.078207", "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.009312", "end": "2025-12-16 20:30:17.310163", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.300851", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025515", "end": "2025-12-16 20:30:17.071384", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.045869", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.004887", "end": "2025-12-16 20:30:17.617059", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.612172", "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.005510", "end": "2025-12-16 20:30:17.616991", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.611481", "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.005687", "end": "2025-12-16 20:30:17.641675", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.635988", "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.003505", "end": "2025-12-16 20:30:17.651394", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.647889", "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.006323", "end": "2025-12-16 20:30:17.661312", "msg": "", "rc": 0, "start": "2025-12-16 20:30:17.654989", "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.002414", "end": "2025-12-16 20:29:52.399533", "msg": "", "rc": 0, "start": "2025-12-16 20:29:52.397119", "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.003144", "end": "2025-12-16 20:29:46.195687", "msg": "", "rc": 0, "start": "2025-12-16 20:29:46.192543", "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.011876", "end": "2025-12-16 20:30:18.322094", "msg": "", "rc": 0, "start": "2025-12-16 20:30:18.310218", "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.012993", "end": "2025-12-16 20:30:18.352307", "msg": "", "rc": 0, "start": "2025-12-16 20:30:18.339314", "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.003139", "end": "2025-12-16 20:30:18.557932", "msg": "", "rc": 0, "start": "2025-12-16 20:30:18.554793", "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.002758", "end": "2025-12-16 20:29:49.361492", "msg": "", "rc": 0, "start": "2025-12-16 20:29:49.358734", "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.002997", "end": "2025-12-16 20:29:55.739290", "msg": "", "rc": 0, "start": "2025-12-16 20:29:55.736293", "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.003956", "end": "2025-12-16 17:30:18.829453", "msg": "", "rc": 0, "start": "2025-12-16 17:30:18.825497", "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.003946", "end": "2025-12-16 20:30:18.987482", "msg": "", "rc": 0, "start": "2025-12-16 20:30:18.983536", "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.005736", "end": "2025-12-16 20:30:19.231031", "msg": "", "rc": 0, "start": "2025-12-16 20:30:19.225295", "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.027964", "end": "2025-12-16 20:30:19.026637", "msg": "", "rc": 0, "start": "2025-12-16 20:30:18.998673", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.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.004280", "end": "2025-12-16 20:30:19.556968", "msg": "", "rc": 0, "start": "2025-12-16 20:30:19.552688", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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-16 20:30:19.561380", "msg": "", "rc": 0, "start": "2025-12-16 20:30:19.557413", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.004940", "end": "2025-12-16 20:30:19.568235", "msg": "", "rc": 0, "start": "2025-12-16 20:30:19.563295", "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.005881", "end": "2025-12-16 20:30:19.598832", "msg": "", "rc": 0, "start": "2025-12-16 20:30:19.592951", "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.005651", "end": "2025-12-16 20:30:19.615684", "msg": "", "rc": 0, "start": "2025-12-16 20:30:19.610033", "stderr": "", "stderr_lines": [], "stdout": "0.69", "stdout_lines": ["0.69"]}
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.004335", "end": "2025-12-16 20:29:54.334960", "msg": "", "rc": 0, "start": "2025-12-16 20:29:54.330625", "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.005387", "end": "2025-12-16 20:29:48.139635", "msg": "", "rc": 0, "start": "2025-12-16 20:29:48.134248", "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.010424", "end": "2025-12-16 20:30:20.369181", "msg": "", "rc": 0, "start": "2025-12-16 20:30:20.358757", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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.010988", "end": "2025-12-16 20:30:20.373134", "msg": "", "rc": 0, "start": "2025-12-16 20:30:20.362146", "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.005559", "end": "2025-12-16 20:30:20.485577", "msg": "", "rc": 0, "start": "2025-12-16 20:30:20.480018", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.004816", "end": "2025-12-16 20:29:51.307835", "msg": "", "rc": 0, "start": "2025-12-16 20:29:51.303019", "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.006121", "end": "2025-12-16 17:30:20.843029", "msg": "", "rc": 0, "start": "2025-12-16 17:30:20.836908", "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.004270", "end": "2025-12-16 20:29:57.783120", "msg": "", "rc": 0, "start": "2025-12-16 20:29:57.778850", "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.005244", "end": "2025-12-16 20:30:20.926732", "msg": "", "rc": 0, "start": "2025-12-16 20:30:20.921488", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.007881", "end": "2025-12-16 20:30:21.272647", "msg": "", "rc": 0, "start": "2025-12-16 20:30:21.264766", "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.023859", "end": "2025-12-16 20:30:20.932512", "msg": "", "rc": 0, "start": "2025-12-16 20:30:20.908653", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:11 up 21 days, 7:21, 1 user, load average: 0.04, 0.11, 0.09\nDisk Usage: 23%\nMemory Usage: 81.6%\nCPU Load: 0.03\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:11 up 2 days, 10:02, 1 user, load average: 0.22, 0.22, 0.18\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.27\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:11 up 21 days, 7:41, 1 user, load average: 0.68, 0.61, 0.63\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.90\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:11 up 21 days, 8:54, 1 user, load average: 0.75, 0.70, 0.67\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.69\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:11 up 21 days, 9:40, 1 user, load average: 0.00, 0.04, 0.02\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: 20:30:13 up 14 days, 9:56, 1 user, load average: 0.29, 0.17, 0.11\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.33\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 193 days, 12:03, 1 user, load average: 0.24, 0.26, 0.26\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.21\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 193 days, 12:03, 1 user, load average: 0.16, 0.13, 0.15\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.21\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:46 up 10 days, 8:19, 0 user, load average: 0.09, 0.14, 0.10\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:40 up 17 days, 4:31, 0 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:12 up 2 days, 10:01, 1 user, load average: 0.10, 0.08, 0.03\nDisk Usage: 1%\nMemory Usage: 34.4%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:43 up 19 days, 23:24, 0 user, load average: 0.30, 0.52, 0.56\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:29:50 up 16 days, 9:45, 0 user, load average: 0.37, 0.24, 0.25\nDisk Usage: 75%\nMemory Usage: 59.9%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:30PM up 21 days, 7:20, 1 user, load averages: 0.27, 0.23, 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:30:13 up 2 days, 10:01, 1 user, load average: 0.27, 0.09, 0.04\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:30:14 up 22:10, 1 user, load average: 1.29, 1.22, 1.20\nDisk Usage: 1%\nMemory Usage: 20.2%\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-17T01:30:22.177119+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `315ea00ea66748c588a77dbb91d37d20` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:35:00.002310+00:00 |
| **Fin** | 2025-12-17T01:35:21.873967+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: [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.003045", "end": "2025-12-16 20:35:11.101622", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.098577", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 21 days, 7:26, 1 user, load average: 0.06, 0.06, 0.08", "stdout_lines": [" 20:35:11 up 21 days, 7:26, 1 user, load average: 0.06, 0.06, 0.08"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003803", "end": "2025-12-16 20:35:11.119139", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.115336", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 21 days, 9:45, 1 user, load average: 0.08, 0.02, 0.01", "stdout_lines": [" 20:35:11 up 21 days, 9:45, 1 user, load average: 0.08, 0.02, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002921", "end": "2025-12-16 20:35:11.147944", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.145023", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 2 days, 10:07, 1 user, load average: 0.63, 0.33, 0.23", "stdout_lines": [" 20:35:11 up 2 days, 10:07, 1 user, load average: 0.63, 0.33, 0.23"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004031", "end": "2025-12-16 20:35:11.139527", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.135496", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 21 days, 8:59, 1 user, load average: 0.98, 0.83, 0.72", "stdout_lines": [" 20:35:11 up 21 days, 8:59, 1 user, load average: 0.98, 0.83, 0.72"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003628", "end": "2025-12-16 20:34:45.932602", "msg": "", "rc": 0, "start": "2025-12-16 20:34:45.928974", "stderr": "", "stderr_lines": [], "stdout": " 20:34:45 up 10 days, 8:24, 0 user, load average: 0.22, 0.13, 0.10", "stdout_lines": [" 20:34:45 up 10 days, 8:24, 0 user, load average: 0.22, 0.13, 0.10"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008386", "end": "2025-12-16 20:35:11.807237", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.798851", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 193 days, 12:08, 1 user, load average: 0.10, 0.11, 0.13", "stdout_lines": [" 20:35:11 up 193 days, 12:08, 1 user, load average: 0.10, 0.11, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009373", "end": "2025-12-16 20:35:11.838652", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.829279", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 193 days, 12:08, 1 user, load average: 0.30, 0.25, 0.25", "stdout_lines": [" 20:35:11 up 193 days, 12:08, 1 user, load average: 0.30, 0.25, 0.25"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004115", "end": "2025-12-16 20:35:12.116508", "msg": "", "rc": 0, "start": "2025-12-16 20:35:11.112393", "stderr": "", "stderr_lines": [], "stdout": " 20:35:11 up 21 days, 7:46, 1 user, load average: 0.83, 0.72, 0.66", "stdout_lines": [" 20:35:11 up 21 days, 7:46, 1 user, load average: 0.83, 0.72, 0.66"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003748", "end": "2025-12-16 20:34:40.157771", "msg": "", "rc": 0, "start": "2025-12-16 20:34:40.154023", "stderr": "", "stderr_lines": [], "stdout": " 20:34:40 up 17 days, 4:36, 0 user, load average: 0.03, 0.04, 0.00", "stdout_lines": [" 20:34:40 up 17 days, 4:36, 0 user, load average: 0.03, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004838", "end": "2025-12-16 20:35:12.307596", "msg": "", "rc": 0, "start": "2025-12-16 20:35:12.302758", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 2 days, 10:06, 1 user, load average: 0.09, 0.08, 0.04", "stdout_lines": [" 20:35:12 up 2 days, 10:06, 1 user, load average: 0.09, 0.08, 0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003224", "end": "2025-12-16 20:34:43.053600", "msg": "", "rc": 0, "start": "2025-12-16 20:34:43.050376", "stderr": "", "stderr_lines": [], "stdout": " 20:34:43 up 19 days, 23:29, 0 user, load average: 0.93, 0.76, 0.63", "stdout_lines": [" 20:34:43 up 19 days, 23:29, 0 user, load average: 0.93, 0.76, 0.63"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002797", "end": "2025-12-16 20:34:49.478611", "msg": "", "rc": 0, "start": "2025-12-16 20:34:49.475814", "stderr": "", "stderr_lines": [], "stdout": " 20:34:49 up 16 days, 9:50, 0 user, load average: 0.40, 0.27, 0.25", "stdout_lines": [" 20:34:49 up 16 days, 9:50, 0 user, load average: 0.40, 0.27, 0.25"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004273", "end": "2025-12-16 17:35:12.595161", "msg": "", "rc": 0, "start": "2025-12-16 17:35:12.590888", "stderr": "", "stderr_lines": [], "stdout": " 5:35PM up 21 days, 7:24, 1 user, load averages: 0.31, 0.28, 0.22", "stdout_lines": [" 5:35PM up 21 days, 7:24, 1 user, load averages: 0.31, 0.28, 0.22"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019576", "end": "2025-12-16 20:35:12.497963", "msg": "", "rc": 0, "start": "2025-12-16 20:35:12.478387", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 14 days, 10:01, 1 user, load average: 0.26, 0.17, 0.11", "stdout_lines": [" 20:35:12 up 14 days, 10:01, 1 user, load average: 0.26, 0.17, 0.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003690", "end": "2025-12-16 20:35:12.721829", "msg": "", "rc": 0, "start": "2025-12-16 20:35:12.718139", "stderr": "", "stderr_lines": [], "stdout": " 20:35:12 up 2 days, 10:06, 1 user, load average: 0.02, 0.12, 0.08", "stdout_lines": [" 20:35:12 up 2 days, 10:06, 1 user, load average: 0.02, 0.12, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008532", "end": "2025-12-16 20:35:13.119091", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.110559", "stderr": "", "stderr_lines": [], "stdout": " 20:35:13 up 22:15, 1 user, load average: 1.26, 1.20, 1.19", "stdout_lines": [" 20:35:13 up 22:15, 1 user, load average: 1.26, 1.20, 1.19"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004413", "end": "2025-12-16 20:35:13.122205", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.117792", "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.004531", "end": "2025-12-16 20:35:13.147203", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.142672", "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.004933", "end": "2025-12-16 20:35:13.186192", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.181259", "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.004908", "end": "2025-12-16 20:35:13.184613", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.179705", "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.005422", "end": "2025-12-16 20:35:13.212025", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.206603", "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.005170", "end": "2025-12-16 20:34:47.959728", "msg": "", "rc": 0, "start": "2025-12-16 20:34:47.954558", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.013431", "end": "2025-12-16 20:34:41.770379", "msg": "", "rc": 0, "start": "2025-12-16 20:34:41.756948", "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.010573", "end": "2025-12-16 20:35:13.906159", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.895586", "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.012057", "end": "2025-12-16 20:35:13.913237", "msg": "", "rc": 0, "start": "2025-12-16 20:35:13.901180", "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.006395", "end": "2025-12-16 20:35:14.133654", "msg": "", "rc": 0, "start": "2025-12-16 20:35:14.127259", "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-16 20:34:44.959439", "msg": "", "rc": 0, "start": "2025-12-16 20:34:44.954074", "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.005488", "end": "2025-12-16 17:35:14.378630", "msg": "", "rc": 0, "start": "2025-12-16 17:35:14.373142", "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.005426", "end": "2025-12-16 20:34:51.300319", "msg": "", "rc": 0, "start": "2025-12-16 20:34:51.294893", "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.005435", "end": "2025-12-16 20:35:14.549119", "msg": "", "rc": 0, "start": "2025-12-16 20:35:14.543684", "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.025320", "end": "2025-12-16 20:35:14.515263", "msg": "", "rc": 0, "start": "2025-12-16 20:35:14.489943", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019660", "end": "2025-12-16 20:35:15.099947", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.080287", "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.004514", "end": "2025-12-16 20:35:15.039221", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.034707", "stderr": "", "stderr_lines": [], "stdout": "81.5%", "stdout_lines": ["81.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.004159", "end": "2025-12-16 20:35:15.070621", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.066462", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004781", "end": "2025-12-16 20:35:15.079253", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.074472", "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.005112", "end": "2025-12-16 20:35:15.099430", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.094318", "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.006674", "end": "2025-12-16 20:35:15.132562", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.125888", "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.003627", "end": "2025-12-16 20:34:49.848273", "msg": "", "rc": 0, "start": "2025-12-16 20:34:49.844646", "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.004779", "end": "2025-12-16 20:34:43.696158", "msg": "", "rc": 0, "start": "2025-12-16 20:34:43.691379", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010795", "end": "2025-12-16 20:35:15.759899", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.749104", "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.011902", "end": "2025-12-16 20:35:15.792644", "msg": "", "rc": 0, "start": "2025-12-16 20:35:15.780742", "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.005984", "end": "2025-12-16 20:35:16.031278", "msg": "", "rc": 0, "start": "2025-12-16 20:35:16.025294", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.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.005190", "end": "2025-12-16 17:35:16.259895", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:35:16.254705", "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.003603", "end": "2025-12-16 20:34:53.173316", "msg": "", "rc": 0, "start": "2025-12-16 20:34:53.169713", "stderr": "", "stderr_lines": [], "stdout": "60.3%", "stdout_lines": ["60.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.004522", "end": "2025-12-16 20:34:46.889235", "msg": "", "rc": 0, "start": "2025-12-16 20:34:46.884713", "stderr": "", "stderr_lines": [], "stdout": "26.8%", "stdout_lines": ["26.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.005429", "end": "2025-12-16 20:35:16.456877", "msg": "", "rc": 0, "start": "2025-12-16 20:35:16.451448", "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.008466", "end": "2025-12-16 20:35:17.069652", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.061186", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025638", "end": "2025-12-16 20:35:16.432210", "msg": "", "rc": 0, "start": "2025-12-16 20:35:16.406572", "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.005140", "end": "2025-12-16 20:35:16.970088", "msg": "", "rc": 0, "start": "2025-12-16 20:35:16.964948", "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.004899", "end": "2025-12-16 20:35:16.984838", "msg": "", "rc": 0, "start": "2025-12-16 20:35:16.979939", "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.005798", "end": "2025-12-16 20:35:17.006397", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.000599", "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.002894", "end": "2025-12-16 20:35:17.008287", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.005393", "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.006948", "end": "2025-12-16 20:35:17.042865", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.035917", "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.002659", "end": "2025-12-16 20:34:51.777297", "msg": "", "rc": 0, "start": "2025-12-16 20:34:51.774638", "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.003717", "end": "2025-12-16 20:34:45.584843", "msg": "", "rc": 0, "start": "2025-12-16 20:34:45.581126", "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.011954", "end": "2025-12-16 20:35:17.658688", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.646734", "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.013763", "end": "2025-12-16 20:35:17.682410", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.668647", "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.003193", "end": "2025-12-16 20:35:17.956107", "msg": "", "rc": 0, "start": "2025-12-16 20:35:17.952914", "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.002718", "end": "2025-12-16 20:34:48.751702", "msg": "", "rc": 0, "start": "2025-12-16 20:34:48.748984", "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.002614", "end": "2025-12-16 20:34:55.057422", "msg": "", "rc": 0, "start": "2025-12-16 20:34:55.054808", "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.003964", "end": "2025-12-16 17:35:18.154379", "msg": "", "rc": 0, "start": "2025-12-16 17:35:18.150415", "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.003065", "end": "2025-12-16 20:35:18.392746", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.389681", "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.005840", "end": "2025-12-16 20:35:19.010412", "msg": "", "rc": 0, "start": "2025-12-16 20:35:19.004572", "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-16 20:35:18.358438", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.329822", "stderr": "", "stderr_lines": [], "stdout": "35.0°C", "stdout_lines": ["35.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.004174", "end": "2025-12-16 20:35:18.889773", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.885599", "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.004070", "end": "2025-12-16 20:35:18.902176", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.898106", "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.004703", "end": "2025-12-16 20:35:18.912227", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.907524", "stderr": "", "stderr_lines": [], "stdout": "0.94", "stdout_lines": ["0.94"]}
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.006644", "end": "2025-12-16 20:35:18.934777", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.928133", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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-16 20:35:18.958080", "msg": "", "rc": 0, "start": "2025-12-16 20:35:18.952644", "stderr": "", "stderr_lines": [], "stdout": "1.30", "stdout_lines": ["1.30"]}
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.004359", "end": "2025-12-16 20:34:53.686773", "msg": "", "rc": 0, "start": "2025-12-16 20:34:53.682414", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005021", "end": "2025-12-16 20:34:47.483489", "msg": "", "rc": 0, "start": "2025-12-16 20:34:47.478468", "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.010068", "end": "2025-12-16 20:35:19.664578", "msg": "", "rc": 0, "start": "2025-12-16 20:35:19.654510", "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.010999", "end": "2025-12-16 20:35:19.723073", "msg": "", "rc": 0, "start": "2025-12-16 20:35:19.712074", "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.005567", "end": "2025-12-16 20:35:19.861613", "msg": "", "rc": 0, "start": "2025-12-16 20:35:19.856046", "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.004865", "end": "2025-12-16 20:34:50.654416", "msg": "", "rc": 0, "start": "2025-12-16 20:34:50.649551", "stderr": "", "stderr_lines": [], "stdout": "0.94", "stdout_lines": ["0.94"]}
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.004062", "end": "2025-12-16 20:34:57.065500", "msg": "", "rc": 0, "start": "2025-12-16 20:34:57.061438", "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.006055", "end": "2025-12-16 17:35:20.199467", "msg": "", "rc": 0, "start": "2025-12-16 17:35:20.193412", "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.005583", "end": "2025-12-16 20:35:20.289955", "msg": "", "rc": 0, "start": "2025-12-16 20:35:20.284372", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.007434", "end": "2025-12-16 20:35:20.999100", "msg": "", "rc": 0, "start": "2025-12-16 20:35:20.991666", "stderr": "", "stderr_lines": [], "stdout": "1.30", "stdout_lines": ["1.30"]}
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.024390", "end": "2025-12-16 20:35:20.281667", "msg": "", "rc": 0, "start": "2025-12-16 20:35:20.257277", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 2 days, 10:07, 1 user, load average: 0.63, 0.33, 0.23\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.62\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 21 days, 7:26, 1 user, load average: 0.06, 0.06, 0.08\nDisk Usage: 23%\nMemory Usage: 81.5%\nCPU Load: 0.05\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 21 days, 7:46, 1 user, load average: 0.83, 0.72, 0.66\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.94\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 21 days, 8:59, 1 user, load average: 0.98, 0.83, 0.72\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 1.30\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 21 days, 9:45, 1 user, load average: 0.08, 0.02, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 14 days, 10:01, 1 user, load average: 0.26, 0.17, 0.11\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.38\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 193 days, 12:08, 1 user, load average: 0.30, 0.25, 0.25\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.32\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:11 up 193 days, 12:08, 1 user, load average: 0.10, 0.11, 0.13\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.17\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:45 up 10 days, 8:24, 0 user, load average: 0.22, 0.13, 0.10\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:40 up 17 days, 4:36, 0 user, load average: 0.03, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:35:12 up 2 days, 10:06, 1 user, load average: 0.09, 0.08, 0.04\nDisk Usage: 1%\nMemory Usage: 34.6%\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:43 up 19 days, 23:29, 0 user, load average: 0.93, 0.76, 0.63\nDisk Usage: 28%\nMemory Usage: 26.8%\nCPU Load: 0.94\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:34:49 up 16 days, 9:50, 0 user, load average: 0.40, 0.27, 0.25\nDisk Usage: 75%\nMemory Usage: 60.3%\nCPU Load: 0.45\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:35PM up 21 days, 7:24, 1 user, load averages: 0.31, 0.28, 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: 20:35:12 up 2 days, 10:06, 1 user, load average: 0.02, 0.12, 0.08\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: 20:35:13 up 22:15, 1 user, load average: 1.26, 1.20, 1.19\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.30\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-17T01:35:21.926029+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a10fdef0d8bd4ebe989ea601d78e1518` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:40:00.004513+00:00 |
| **Fin** | 2025-12-17T01:40:29.840532+00:00 |
| **Durée** | 29.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: [hp2.i7.home] => {"changed": false, "ping": "pong"}
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: [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.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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003749", "end": "2025-12-16 20:40:14.475963", "msg": "", "rc": 0, "start": "2025-12-16 20:40:14.472214", "stderr": "", "stderr_lines": [], "stdout": " 20:40:14 up 21 days, 9:50, 1 user, load average: 0.02, 0.01, 0.00", "stdout_lines": [" 20:40:14 up 21 days, 9:50, 1 user, load average: 0.02, 0.01, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003246", "end": "2025-12-16 20:40:14.483133", "msg": "", "rc": 0, "start": "2025-12-16 20:40:14.479887", "stderr": "", "stderr_lines": [], "stdout": " 20:40:14 up 21 days, 7:51, 1 user, load average: 0.50, 0.73, 0.70", "stdout_lines": [" 20:40:14 up 21 days, 7:51, 1 user, load average: 0.50, 0.73, 0.70"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002831", "end": "2025-12-16 20:40:14.504943", "msg": "", "rc": 0, "start": "2025-12-16 20:40:14.502112", "stderr": "", "stderr_lines": [], "stdout": " 20:40:14 up 2 days, 10:12, 1 user, load average: 0.33, 0.25, 0.21", "stdout_lines": [" 20:40:14 up 2 days, 10:12, 1 user, load average: 0.33, 0.25, 0.21"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006850", "end": "2025-12-16 20:40:14.514949", "msg": "", "rc": 0, "start": "2025-12-16 20:40:14.508099", "stderr": "", "stderr_lines": [], "stdout": " 20:40:14 up 21 days, 9:04, 1 user, load average: 0.81, 0.78, 0.73", "stdout_lines": [" 20:40:14 up 21 days, 9:04, 1 user, load average: 0.81, 0.78, 0.73"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002972", "end": "2025-12-16 20:39:49.529309", "msg": "", "rc": 0, "start": "2025-12-16 20:39:49.526337", "stderr": "", "stderr_lines": [], "stdout": " 20:39:49 up 10 days, 8:29, 0 user, load average: 0.04, 0.13, 0.10", "stdout_lines": [" 20:39:49 up 10 days, 8:29, 0 user, load average: 0.04, 0.13, 0.10"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004143", "end": "2025-12-16 20:40:15.478549", "msg": "", "rc": 0, "start": "2025-12-16 20:40:14.474406", "stderr": "", "stderr_lines": [], "stdout": " 20:40:14 up 21 days, 7:31, 1 user, load average: 0.11, 0.11, 0.09", "stdout_lines": [" 20:40:14 up 21 days, 7:31, 1 user, load average: 0.11, 0.11, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008428", "end": "2025-12-16 20:40:15.413334", "msg": "", "rc": 0, "start": "2025-12-16 20:40:15.404906", "stderr": "", "stderr_lines": [], "stdout": " 20:40:15 up 193 days, 12:13, 1 user, load average: 0.26, 0.16, 0.13", "stdout_lines": [" 20:40:15 up 193 days, 12:13, 1 user, load average: 0.26, 0.16, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009412", "end": "2025-12-16 20:40:15.436495", "msg": "", "rc": 0, "start": "2025-12-16 20:40:15.427083", "stderr": "", "stderr_lines": [], "stdout": " 20:40:15 up 193 days, 12:13, 1 user, load average: 0.25, 0.19, 0.22", "stdout_lines": [" 20:40:15 up 193 days, 12:13, 1 user, load average: 0.25, 0.19, 0.22"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003792", "end": "2025-12-16 20:39:43.932651", "msg": "", "rc": 0, "start": "2025-12-16 20:39:43.928859", "stderr": "", "stderr_lines": [], "stdout": " 20:39:43 up 17 days, 4:41, 0 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 20:39:43 up 17 days, 4:41, 0 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004863", "end": "2025-12-16 20:40:16.108351", "msg": "", "rc": 0, "start": "2025-12-16 20:40:16.103488", "stderr": "", "stderr_lines": [], "stdout": " 20:40:16 up 2 days, 10:11, 1 user, load average: 0.07, 0.04, 0.02", "stdout_lines": [" 20:40:16 up 2 days, 10:11, 1 user, load average: 0.07, 0.04, 0.02"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002727", "end": "2025-12-16 20:39:53.033830", "msg": "", "rc": 0, "start": "2025-12-16 20:39:53.031103", "stderr": "", "stderr_lines": [], "stdout": " 20:39:53 up 16 days, 9:55, 0 user, load average: 0.23, 0.26, 0.25", "stdout_lines": [" 20:39:53 up 16 days, 9:55, 0 user, load average: 0.23, 0.26, 0.25"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019278", "end": "2025-12-16 20:40:16.063987", "msg": "", "rc": 0, "start": "2025-12-16 20:40:16.044709", "stderr": "", "stderr_lines": [], "stdout": " 20:40:16 up 14 days, 10:06, 1 user, load average: 0.14, 0.15, 0.11", "stdout_lines": [" 20:40:16 up 14 days, 10:06, 1 user, load average: 0.14, 0.15, 0.11"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003270", "end": "2025-12-16 20:39:46.842684", "msg": "", "rc": 0, "start": "2025-12-16 20:39:46.839414", "stderr": "", "stderr_lines": [], "stdout": " 20:39:46 up 19 days, 23:34, 0 user, load average: 0.62, 0.62, 0.60", "stdout_lines": [" 20:39:46 up 19 days, 23:34, 0 user, load average: 0.62, 0.62, 0.60"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004116", "end": "2025-12-16 17:40:16.534351", "msg": "", "rc": 0, "start": "2025-12-16 17:40:16.530235", "stderr": "", "stderr_lines": [], "stdout": " 5:40PM up 21 days, 7:30, 1 user, load averages: 0.04, 0.17, 0.18", "stdout_lines": [" 5:40PM up 21 days, 7:30, 1 user, load averages: 0.04, 0.17, 0.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003640", "end": "2025-12-16 20:40:16.744612", "msg": "", "rc": 0, "start": "2025-12-16 20:40:16.740972", "stderr": "", "stderr_lines": [], "stdout": " 20:40:16 up 2 days, 10:11, 1 user, load average: 0.04, 0.08, 0.07", "stdout_lines": [" 20:40:16 up 2 days, 10:11, 1 user, load average: 0.04, 0.08, 0.07"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.033233", "end": "2025-12-16 20:40:17.897415", "msg": "", "rc": 0, "start": "2025-12-16 20:40:17.864182", "stderr": "", "stderr_lines": [], "stdout": " 20:40:17 up 22:20, 1 user, load average: 1.36, 1.22, 1.19", "stdout_lines": [" 20:40:17 up 22:20, 1 user, load average: 1.36, 1.22, 1.19"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004406", "end": "2025-12-16 20:40:17.612385", "msg": "", "rc": 0, "start": "2025-12-16 20:40:17.607979", "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.004194", "end": "2025-12-16 20:40:17.620506", "msg": "", "rc": 0, "start": "2025-12-16 20:40:17.616312", "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.004770", "end": "2025-12-16 20:40:17.661307", "msg": "", "rc": 0, "start": "2025-12-16 20:40:17.656537", "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.004908", "end": "2025-12-16 20:40:17.731687", "msg": "", "rc": 0, "start": "2025-12-16 20:40:17.726779", "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.006895", "end": "2025-12-16 20:40:17.737043", "msg": "", "rc": 0, "start": "2025-12-16 20:40:17.730148", "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.005178", "end": "2025-12-16 20:39:52.579647", "msg": "", "rc": 0, "start": "2025-12-16 20:39:52.574469", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005946", "end": "2025-12-16 20:39:46.405830", "msg": "", "rc": 0, "start": "2025-12-16 20:39:46.399884", "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.010537", "end": "2025-12-16 20:40:18.535771", "msg": "", "rc": 0, "start": "2025-12-16 20:40:18.525234", "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.011554", "end": "2025-12-16 20:40:18.557720", "msg": "", "rc": 0, "start": "2025-12-16 20:40:18.546166", "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.005657", "end": "2025-12-16 20:40:18.894273", "msg": "", "rc": 0, "start": "2025-12-16 20:40:18.888616", "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.005184", "end": "2025-12-16 20:39:49.705857", "msg": "", "rc": 0, "start": "2025-12-16 20:39:49.700673", "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.005368", "end": "2025-12-16 17:40:19.141936", "msg": "", "rc": 0, "start": "2025-12-16 17:40:19.136568", "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.004813", "end": "2025-12-16 20:39:56.069874", "msg": "", "rc": 0, "start": "2025-12-16 20:39:56.065061", "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.025547", "end": "2025-12-16 20:40:19.108894", "msg": "", "rc": 0, "start": "2025-12-16 20:40:19.083347", "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.005366", "end": "2025-12-16 20:40:19.458011", "msg": "", "rc": 0, "start": "2025-12-16 20:40:19.452645", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.034021", "end": "2025-12-16 20:40:20.822427", "msg": "", "rc": 0, "start": "2025-12-16 20:40:20.788406", "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.004251", "end": "2025-12-16 20:40:20.416377", "msg": "", "rc": 0, "start": "2025-12-16 20:40:20.412126", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.0%"]}
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-16 20:40:20.426994", "msg": "", "rc": 0, "start": "2025-12-16 20:40:20.422566", "stderr": "", "stderr_lines": [], "stdout": "81.6%", "stdout_lines": ["81.6%"]}
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.005038", "end": "2025-12-16 20:40:20.467233", "msg": "", "rc": 0, "start": "2025-12-16 20:40:20.462195", "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.005098", "end": "2025-12-16 20:40:20.517981", "msg": "", "rc": 0, "start": "2025-12-16 20:40:20.512883", "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.005523", "end": "2025-12-16 20:40:20.496152", "msg": "", "rc": 0, "start": "2025-12-16 20:40:20.490629", "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.003879", "end": "2025-12-16 20:39:55.386868", "msg": "", "rc": 0, "start": "2025-12-16 20:39:55.382989", "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.004312", "end": "2025-12-16 20:39:49.166622", "msg": "", "rc": 0, "start": "2025-12-16 20:39:49.162310", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010856", "end": "2025-12-16 20:40:21.258233", "msg": "", "rc": 0, "start": "2025-12-16 20:40:21.247377", "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.013072", "end": "2025-12-16 20:40:21.295829", "msg": "", "rc": 0, "start": "2025-12-16 20:40:21.282757", "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.005796", "end": "2025-12-16 20:40:21.704891", "msg": "", "rc": 0, "start": "2025-12-16 20:40:21.699095", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004330", "end": "2025-12-16 20:39:52.487673", "msg": "", "rc": 0, "start": "2025-12-16 20:39:52.483343", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005355", "end": "2025-12-16 17:40:21.880778", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:40:21.875423", "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.003984", "end": "2025-12-16 20:39:58.792711", "msg": "", "rc": 0, "start": "2025-12-16 20:39:58.788727", "stderr": "", "stderr_lines": [], "stdout": "60.1%", "stdout_lines": ["60.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.025822", "end": "2025-12-16 20:40:21.962755", "msg": "", "rc": 0, "start": "2025-12-16 20:40:21.936933", "stderr": "", "stderr_lines": [], "stdout": "21.2%", "stdout_lines": ["21.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.005417", "end": "2025-12-16 20:40:22.247738", "msg": "", "rc": 0, "start": "2025-12-16 20:40:22.242321", "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.026110", "end": "2025-12-16 20:40:22.628315", "msg": "", "rc": 0, "start": "2025-12-16 20:40:22.602205", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.005136", "end": "2025-12-16 20:40:23.194471", "msg": "", "rc": 0, "start": "2025-12-16 20:40:23.189335", "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-16 20:40:23.204055", "msg": "", "rc": 0, "start": "2025-12-16 20:40:23.199201", "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.005796", "end": "2025-12-16 20:40:23.239827", "msg": "", "rc": 0, "start": "2025-12-16 20:40:23.234031", "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.006893", "end": "2025-12-16 20:40:23.287373", "msg": "", "rc": 0, "start": "2025-12-16 20:40:23.280480", "stderr": "", "stderr_lines": [], "stdout": "52.0°C", "stdout_lines": ["52.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.003238", "end": "2025-12-16 20:40:23.310540", "msg": "", "rc": 0, "start": "2025-12-16 20:40:23.307302", "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.002464", "end": "2025-12-16 20:39:58.200310", "msg": "", "rc": 0, "start": "2025-12-16 20:39:58.197846", "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.003026", "end": "2025-12-16 20:39:51.998721", "msg": "", "rc": 0, "start": "2025-12-16 20:39:51.995695", "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.013105", "end": "2025-12-16 20:40:24.165773", "msg": "", "rc": 0, "start": "2025-12-16 20:40:24.152668", "stderr": "", "stderr_lines": [], "stdout": "35.5°C", "stdout_lines": ["35.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.011839", "end": "2025-12-16 20:40:24.182756", "msg": "", "rc": 0, "start": "2025-12-16 20:40:24.170917", "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.003722", "end": "2025-12-16 20:40:24.533030", "msg": "", "rc": 0, "start": "2025-12-16 20:40:24.529308", "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.003076", "end": "2025-12-16 20:39:55.316261", "msg": "", "rc": 0, "start": "2025-12-16 20:39:55.313185", "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.003775", "end": "2025-12-16 17:40:24.842539", "msg": "", "rc": 0, "start": "2025-12-16 17:40:24.838764", "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.003003", "end": "2025-12-16 20:40:01.756159", "msg": "", "rc": 0, "start": "2025-12-16 20:40:01.753156", "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.028525", "end": "2025-12-16 20:40:24.815772", "msg": "", "rc": 0, "start": "2025-12-16 20:40:24.787247", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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.003156", "end": "2025-12-16 20:40:25.086797", "msg": "", "rc": 0, "start": "2025-12-16 20:40:25.083641", "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.010218", "end": "2025-12-16 20:40:25.542904", "msg": "", "rc": 0, "start": "2025-12-16 20:40:25.532686", "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.004299", "end": "2025-12-16 20:40:25.977666", "msg": "", "rc": 0, "start": "2025-12-16 20:40:25.973367", "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.004768", "end": "2025-12-16 20:40:25.995893", "msg": "", "rc": 0, "start": "2025-12-16 20:40:25.991125", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.004198", "end": "2025-12-16 20:40:26.012122", "msg": "", "rc": 0, "start": "2025-12-16 20:40:26.007924", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.005598", "end": "2025-12-16 20:40:26.038389", "msg": "", "rc": 0, "start": "2025-12-16 20:40:26.032791", "stderr": "", "stderr_lines": [], "stdout": "0.84", "stdout_lines": ["0.84"]}
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.005530", "end": "2025-12-16 20:40:26.079723", "msg": "", "rc": 0, "start": "2025-12-16 20:40:26.074193", "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.004346", "end": "2025-12-16 20:40:00.960695", "msg": "", "rc": 0, "start": "2025-12-16 20:40:00.956349", "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.005362", "end": "2025-12-16 20:39:54.807972", "msg": "", "rc": 0, "start": "2025-12-16 20:39:54.802610", "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.010379", "end": "2025-12-16 20:40:26.865273", "msg": "", "rc": 0, "start": "2025-12-16 20:40:26.854894", "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.011140", "end": "2025-12-16 20:40:26.903319", "msg": "", "rc": 0, "start": "2025-12-16 20:40:26.892179", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.005553", "end": "2025-12-16 20:40:27.305605", "msg": "", "rc": 0, "start": "2025-12-16 20:40:27.300052", "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.005137", "end": "2025-12-16 20:39:58.195618", "msg": "", "rc": 0, "start": "2025-12-16 20:39:58.190481", "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.004185", "end": "2025-12-16 20:40:04.482006", "msg": "", "rc": 0, "start": "2025-12-16 20:40:04.477821", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.006766", "end": "2025-12-16 17:40:27.627231", "msg": "", "rc": 0, "start": "2025-12-16 17:40:27.620465", "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.024367", "end": "2025-12-16 20:40:27.536002", "msg": "", "rc": 0, "start": "2025-12-16 20:40:27.511635", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005299", "end": "2025-12-16 20:40:27.973935", "msg": "", "rc": 0, "start": "2025-12-16 20:40:27.968636", "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.009701", "end": "2025-12-16 20:40:28.381220", "msg": "", "rc": 0, "start": "2025-12-16 20:40:28.371519", "stderr": "", "stderr_lines": [], "stdout": "1.67", "stdout_lines": ["1.67"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:14 up 21 days, 7:31, 1 user, load average: 0.11, 0.11, 0.09\nDisk Usage: 23%\nMemory Usage: 81.6%\nCPU Load: 0.09\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:14 up 2 days, 10:12, 1 user, load average: 0.33, 0.25, 0.21\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.28\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:14 up 21 days, 7:51, 1 user, load average: 0.50, 0.73, 0.70\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.50\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:14 up 21 days, 9:04, 1 user, load average: 0.81, 0.78, 0.73\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.84\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:14 up 21 days, 9:50, 1 user, load average: 0.02, 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:40:16 up 14 days, 10:06, 1 user, load average: 0.14, 0.15, 0.11\nDisk Usage: 21%\nMemory Usage: 21.2%\nCPU Load: 0.20\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:15 up 193 days, 12:13, 1 user, load average: 0.25, 0.19, 0.22\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.36\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:15 up 193 days, 12:13, 1 user, load average: 0.26, 0.16, 0.13\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.22\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:39:49 up 10 days, 8:29, 0 user, load average: 0.04, 0.13, 0.10\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:39:43 up 17 days, 4:41, 0 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:40:16 up 2 days, 10:11, 1 user, load average: 0.07, 0.04, 0.02\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:39:46 up 19 days, 23:34, 0 user, load average: 0.62, 0.62, 0.60\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.63\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:39:53 up 16 days, 9:55, 0 user, load average: 0.23, 0.26, 0.25\nDisk Usage: 75%\nMemory Usage: 60.1%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:40PM up 21 days, 7:30, 1 user, load averages: 0.04, 0.17, 0.18\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:40:16 up 2 days, 10:11, 1 user, load average: 0.04, 0.08, 0.07\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: 20:40:17 up 22:20, 1 user, load average: 1.36, 1.22, 1.19\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.67\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-17T01:40:29.942877+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `b5a9e95c232f49d68b75b968eea1b76e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:45:00.000441+00:00 |
| **Fin** | 2025-12-17T01:45:21.824531+00:00 |
| **Durée** | 21.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: [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.004040", "end": "2025-12-16 20:45:11.099522", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.095482", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 21 days, 9:55, 1 user, load average: 0.07, 0.02, 0.00", "stdout_lines": [" 20:45:11 up 21 days, 9:55, 1 user, load average: 0.07, 0.02, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003428", "end": "2025-12-16 20:45:11.103299", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.099871", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 21 days, 7:56, 1 user, load average: 0.94, 0.77, 0.71", "stdout_lines": [" 20:45:11 up 21 days, 7:56, 1 user, load average: 0.94, 0.77, 0.71"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003882", "end": "2025-12-16 20:45:11.118824", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.114942", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 21 days, 9:09, 1 user, load average: 1.30, 0.85, 0.76", "stdout_lines": [" 20:45:11 up 21 days, 9:09, 1 user, load average: 1.30, 0.85, 0.76"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002996", "end": "2025-12-16 20:45:11.127188", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.124192", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 2 days, 10:17, 1 user, load average: 1.12, 0.60, 0.34", "stdout_lines": [" 20:45:11 up 2 days, 10:17, 1 user, load average: 1.12, 0.60, 0.34"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002778", "end": "2025-12-16 20:44:45.938348", "msg": "", "rc": 0, "start": "2025-12-16 20:44:45.935570", "stderr": "", "stderr_lines": [], "stdout": " 20:44:45 up 10 days, 8:34, 0 user, load average: 0.17, 0.16, 0.11", "stdout_lines": [" 20:44:45 up 10 days, 8:34, 0 user, load average: 0.17, 0.16, 0.11"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008575", "end": "2025-12-16 20:45:11.801648", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.793073", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 193 days, 12:18, 1 user, load average: 0.21, 0.15, 0.12", "stdout_lines": [" 20:45:11 up 193 days, 12:18, 1 user, load average: 0.21, 0.15, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009287", "end": "2025-12-16 20:45:11.837609", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.828322", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 193 days, 12:18, 1 user, load average: 0.35, 0.26, 0.24", "stdout_lines": [" 20:45:11 up 193 days, 12:18, 1 user, load average: 0.35, 0.26, 0.24"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004133", "end": "2025-12-16 20:45:12.080095", "msg": "", "rc": 0, "start": "2025-12-16 20:45:11.075962", "stderr": "", "stderr_lines": [], "stdout": " 20:45:11 up 21 days, 7:36, 1 user, load average: 0.15, 0.13, 0.10", "stdout_lines": [" 20:45:11 up 21 days, 7:36, 1 user, load average: 0.15, 0.13, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003637", "end": "2025-12-16 20:44:40.183570", "msg": "", "rc": 0, "start": "2025-12-16 20:44:40.179933", "stderr": "", "stderr_lines": [], "stdout": " 20:44:40 up 17 days, 4:46, 0 user, load average: 0.06, 0.03, 0.00", "stdout_lines": [" 20:44:40 up 17 days, 4:46, 0 user, load average: 0.06, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004724", "end": "2025-12-16 20:45:12.341900", "msg": "", "rc": 0, "start": "2025-12-16 20:45:12.337176", "stderr": "", "stderr_lines": [], "stdout": " 20:45:12 up 2 days, 10:16, 1 user, load average: 0.02, 0.07, 0.03", "stdout_lines": [" 20:45:12 up 2 days, 10:16, 1 user, load average: 0.02, 0.07, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003195", "end": "2025-12-16 20:44:43.087801", "msg": "", "rc": 0, "start": "2025-12-16 20:44:43.084606", "stderr": "", "stderr_lines": [], "stdout": " 20:44:43 up 19 days, 23:39, 0 user, load average: 0.44, 0.52, 0.56", "stdout_lines": [" 20:44:43 up 19 days, 23:39, 0 user, load average: 0.44, 0.52, 0.56"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002890", "end": "2025-12-16 20:44:49.467076", "msg": "", "rc": 0, "start": "2025-12-16 20:44:49.464186", "stderr": "", "stderr_lines": [], "stdout": " 20:44:49 up 16 days, 10:00, 0 user, load average: 0.22, 0.29, 0.26", "stdout_lines": [" 20:44:49 up 16 days, 10:00, 0 user, load average: 0.22, 0.29, 0.26"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019483", "end": "2025-12-16 20:45:12.492459", "msg": "", "rc": 0, "start": "2025-12-16 20:45:12.472976", "stderr": "", "stderr_lines": [], "stdout": " 20:45:12 up 14 days, 10:11, 1 user, load average: 0.31, 0.17, 0.11", "stdout_lines": [" 20:45:12 up 14 days, 10:11, 1 user, load average: 0.31, 0.17, 0.11"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004253", "end": "2025-12-16 17:45:12.643408", "msg": "", "rc": 0, "start": "2025-12-16 17:45:12.639155", "stderr": "", "stderr_lines": [], "stdout": " 5:45PM up 21 days, 7:34, 1 user, load averages: 0.20, 0.19, 0.17", "stdout_lines": [" 5:45PM up 21 days, 7:34, 1 user, load averages: 0.20, 0.19, 0.17"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005130", "end": "2025-12-16 20:45:12.865003", "msg": "", "rc": 0, "start": "2025-12-16 20:45:12.859873", "stderr": "", "stderr_lines": [], "stdout": " 20:45:12 up 22:25, 1 user, load average: 1.25, 1.19, 1.18", "stdout_lines": [" 20:45:12 up 22:25, 1 user, load average: 1.25, 1.19, 1.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003713", "end": "2025-12-16 20:45:12.781008", "msg": "", "rc": 0, "start": "2025-12-16 20:45:12.777295", "stderr": "", "stderr_lines": [], "stdout": " 20:45:12 up 2 days, 10:16, 1 user, load average: 0.00, 0.02, 0.04", "stdout_lines": [" 20:45:12 up 2 days, 10:16, 1 user, load average: 0.00, 0.02, 0.04"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004312", "end": "2025-12-16 20:45:13.190495", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.186183", "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.004092", "end": "2025-12-16 20:45:13.216368", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.212276", "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.004574", "end": "2025-12-16 20:45:13.229477", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.224903", "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.004571", "end": "2025-12-16 20:45:13.254088", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.249517", "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.005737", "end": "2025-12-16 20:45:13.276058", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.270321", "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.005395", "end": "2025-12-16 20:44:48.042958", "msg": "", "rc": 0, "start": "2025-12-16 20:44:48.037563", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005693", "end": "2025-12-16 20:44:41.830622", "msg": "", "rc": 0, "start": "2025-12-16 20:44:41.824929", "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.010686", "end": "2025-12-16 20:45:13.999872", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.989186", "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.011507", "end": "2025-12-16 20:45:14.010238", "msg": "", "rc": 0, "start": "2025-12-16 20:45:13.998731", "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.005732", "end": "2025-12-16 20:45:14.245053", "msg": "", "rc": 0, "start": "2025-12-16 20:45:14.239321", "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.004905", "end": "2025-12-16 20:44:44.998067", "msg": "", "rc": 0, "start": "2025-12-16 20:44:44.993162", "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.005991", "end": "2025-12-16 17:45:14.476193", "msg": "", "rc": 0, "start": "2025-12-16 17:45:14.470202", "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-16 20:44:51.389516", "msg": "", "rc": 0, "start": "2025-12-16 20:44:51.384807", "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.005337", "end": "2025-12-16 20:45:14.671881", "msg": "", "rc": 0, "start": "2025-12-16 20:45:14.666544", "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.025351", "end": "2025-12-16 20:45:14.591660", "msg": "", "rc": 0, "start": "2025-12-16 20:45:14.566309", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.009213", "end": "2025-12-16 20:45:14.893351", "msg": "", "rc": 0, "start": "2025-12-16 20:45:14.884138", "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.004451", "end": "2025-12-16 20:45:15.126356", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.121905", "stderr": "", "stderr_lines": [], "stdout": "79.7%", "stdout_lines": ["79.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.004271", "end": "2025-12-16 20:45:15.151318", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.147047", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004603", "end": "2025-12-16 20:45:15.178666", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.174063", "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.005238", "end": "2025-12-16 20:45:15.185073", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.179835", "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.005618", "end": "2025-12-16 20:45:15.200503", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.194885", "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.004305", "end": "2025-12-16 20:44:49.963792", "msg": "", "rc": 0, "start": "2025-12-16 20:44:49.959487", "stderr": "", "stderr_lines": [], "stdout": "72.0%", "stdout_lines": ["72.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.004346", "end": "2025-12-16 20:44:43.730264", "msg": "", "rc": 0, "start": "2025-12-16 20:44:43.725918", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.011303", "end": "2025-12-16 20:45:15.847430", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.836127", "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.012040", "end": "2025-12-16 20:45:15.853729", "msg": "", "rc": 0, "start": "2025-12-16 20:45:15.841689", "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.006036", "end": "2025-12-16 20:45:16.171259", "msg": "", "rc": 0, "start": "2025-12-16 20:45:16.165223", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.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.005225", "end": "2025-12-16 17:45:16.326735", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:45:16.321510", "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.006838", "end": "2025-12-16 20:44:46.954857", "msg": "", "rc": 0, "start": "2025-12-16 20:44:46.948019", "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.004125", "end": "2025-12-16 20:44:53.275069", "msg": "", "rc": 0, "start": "2025-12-16 20:44:53.270944", "stderr": "", "stderr_lines": [], "stdout": "59.7%", "stdout_lines": ["59.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.005343", "end": "2025-12-16 20:45:16.608543", "msg": "", "rc": 0, "start": "2025-12-16 20:45:16.603200", "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.025821", "end": "2025-12-16 20:45:16.523833", "msg": "", "rc": 0, "start": "2025-12-16 20:45:16.498012", "stderr": "", "stderr_lines": [], "stdout": "19.5%", "stdout_lines": ["19.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.007982", "end": "2025-12-16 20:45:16.938776", "msg": "", "rc": 0, "start": "2025-12-16 20:45:16.930794", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.005571", "end": "2025-12-16 20:45:17.134327", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.128756", "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.005159", "end": "2025-12-16 20:45:17.155859", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.150700", "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.006220", "end": "2025-12-16 20:45:17.146279", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.140059", "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.003540", "end": "2025-12-16 20:45:17.200439", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.196899", "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.007100", "end": "2025-12-16 20:45:17.220525", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.213425", "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.002527", "end": "2025-12-16 20:44:51.935736", "msg": "", "rc": 0, "start": "2025-12-16 20:44:51.933209", "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.003308", "end": "2025-12-16 20:44:45.771889", "msg": "", "rc": 0, "start": "2025-12-16 20:44:45.768581", "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-16 20:45:17.846009", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.834079", "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.012923", "end": "2025-12-16 20:45:17.883713", "msg": "", "rc": 0, "start": "2025-12-16 20:45:17.870790", "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.003182", "end": "2025-12-16 20:45:18.121658", "msg": "", "rc": 0, "start": "2025-12-16 20:45:18.118476", "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.002886", "end": "2025-12-16 20:44:55.237306", "msg": "", "rc": 0, "start": "2025-12-16 20:44:55.234420", "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.003896", "end": "2025-12-16 17:45:18.364548", "msg": "", "rc": 0, "start": "2025-12-16 17:45:18.360652", "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.003036", "end": "2025-12-16 20:44:48.980331", "msg": "", "rc": 0, "start": "2025-12-16 20:44:48.977295", "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.002888", "end": "2025-12-16 20:45:18.540605", "msg": "", "rc": 0, "start": "2025-12-16 20:45:18.537717", "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.005191", "end": "2025-12-16 20:45:18.978557", "msg": "", "rc": 0, "start": "2025-12-16 20:45:18.973366", "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.028759", "end": "2025-12-16 20:45:18.546536", "msg": "", "rc": 0, "start": "2025-12-16 20:45:18.517777", "stderr": "", "stderr_lines": [], "stdout": "36.2°C", "stdout_lines": ["36.2°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.004372", "end": "2025-12-16 20:45:19.100415", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.096043", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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-16 20:45:19.129463", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.125262", "stderr": "", "stderr_lines": [], "stdout": "1.10", "stdout_lines": ["1.10"]}
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.004546", "end": "2025-12-16 20:45:19.151467", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.146921", "stderr": "", "stderr_lines": [], "stdout": "0.87", "stdout_lines": ["0.87"]}
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.005293", "end": "2025-12-16 20:45:19.160721", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.155428", "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.005689", "end": "2025-12-16 20:45:19.187038", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.181349", "stderr": "", "stderr_lines": [], "stdout": "1.33", "stdout_lines": ["1.33"]}
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.004127", "end": "2025-12-16 20:44:53.921685", "msg": "", "rc": 0, "start": "2025-12-16 20:44:53.917558", "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.005411", "end": "2025-12-16 20:44:47.732322", "msg": "", "rc": 0, "start": "2025-12-16 20:44:47.726911", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.010121", "end": "2025-12-16 20:45:19.923199", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.913078", "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.011262", "end": "2025-12-16 20:45:19.945873", "msg": "", "rc": 0, "start": "2025-12-16 20:45:19.934611", "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.005548", "end": "2025-12-16 20:45:20.134688", "msg": "", "rc": 0, "start": "2025-12-16 20:45:20.129140", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.004898", "end": "2025-12-16 20:44:50.908122", "msg": "", "rc": 0, "start": "2025-12-16 20:44:50.903224", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
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.006914", "end": "2025-12-16 17:45:20.435958", "msg": "", "rc": 0, "start": "2025-12-16 17:45:20.429044", "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.005982", "end": "2025-12-16 20:44:57.356870", "msg": "", "rc": 0, "start": "2025-12-16 20:44:57.350888", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005276", "end": "2025-12-16 20:45:20.580575", "msg": "", "rc": 0, "start": "2025-12-16 20:45:20.575299", "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.024390", "end": "2025-12-16 20:45:20.483685", "msg": "", "rc": 0, "start": "2025-12-16 20:45:20.459295", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.009288", "end": "2025-12-16 20:45:20.998238", "msg": "", "rc": 0, "start": "2025-12-16 20:45:20.988950", "stderr": "", "stderr_lines": [], "stdout": "1.55", "stdout_lines": ["1.55"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 2 days, 10:17, 1 user, load average: 1.12, 0.60, 0.34\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 1.10\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 21 days, 7:36, 1 user, load average: 0.15, 0.13, 0.10\nDisk Usage: 23%\nMemory Usage: 79.7%\nCPU Load: 0.14\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 21 days, 7:56, 1 user, load average: 0.94, 0.77, 0.71\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.87\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 21 days, 9:09, 1 user, load average: 1.30, 0.85, 0.76\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 1.33\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 21 days, 9:55, 1 user, load average: 0.07, 0.02, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:12 up 14 days, 10:11, 1 user, load average: 0.31, 0.17, 0.11\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.42\nCPU Temp: 36.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 193 days, 12:18, 1 user, load average: 0.35, 0.26, 0.24\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.38\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:11 up 193 days, 12:18, 1 user, load average: 0.21, 0.15, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.19\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:44:45 up 10 days, 8:34, 0 user, load average: 0.17, 0.16, 0.11\nDisk Usage: 47%\nMemory Usage: 72.0%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:44:40 up 17 days, 4:46, 0 user, load average: 0.06, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:12 up 2 days, 10:16, 1 user, load average: 0.02, 0.07, 0.03\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:44:43 up 19 days, 23:39, 0 user, load average: 0.44, 0.52, 0.56\nDisk Usage: 28%\nMemory Usage: 25.8%\nCPU Load: 0.48\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:44:49 up 16 days, 10:00, 0 user, load average: 0.22, 0.29, 0.26\nDisk Usage: 75%\nMemory Usage: 59.7%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:45PM up 21 days, 7:34, 1 user, load averages: 0.20, 0.19, 0.17\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:45:12 up 2 days, 10:16, 1 user, load average: 0.00, 0.02, 0.04\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:45:12 up 22:25, 1 user, load average: 1.25, 1.19, 1.18\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.55\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-17T01:45:21.864133+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6d40ff72a72e4de0a123cc71d8df0ee0` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:50:00.007861+00:00 |
| **Fin** | 2025-12-17T01:50:22.118341+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: [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: [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.003580", "end": "2025-12-16 20:50:11.105772", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.102192", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 21 days, 10:00, 1 user, load average: 0.08, 0.02, 0.00", "stdout_lines": [" 20:50:11 up 21 days, 10:00, 1 user, load average: 0.08, 0.02, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003353", "end": "2025-12-16 20:50:11.110555", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.107202", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 21 days, 8:01, 1 user, load average: 0.87, 0.86, 0.76", "stdout_lines": [" 20:50:11 up 21 days, 8:01, 1 user, load average: 0.87, 0.86, 0.76"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004113", "end": "2025-12-16 20:50:11.123986", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.119873", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 21 days, 9:14, 1 user, load average: 0.60, 0.74, 0.74", "stdout_lines": [" 20:50:11 up 21 days, 9:14, 1 user, load average: 0.60, 0.74, 0.74"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002929", "end": "2025-12-16 20:50:11.134731", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.131802", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 2 days, 10:22, 1 user, load average: 0.24, 0.36, 0.31", "stdout_lines": [" 20:50:11 up 2 days, 10:22, 1 user, load average: 0.24, 0.36, 0.31"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003242", "end": "2025-12-16 20:49:45.891930", "msg": "", "rc": 0, "start": "2025-12-16 20:49:45.888688", "stderr": "", "stderr_lines": [], "stdout": " 20:49:45 up 10 days, 8:39, 0 user, load average: 0.10, 0.16, 0.11", "stdout_lines": [" 20:49:45 up 10 days, 8:39, 0 user, load average: 0.10, 0.16, 0.11"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008400", "end": "2025-12-16 20:50:11.814612", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.806212", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 193 days, 12:23, 1 user, load average: 0.09, 0.10, 0.10", "stdout_lines": [" 20:50:11 up 193 days, 12:23, 1 user, load average: 0.09, 0.10, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009297", "end": "2025-12-16 20:50:11.832545", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.823248", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 193 days, 12:23, 1 user, load average: 0.11, 0.19, 0.21", "stdout_lines": [" 20:50:11 up 193 days, 12:23, 1 user, load average: 0.11, 0.19, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004155", "end": "2025-12-16 20:50:12.091558", "msg": "", "rc": 0, "start": "2025-12-16 20:50:11.087403", "stderr": "", "stderr_lines": [], "stdout": " 20:50:11 up 21 days, 7:41, 1 user, load average: 0.10, 0.13, 0.09", "stdout_lines": [" 20:50:11 up 21 days, 7:41, 1 user, load average: 0.10, 0.13, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003528", "end": "2025-12-16 20:49:40.108149", "msg": "", "rc": 0, "start": "2025-12-16 20:49:40.104621", "stderr": "", "stderr_lines": [], "stdout": " 20:49:40 up 17 days, 4:51, 0 user, load average: 0.16, 0.05, 0.01", "stdout_lines": [" 20:49:40 up 17 days, 4:51, 0 user, load average: 0.16, 0.05, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004690", "end": "2025-12-16 20:50:12.315243", "msg": "", "rc": 0, "start": "2025-12-16 20:50:12.310553", "stderr": "", "stderr_lines": [], "stdout": " 20:50:12 up 2 days, 10:21, 1 user, load average: 0.08, 0.06, 0.02", "stdout_lines": [" 20:50:12 up 2 days, 10:21, 1 user, load average: 0.08, 0.06, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003053", "end": "2025-12-16 20:49:43.032087", "msg": "", "rc": 0, "start": "2025-12-16 20:49:43.029034", "stderr": "", "stderr_lines": [], "stdout": " 20:49:43 up 19 days, 23:44, 0 user, load average: 0.39, 0.44, 0.51", "stdout_lines": [" 20:49:43 up 19 days, 23:44, 0 user, load average: 0.39, 0.44, 0.51"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004241", "end": "2025-12-16 17:50:12.553931", "msg": "", "rc": 0, "start": "2025-12-16 17:50:12.549690", "stderr": "", "stderr_lines": [], "stdout": " 5:50PM up 21 days, 7:39, 1 user, load averages: 0.12, 0.15, 0.16", "stdout_lines": [" 5:50PM up 21 days, 7:39, 1 user, load averages: 0.12, 0.15, 0.16"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002655", "end": "2025-12-16 20:49:49.452872", "msg": "", "rc": 0, "start": "2025-12-16 20:49:49.450217", "stderr": "", "stderr_lines": [], "stdout": " 20:49:49 up 16 days, 10:05, 0 user, load average: 0.20, 0.21, 0.23", "stdout_lines": [" 20:49:49 up 16 days, 10:05, 0 user, load average: 0.20, 0.21, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019783", "end": "2025-12-16 20:50:12.512398", "msg": "", "rc": 0, "start": "2025-12-16 20:50:12.492615", "stderr": "", "stderr_lines": [], "stdout": " 20:50:12 up 14 days, 10:16, 1 user, load average: 0.18, 0.14, 0.10", "stdout_lines": [" 20:50:12 up 14 days, 10:16, 1 user, load average: 0.18, 0.14, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006325", "end": "2025-12-16 20:50:13.217778", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.211453", "stderr": "", "stderr_lines": [], "stdout": " 20:50:13 up 22:31, 1 user, load average: 1.36, 1.44, 1.30", "stdout_lines": [" 20:50:13 up 22:31, 1 user, load average: 1.36, 1.44, 1.30"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003696", "end": "2025-12-16 20:50:12.750801", "msg": "", "rc": 0, "start": "2025-12-16 20:50:12.747105", "stderr": "", "stderr_lines": [], "stdout": " 20:50:12 up 2 days, 10:21, 1 user, load average: 0.21, 0.05, 0.03", "stdout_lines": [" 20:50:12 up 2 days, 10:21, 1 user, load average: 0.21, 0.05, 0.03"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004101", "end": "2025-12-16 20:50:13.171705", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.167604", "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.004375", "end": "2025-12-16 20:50:13.185996", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.181621", "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.004716", "end": "2025-12-16 20:50:13.197483", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.192767", "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.004931", "end": "2025-12-16 20:50:13.208276", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.203345", "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.005630", "end": "2025-12-16 20:50:13.220322", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.214692", "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.005410", "end": "2025-12-16 20:49:47.955863", "msg": "", "rc": 0, "start": "2025-12-16 20:49:47.950453", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005596", "end": "2025-12-16 20:49:41.750928", "msg": "", "rc": 0, "start": "2025-12-16 20:49:41.745332", "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-16 20:50:13.917650", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.907116", "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.011643", "end": "2025-12-16 20:50:13.942170", "msg": "", "rc": 0, "start": "2025-12-16 20:50:13.930527", "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.005768", "end": "2025-12-16 20:50:14.155535", "msg": "", "rc": 0, "start": "2025-12-16 20:50:14.149767", "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.005164", "end": "2025-12-16 20:49:44.922106", "msg": "", "rc": 0, "start": "2025-12-16 20:49:44.916942", "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.004719", "end": "2025-12-16 20:49:51.306569", "msg": "", "rc": 0, "start": "2025-12-16 20:49:51.301850", "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.005571", "end": "2025-12-16 17:50:14.422812", "msg": "", "rc": 0, "start": "2025-12-16 17:50:14.417241", "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.005355", "end": "2025-12-16 20:50:14.604595", "msg": "", "rc": 0, "start": "2025-12-16 20:50:14.599240", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010767", "end": "2025-12-16 20:50:15.218877", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.208110", "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.025675", "end": "2025-12-16 20:50:14.568390", "msg": "", "rc": 0, "start": "2025-12-16 20:50:14.542715", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
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.004110", "end": "2025-12-16 20:50:15.104666", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.100556", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.1%"]}
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-16 20:50:15.103133", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.098689", "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.004988", "end": "2025-12-16 20:50:15.113231", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.108243", "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.004444", "end": "2025-12-16 20:50:15.154594", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.150150", "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.005327", "end": "2025-12-16 20:50:15.173173", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.167846", "stderr": "", "stderr_lines": [], "stdout": "59.7%", "stdout_lines": ["59.7%"]}
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.004138", "end": "2025-12-16 20:49:49.887451", "msg": "", "rc": 0, "start": "2025-12-16 20:49:49.883313", "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.004298", "end": "2025-12-16 20:49:43.694090", "msg": "", "rc": 0, "start": "2025-12-16 20:49:43.689792", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011053", "end": "2025-12-16 20:50:15.805410", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.794357", "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.011819", "end": "2025-12-16 20:50:15.837919", "msg": "", "rc": 0, "start": "2025-12-16 20:50:15.826100", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005991", "end": "2025-12-16 20:50:16.067019", "msg": "", "rc": 0, "start": "2025-12-16 20:50:16.061028", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003939", "end": "2025-12-16 20:49:46.860880", "msg": "", "rc": 0, "start": "2025-12-16 20:49:46.856941", "stderr": "", "stderr_lines": [], "stdout": "27.7%", "stdout_lines": ["27.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.003793", "end": "2025-12-16 20:49:53.188463", "msg": "", "rc": 0, "start": "2025-12-16 20:49:53.184670", "stderr": "", "stderr_lines": [], "stdout": "60.2%", "stdout_lines": ["60.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.005173", "end": "2025-12-16 17:50:16.322886", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:50:16.317713", "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.005403", "end": "2025-12-16 20:50:16.504111", "msg": "", "rc": 0, "start": "2025-12-16 20:50:16.498708", "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.007598", "end": "2025-12-16 20:50:17.203437", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.195839", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025822", "end": "2025-12-16 20:50:16.496462", "msg": "", "rc": 0, "start": "2025-12-16 20:50:16.470640", "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.005063", "end": "2025-12-16 20:50:17.006702", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.001639", "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.005121", "end": "2025-12-16 20:50:17.036597", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.031476", "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.005386", "end": "2025-12-16 20:50:17.042342", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.036956", "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.002539", "end": "2025-12-16 20:50:17.067971", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.065432", "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.007341", "end": "2025-12-16 20:50:17.092422", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.085081", "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.002529", "end": "2025-12-16 20:49:51.837196", "msg": "", "rc": 0, "start": "2025-12-16 20:49:51.834667", "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.005023", "end": "2025-12-16 20:49:45.663516", "msg": "", "rc": 0, "start": "2025-12-16 20:49:45.658493", "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.011764", "end": "2025-12-16 20:50:17.763111", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.751347", "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.012915", "end": "2025-12-16 20:50:17.772555", "msg": "", "rc": 0, "start": "2025-12-16 20:50:17.759640", "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.003171", "end": "2025-12-16 20:50:18.029556", "msg": "", "rc": 0, "start": "2025-12-16 20:50:18.026385", "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-16 17:50:18.259985", "msg": "", "rc": 0, "start": "2025-12-16 17:50:18.255948", "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.002986", "end": "2025-12-16 20:49:48.860403", "msg": "", "rc": 0, "start": "2025-12-16 20:49:48.857417", "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.002866", "end": "2025-12-16 20:49:55.156677", "msg": "", "rc": 0, "start": "2025-12-16 20:49:55.153811", "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.003065", "end": "2025-12-16 20:50:18.453702", "msg": "", "rc": 0, "start": "2025-12-16 20:50:18.450637", "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.005125", "end": "2025-12-16 20:50:19.277092", "msg": "", "rc": 0, "start": "2025-12-16 20:50:19.271967", "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.028627", "end": "2025-12-16 20:50:18.433765", "msg": "", "rc": 0, "start": "2025-12-16 20:50:18.405138", "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.004301", "end": "2025-12-16 20:50:18.956694", "msg": "", "rc": 0, "start": "2025-12-16 20:50:18.952393", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.004187", "end": "2025-12-16 20:50:18.962290", "msg": "", "rc": 0, "start": "2025-12-16 20:50:18.958103", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004758", "end": "2025-12-16 20:50:18.988033", "msg": "", "rc": 0, "start": "2025-12-16 20:50:18.983275", "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.004866", "end": "2025-12-16 20:50:19.011848", "msg": "", "rc": 0, "start": "2025-12-16 20:50:19.006982", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005566", "end": "2025-12-16 20:50:19.034200", "msg": "", "rc": 0, "start": "2025-12-16 20:50:19.028634", "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.004153", "end": "2025-12-16 20:49:53.779933", "msg": "", "rc": 0, "start": "2025-12-16 20:49:53.775780", "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.006160", "end": "2025-12-16 20:49:47.581965", "msg": "", "rc": 0, "start": "2025-12-16 20:49:47.575805", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.010190", "end": "2025-12-16 20:50:19.759053", "msg": "", "rc": 0, "start": "2025-12-16 20:50:19.748863", "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.011211", "end": "2025-12-16 20:50:19.772621", "msg": "", "rc": 0, "start": "2025-12-16 20:50:19.761410", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.005740", "end": "2025-12-16 20:50:20.004550", "msg": "", "rc": 0, "start": "2025-12-16 20:50:19.998810", "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.005015", "end": "2025-12-16 20:49:50.788119", "msg": "", "rc": 0, "start": "2025-12-16 20:49:50.783104", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
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.006034", "end": "2025-12-16 17:50:20.263964", "msg": "", "rc": 0, "start": "2025-12-16 17:50:20.257930", "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.004234", "end": "2025-12-16 20:49:57.167242", "msg": "", "rc": 0, "start": "2025-12-16 20:49:57.163008", "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.005671", "end": "2025-12-16 20:50:20.436704", "msg": "", "rc": 0, "start": "2025-12-16 20:50:20.431033", "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.008311", "end": "2025-12-16 20:50:21.287933", "msg": "", "rc": 0, "start": "2025-12-16 20:50:21.279622", "stderr": "", "stderr_lines": [], "stdout": "1.41", "stdout_lines": ["1.41"]}
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-16 20:50:20.364227", "msg": "", "rc": 0, "start": "2025-12-16 20:50:20.339832", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:11 up 2 days, 10:22, 1 user, load average: 0.24, 0.36, 0.31\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.28\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:11 up 21 days, 7:41, 1 user, load average: 0.10, 0.13, 0.09\nDisk Usage: 23%\nMemory Usage: 80.1%\nCPU Load: 0.17\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:11 up 21 days, 8:01, 1 user, load average: 0.87, 0.86, 0.76\nDisk Usage: 14%\nMemory Usage: 49.0%\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:50:11 up 21 days, 9:14, 1 user, load average: 0.60, 0.74, 0.74\nDisk Usage: 14%\nMemory Usage: 59.7%\nCPU Load: 0.58\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:11 up 21 days, 10:00, 1 user, load average: 0.08, 0.02, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:12 up 14 days, 10:16, 1 user, load average: 0.18, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.38\nCPU Temp: 35.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:11 up 193 days, 12:23, 1 user, load average: 0.11, 0.19, 0.21\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.25\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:11 up 193 days, 12:23, 1 user, load average: 0.09, 0.10, 0.10\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: 20:49:45 up 10 days, 8:39, 0 user, load average: 0.10, 0.16, 0.11\nDisk Usage: 47%\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:49:40 up 17 days, 4:51, 0 user, load average: 0.16, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:50:12 up 2 days, 10:21, 1 user, load average: 0.08, 0.06, 0.02\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:49:43 up 19 days, 23:44, 0 user, load average: 0.39, 0.44, 0.51\nDisk Usage: 28%\nMemory Usage: 27.7%\nCPU Load: 0.52\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:49:49 up 16 days, 10:05, 0 user, load average: 0.20, 0.21, 0.23\nDisk Usage: 75%\nMemory Usage: 60.2%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:50PM up 21 days, 7:39, 1 user, load averages: 0.12, 0.15, 0.16\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:50:12 up 2 days, 10:21, 1 user, load average: 0.21, 0.05, 0.03\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: 20:50:13 up 22:31, 1 user, load average: 1.36, 1.44, 1.30\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.41\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-17T01:50:22.177130+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `f7bdf67c4bb844b8a9b4291e9e56c95f` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T01:55:00.000903+00:00 |
| **Fin** | 2025-12-17T01:55:22.933114+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: [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.003114", "end": "2025-12-16 20:55:11.868743", "msg": "", "rc": 0, "start": "2025-12-16 20:55:11.865629", "stderr": "", "stderr_lines": [], "stdout": " 20:55:11 up 21 days, 7:46, 1 user, load average: 0.18, 0.13, 0.10", "stdout_lines": [" 20:55:11 up 21 days, 7:46, 1 user, load average: 0.18, 0.13, 0.10"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004036", "end": "2025-12-16 20:55:11.884032", "msg": "", "rc": 0, "start": "2025-12-16 20:55:11.879996", "stderr": "", "stderr_lines": [], "stdout": " 20:55:11 up 21 days, 10:05, 1 user, load average: 0.38, 0.13, 0.04", "stdout_lines": [" 20:55:11 up 21 days, 10:05, 1 user, load average: 0.38, 0.13, 0.04"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003470", "end": "2025-12-16 20:55:11.887629", "msg": "", "rc": 0, "start": "2025-12-16 20:55:11.884159", "stderr": "", "stderr_lines": [], "stdout": " 20:55:11 up 21 days, 8:06, 1 user, load average: 0.75, 0.81, 0.76", "stdout_lines": [" 20:55:11 up 21 days, 8:06, 1 user, load average: 0.75, 0.81, 0.76"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003875", "end": "2025-12-16 20:55:11.904798", "msg": "", "rc": 0, "start": "2025-12-16 20:55:11.900923", "stderr": "", "stderr_lines": [], "stdout": " 20:55:11 up 21 days, 9:19, 1 user, load average: 0.78, 0.75, 0.74", "stdout_lines": [" 20:55:11 up 21 days, 9:19, 1 user, load average: 0.78, 0.75, 0.74"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002905", "end": "2025-12-16 20:55:11.911250", "msg": "", "rc": 0, "start": "2025-12-16 20:55:11.908345", "stderr": "", "stderr_lines": [], "stdout": " 20:55:11 up 2 days, 10:27, 1 user, load average: 0.35, 0.30, 0.28", "stdout_lines": [" 20:55:11 up 2 days, 10:27, 1 user, load average: 0.35, 0.30, 0.28"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003128", "end": "2025-12-16 20:54:46.647102", "msg": "", "rc": 0, "start": "2025-12-16 20:54:46.643974", "stderr": "", "stderr_lines": [], "stdout": " 20:54:46 up 10 days, 8:44, 0 user, load average: 0.31, 0.25, 0.16", "stdout_lines": [" 20:54:46 up 10 days, 8:44, 0 user, load average: 0.31, 0.25, 0.16"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003542", "end": "2025-12-16 20:54:40.443058", "msg": "", "rc": 0, "start": "2025-12-16 20:54:40.439516", "stderr": "", "stderr_lines": [], "stdout": " 20:54:40 up 17 days, 4:56, 0 user, load average: 0.09, 0.09, 0.03", "stdout_lines": [" 20:54:40 up 17 days, 4:56, 0 user, load average: 0.09, 0.09, 0.03"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008460", "end": "2025-12-16 20:55:12.575568", "msg": "", "rc": 0, "start": "2025-12-16 20:55:12.567108", "stderr": "", "stderr_lines": [], "stdout": " 20:55:12 up 193 days, 12:28, 1 user, load average: 0.03, 0.08, 0.08", "stdout_lines": [" 20:55:12 up 193 days, 12:28, 1 user, load average: 0.03, 0.08, 0.08"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009101", "end": "2025-12-16 20:55:12.599947", "msg": "", "rc": 0, "start": "2025-12-16 20:55:12.590846", "stderr": "", "stderr_lines": [], "stdout": " 20:55:12 up 193 days, 12:28, 1 user, load average: 0.14, 0.18, 0.20", "stdout_lines": [" 20:55:12 up 193 days, 12:28, 1 user, load average: 0.14, 0.18, 0.20"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004741", "end": "2025-12-16 20:55:12.851552", "msg": "", "rc": 0, "start": "2025-12-16 20:55:12.846811", "stderr": "", "stderr_lines": [], "stdout": " 20:55:12 up 2 days, 10:26, 1 user, load average: 0.05, 0.06, 0.02", "stdout_lines": [" 20:55:12 up 2 days, 10:26, 1 user, load average: 0.05, 0.06, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003244", "end": "2025-12-16 20:54:43.625801", "msg": "", "rc": 0, "start": "2025-12-16 20:54:43.622557", "stderr": "", "stderr_lines": [], "stdout": " 20:54:43 up 19 days, 23:49, 0 user, load average: 0.65, 0.52, 0.53", "stdout_lines": [" 20:54:43 up 19 days, 23:49, 0 user, load average: 0.65, 0.52, 0.53"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003411", "end": "2025-12-16 20:54:49.956478", "msg": "", "rc": 0, "start": "2025-12-16 20:54:49.953067", "stderr": "", "stderr_lines": [], "stdout": " 20:54:49 up 16 days, 10:10, 0 user, load average: 0.22, 0.19, 0.21", "stdout_lines": [" 20:54:49 up 16 days, 10:10, 0 user, load average: 0.22, 0.19, 0.21"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004485", "end": "2025-12-16 17:55:13.103744", "msg": "", "rc": 0, "start": "2025-12-16 17:55:13.099259", "stderr": "", "stderr_lines": [], "stdout": " 5:55PM up 21 days, 7:45, 1 user, load averages: 0.31, 0.27, 0.20", "stdout_lines": [" 5:55PM up 21 days, 7:45, 1 user, load averages: 0.31, 0.27, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003742", "end": "2025-12-16 20:55:13.323672", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.319930", "stderr": "", "stderr_lines": [], "stdout": " 20:55:13 up 2 days, 10:26, 1 user, load average: 0.00, 0.02, 0.01", "stdout_lines": [" 20:55:13 up 2 days, 10:26, 1 user, load average: 0.00, 0.02, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007403", "end": "2025-12-16 20:55:14.335006", "msg": "", "rc": 0, "start": "2025-12-16 20:55:14.327603", "stderr": "", "stderr_lines": [], "stdout": " 20:55:14 up 22:36, 1 user, load average: 2.89, 1.69, 1.40", "stdout_lines": [" 20:55:14 up 22:36, 1 user, load average: 2.89, 1.69, 1.40"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019891", "end": "2025-12-16 20:55:13.282212", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.262321", "stderr": "", "stderr_lines": [], "stdout": " 20:55:13 up 14 days, 10:21, 1 user, load average: 0.21, 0.14, 0.10", "stdout_lines": [" 20:55:13 up 14 days, 10:21, 1 user, load average: 0.21, 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.004395", "end": "2025-12-16 20:55:13.823433", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.819038", "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-16 20:55:13.842224", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.837962", "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.004953", "end": "2025-12-16 20:55:13.836732", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.831779", "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.005697", "end": "2025-12-16 20:55:13.867045", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.861348", "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.004752", "end": "2025-12-16 20:55:13.872622", "msg": "", "rc": 0, "start": "2025-12-16 20:55:13.867870", "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.006176", "end": "2025-12-16 20:54:48.624394", "msg": "", "rc": 0, "start": "2025-12-16 20:54:48.618218", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005613", "end": "2025-12-16 20:54:42.407679", "msg": "", "rc": 0, "start": "2025-12-16 20:54:42.402066", "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.010555", "end": "2025-12-16 20:55:14.580586", "msg": "", "rc": 0, "start": "2025-12-16 20:55:14.570031", "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-16 20:55:14.612463", "msg": "", "rc": 0, "start": "2025-12-16 20:55:14.600862", "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.005687", "end": "2025-12-16 20:55:14.839130", "msg": "", "rc": 0, "start": "2025-12-16 20:55:14.833443", "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.005523", "end": "2025-12-16 20:54:45.605109", "msg": "", "rc": 0, "start": "2025-12-16 20:54:45.599586", "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.005332", "end": "2025-12-16 17:55:15.122924", "msg": "", "rc": 0, "start": "2025-12-16 17:55:15.117592", "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.005152", "end": "2025-12-16 20:54:52.015081", "msg": "", "rc": 0, "start": "2025-12-16 20:54:52.009929", "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.005624", "end": "2025-12-16 20:55:15.295912", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.290288", "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.025163", "end": "2025-12-16 20:55:15.221181", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.196018", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.008116", "end": "2025-12-16 20:55:16.392473", "msg": "", "rc": 0, "start": "2025-12-16 20:55:16.384357", "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.004325", "end": "2025-12-16 20:55:15.784684", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.780359", "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.004161", "end": "2025-12-16 20:55:15.803076", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.798915", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005171", "end": "2025-12-16 20:55:15.816071", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.810900", "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.004594", "end": "2025-12-16 20:55:15.835648", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.831054", "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.005736", "end": "2025-12-16 20:55:15.847160", "msg": "", "rc": 0, "start": "2025-12-16 20:55:15.841424", "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.003840", "end": "2025-12-16 20:54:50.590559", "msg": "", "rc": 0, "start": "2025-12-16 20:54:50.586719", "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.008812", "end": "2025-12-16 20:54:44.402203", "msg": "", "rc": 0, "start": "2025-12-16 20:54:44.393391", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010945", "end": "2025-12-16 20:55:16.494240", "msg": "", "rc": 0, "start": "2025-12-16 20:55:16.483295", "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.011947", "end": "2025-12-16 20:55:16.508691", "msg": "", "rc": 0, "start": "2025-12-16 20:55:16.496744", "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.006838", "end": "2025-12-16 20:55:16.798284", "msg": "", "rc": 0, "start": "2025-12-16 20:55:16.791446", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004235", "end": "2025-12-16 20:54:47.598790", "msg": "", "rc": 0, "start": "2025-12-16 20:54:47.594555", "stderr": "", "stderr_lines": [], "stdout": "27.7%", "stdout_lines": ["27.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.003815", "end": "2025-12-16 20:54:53.897451", "msg": "", "rc": 0, "start": "2025-12-16 20:54:53.893636", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.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.005190", "end": "2025-12-16 17:55:17.026656", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 17:55:17.021466", "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.005435", "end": "2025-12-16 20:55:17.282046", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.276611", "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.025967", "end": "2025-12-16 20:55:17.195552", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.169585", "stderr": "", "stderr_lines": [], "stdout": "19.7%", "stdout_lines": ["19.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.010717", "end": "2025-12-16 20:55:18.499561", "msg": "", "rc": 0, "start": "2025-12-16 20:55:18.488844", "stderr": "", "stderr_lines": [], "stdout": "42.4%", "stdout_lines": ["42.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.005091", "end": "2025-12-16 20:55:17.910762", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.905671", "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.005469", "end": "2025-12-16 20:55:17.911428", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.905959", "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.004982", "end": "2025-12-16 20:55:17.946661", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.941679", "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.007030", "end": "2025-12-16 20:55:17.950586", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.943556", "stderr": "", "stderr_lines": [], "stdout": "52.0°C", "stdout_lines": ["52.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.003129", "end": "2025-12-16 20:55:17.972150", "msg": "", "rc": 0, "start": "2025-12-16 20:55:17.969021", "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.002571", "end": "2025-12-16 20:54:53.023770", "msg": "", "rc": 0, "start": "2025-12-16 20:54:53.021199", "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.004032", "end": "2025-12-16 20:54:46.815085", "msg": "", "rc": 0, "start": "2025-12-16 20:54:46.811053", "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.013042", "end": "2025-12-16 20:55:18.990315", "msg": "", "rc": 0, "start": "2025-12-16 20:55:18.977273", "stderr": "", "stderr_lines": [], "stdout": "35.5°C", "stdout_lines": ["35.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.011854", "end": "2025-12-16 20:55:19.151290", "msg": "", "rc": 0, "start": "2025-12-16 20:55:19.139436", "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.003192", "end": "2025-12-16 20:55:19.284715", "msg": "", "rc": 0, "start": "2025-12-16 20:55:19.281523", "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.003043", "end": "2025-12-16 20:54:50.186240", "msg": "", "rc": 0, "start": "2025-12-16 20:54:50.183197", "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.003968", "end": "2025-12-16 17:55:19.631426", "msg": "", "rc": 0, "start": "2025-12-16 17:55:19.627458", "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.002727", "end": "2025-12-16 20:54:56.543697", "msg": "", "rc": 0, "start": "2025-12-16 20:54:56.540970", "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.002978", "end": "2025-12-16 20:55:19.726747", "msg": "", "rc": 0, "start": "2025-12-16 20:55:19.723769", "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.028572", "end": "2025-12-16 20:55:19.626579", "msg": "", "rc": 0, "start": "2025-12-16 20:55:19.598007", "stderr": "", "stderr_lines": [], "stdout": "35.1°C", "stdout_lines": ["35.1°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.005423", "end": "2025-12-16 20:55:20.027506", "msg": "", "rc": 0, "start": "2025-12-16 20:55:20.022083", "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.004273", "end": "2025-12-16 20:55:20.357090", "msg": "", "rc": 0, "start": "2025-12-16 20:55:20.352817", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.004598", "end": "2025-12-16 20:55:20.386734", "msg": "", "rc": 0, "start": "2025-12-16 20:55:20.382136", "stderr": "", "stderr_lines": [], "stdout": "0.88", "stdout_lines": ["0.88"]}
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.004329", "end": "2025-12-16 20:55:20.385115", "msg": "", "rc": 0, "start": "2025-12-16 20:55:20.380786", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
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.004970", "end": "2025-12-16 20:55:20.408947", "msg": "", "rc": 0, "start": "2025-12-16 20:55:20.403977", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.005524", "end": "2025-12-16 20:55:20.429774", "msg": "", "rc": 0, "start": "2025-12-16 20:55:20.424250", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.004361", "end": "2025-12-16 20:54:55.157058", "msg": "", "rc": 0, "start": "2025-12-16 20:54:55.152697", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005827", "end": "2025-12-16 20:54:48.971789", "msg": "", "rc": 0, "start": "2025-12-16 20:54:48.965962", "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.009978", "end": "2025-12-16 20:55:21.182048", "msg": "", "rc": 0, "start": "2025-12-16 20:55:21.172070", "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.011247", "end": "2025-12-16 20:55:21.225548", "msg": "", "rc": 0, "start": "2025-12-16 20:55:21.214301", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.005704", "end": "2025-12-16 20:55:21.383591", "msg": "", "rc": 0, "start": "2025-12-16 20:55:21.377887", "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.005409", "end": "2025-12-16 20:54:52.188931", "msg": "", "rc": 0, "start": "2025-12-16 20:54:52.183522", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
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.006031", "end": "2025-12-16 17:55:21.702823", "msg": "", "rc": 0, "start": "2025-12-16 17:55:21.696792", "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.004536", "end": "2025-12-16 20:54:58.597635", "msg": "", "rc": 0, "start": "2025-12-16 20:54:58.593099", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005285", "end": "2025-12-16 20:55:21.825549", "msg": "", "rc": 0, "start": "2025-12-16 20:55:21.820264", "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.024748", "end": "2025-12-16 20:55:21.754674", "msg": "", "rc": 0, "start": "2025-12-16 20:55:21.729926", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.007807", "end": "2025-12-16 20:55:22.098763", "msg": "", "rc": 0, "start": "2025-12-16 20:55:22.090956", "stderr": "", "stderr_lines": [], "stdout": "3.14", "stdout_lines": ["3.14"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:11 up 2 days, 10:27, 1 user, load average: 0.35, 0.30, 0.28\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.45\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:11 up 21 days, 7:46, 1 user, load average: 0.18, 0.13, 0.10\nDisk Usage: 23%\nMemory Usage: 80.5%\nCPU Load: 0.15\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:11 up 21 days, 8:06, 1 user, load average: 0.75, 0.81, 0.76\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.88\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:11 up 21 days, 10:05, 1 user, load average: 0.38, 0.13, 0.04\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:13 up 14 days, 10:21, 1 user, load average: 0.21, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.7%\nCPU Load: 0.25\nCPU Temp: 35.1°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:11 up 21 days, 9:19, 1 user, load average: 0.78, 0.75, 0.74\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.80\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:12 up 193 days, 12:28, 1 user, load average: 0.14, 0.18, 0.20\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.12\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:12 up 193 days, 12:28, 1 user, load average: 0.03, 0.08, 0.08\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.10\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:54:46 up 10 days, 8:44, 0 user, load average: 0.31, 0.25, 0.16\nDisk Usage: 47%\nMemory Usage: 71.2%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:54:40 up 17 days, 4:56, 0 user, load average: 0.09, 0.09, 0.03\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:55:12 up 2 days, 10:26, 1 user, load average: 0.05, 0.06, 0.02\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:54:49 up 16 days, 10:10, 0 user, load average: 0.22, 0.19, 0.21\nDisk Usage: 75%\nMemory Usage: 59.4%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:54:43 up 19 days, 23:49, 0 user, load average: 0.65, 0.52, 0.53\nDisk Usage: 28%\nMemory Usage: 27.7%\nCPU Load: 0.60\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 5:55PM up 21 days, 7:45, 1 user, load averages: 0.31, 0.27, 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:55:13 up 2 days, 10:26, 1 user, load average: 0.00, 0.02, 0.01\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: 20:55:14 up 22:36, 1 user, load average: 2.89, 1.69, 1.40\nDisk Usage: 1%\nMemory Usage: 42.4%\nCPU Load: 3.14\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-17T01:55:22.968916+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `4c7c005ba44f48be869f4faf7d2d7a07` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T02:00:00.002266+00:00 |
| **Fin** | 2025-12-17T02:00:22.958818+00:00 |
| **Durée** | 23.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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003571", "end": "2025-12-16 21:00:12.341188", "msg": "", "rc": 0, "start": "2025-12-16 21:00:12.337617", "stderr": "", "stderr_lines": [], "stdout": " 21:00:12 up 21 days, 10:10, 1 user, load average: 0.00, 0.04, 0.01", "stdout_lines": [" 21:00:12 up 21 days, 10:10, 1 user, load average: 0.00, 0.04, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002843", "end": "2025-12-16 21:00:12.360559", "msg": "", "rc": 0, "start": "2025-12-16 21:00:12.357716", "stderr": "", "stderr_lines": [], "stdout": " 21:00:12 up 2 days, 10:32, 1 user, load average: 0.29, 0.26, 0.26", "stdout_lines": [" 21:00:12 up 2 days, 10:32, 1 user, load average: 0.29, 0.26, 0.26"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003523", "end": "2025-12-16 21:00:12.369837", "msg": "", "rc": 0, "start": "2025-12-16 21:00:12.366314", "stderr": "", "stderr_lines": [], "stdout": " 21:00:12 up 21 days, 8:11, 1 user, load average: 1.07, 0.75, 0.74", "stdout_lines": [" 21:00:12 up 21 days, 8:11, 1 user, load average: 1.07, 0.75, 0.74"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003912", "end": "2025-12-16 21:00:12.361360", "msg": "", "rc": 0, "start": "2025-12-16 21:00:12.357448", "stderr": "", "stderr_lines": [], "stdout": " 21:00:12 up 21 days, 9:24, 1 user, load average: 0.55, 0.75, 0.74", "stdout_lines": [" 21:00:12 up 21 days, 9:24, 1 user, load average: 0.55, 0.75, 0.74"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002850", "end": "2025-12-16 20:59:47.120420", "msg": "", "rc": 0, "start": "2025-12-16 20:59:47.117570", "stderr": "", "stderr_lines": [], "stdout": " 20:59:47 up 10 days, 8:49, 0 user, load average: 0.13, 0.21, 0.16", "stdout_lines": [" 20:59:47 up 10 days, 8:49, 0 user, load average: 0.13, 0.21, 0.16"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008497", "end": "2025-12-16 21:00:13.034222", "msg": "", "rc": 0, "start": "2025-12-16 21:00:13.025725", "stderr": "", "stderr_lines": [], "stdout": " 21:00:13 up 193 days, 12:33, 1 user, load average: 0.16, 0.15, 0.11", "stdout_lines": [" 21:00:13 up 193 days, 12:33, 1 user, load average: 0.16, 0.15, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009176", "end": "2025-12-16 21:00:13.060391", "msg": "", "rc": 0, "start": "2025-12-16 21:00:13.051215", "stderr": "", "stderr_lines": [], "stdout": " 21:00:13 up 193 days, 12:33, 1 user, load average: 0.16, 0.16, 0.18", "stdout_lines": [" 21:00:13 up 193 days, 12:33, 1 user, load average: 0.16, 0.16, 0.18"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004175", "end": "2025-12-16 21:00:13.329696", "msg": "", "rc": 0, "start": "2025-12-16 21:00:12.325521", "stderr": "", "stderr_lines": [], "stdout": " 21:00:12 up 21 days, 7:51, 1 user, load average: 0.07, 0.08, 0.08", "stdout_lines": [" 21:00:12 up 21 days, 7:51, 1 user, load average: 0.07, 0.08, 0.08"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003576", "end": "2025-12-16 20:59:41.346536", "msg": "", "rc": 0, "start": "2025-12-16 20:59:41.342960", "stderr": "", "stderr_lines": [], "stdout": " 20:59:41 up 17 days, 5:01, 0 user, load average: 0.01, 0.05, 0.02", "stdout_lines": [" 20:59:41 up 17 days, 5:01, 0 user, load average: 0.01, 0.05, 0.02"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004596", "end": "2025-12-16 21:00:13.535933", "msg": "", "rc": 0, "start": "2025-12-16 21:00:13.531337", "stderr": "", "stderr_lines": [], "stdout": " 21:00:13 up 2 days, 10:31, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 21:00:13 up 2 days, 10:31, 1 user, load average: 0.04, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003189", "end": "2025-12-16 20:59:44.249108", "msg": "", "rc": 0, "start": "2025-12-16 20:59:44.245919", "stderr": "", "stderr_lines": [], "stdout": " 20:59:44 up 19 days, 23:54, 0 user, load average: 0.58, 0.54, 0.54", "stdout_lines": [" 20:59:44 up 19 days, 23:54, 0 user, load average: 0.58, 0.54, 0.54"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002851", "end": "2025-12-16 20:59:50.674115", "msg": "", "rc": 0, "start": "2025-12-16 20:59:50.671264", "stderr": "", "stderr_lines": [], "stdout": " 20:59:50 up 16 days, 10:15, 0 user, load average: 0.22, 0.20, 0.19", "stdout_lines": [" 20:59:50 up 16 days, 10:15, 0 user, load average: 0.22, 0.20, 0.19"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004308", "end": "2025-12-16 18:00:13.808398", "msg": "", "rc": 0, "start": "2025-12-16 18:00:13.804090", "stderr": "", "stderr_lines": [], "stdout": " 6:00PM up 21 days, 7:50, 1 user, load averages: 0.33, 0.34, 0.25", "stdout_lines": [" 6:00PM up 21 days, 7:50, 1 user, load averages: 0.33, 0.34, 0.25"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019587", "end": "2025-12-16 21:00:13.724482", "msg": "", "rc": 0, "start": "2025-12-16 21:00:13.704895", "stderr": "", "stderr_lines": [], "stdout": " 21:00:13 up 14 days, 10:26, 1 user, load average: 0.31, 0.19, 0.12", "stdout_lines": [" 21:00:13 up 14 days, 10:26, 1 user, load average: 0.31, 0.19, 0.12"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005514", "end": "2025-12-16 21:00:14.223319", "msg": "", "rc": 0, "start": "2025-12-16 21:00:14.217805", "stderr": "", "stderr_lines": [], "stdout": " 21:00:14 up 22:41, 1 user, load average: 1.52, 1.62, 1.48", "stdout_lines": [" 21:00:14 up 22:41, 1 user, load average: 1.52, 1.62, 1.48"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003674", "end": "2025-12-16 21:00:13.963623", "msg": "", "rc": 0, "start": "2025-12-16 21:00:13.959949", "stderr": "", "stderr_lines": [], "stdout": " 21:00:13 up 2 days, 10:31, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 21:00:13 up 2 days, 10:31, 1 user, load average: 0.00, 0.00, 0.00"]}
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-16 21:00:14.367966", "msg": "", "rc": 0, "start": "2025-12-16 21:00:14.363617", "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.004095", "end": "2025-12-16 21:00:14.391034", "msg": "", "rc": 0, "start": "2025-12-16 21:00:14.386939", "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.004708", "end": "2025-12-16 21:00:14.401670", "msg": "", "rc": 0, "start": "2025-12-16 21:00:14.396962", "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.005460", "end": "2025-12-16 21:00:14.421770", "msg": "", "rc": 0, "start": "2025-12-16 21:00:14.416310", "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.005931", "end": "2025-12-16 21:00:14.441988", "msg": "", "rc": 0, "start": "2025-12-16 21:00:14.436057", "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.004993", "end": "2025-12-16 20:59:49.158298", "msg": "", "rc": 0, "start": "2025-12-16 20:59:49.153305", "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.005679", "end": "2025-12-16 20:59:42.939065", "msg": "", "rc": 0, "start": "2025-12-16 20:59:42.933386", "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.010835", "end": "2025-12-16 21:00:15.117206", "msg": "", "rc": 0, "start": "2025-12-16 21:00:15.106371", "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.011473", "end": "2025-12-16 21:00:15.151666", "msg": "", "rc": 0, "start": "2025-12-16 21:00:15.140193", "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.005749", "end": "2025-12-16 21:00:15.350536", "msg": "", "rc": 0, "start": "2025-12-16 21:00:15.344787", "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.005288", "end": "2025-12-16 20:59:46.107135", "msg": "", "rc": 0, "start": "2025-12-16 20:59:46.101847", "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.004819", "end": "2025-12-16 20:59:52.494310", "msg": "", "rc": 0, "start": "2025-12-16 20:59:52.489491", "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.005664", "end": "2025-12-16 18:00:15.642146", "msg": "", "rc": 0, "start": "2025-12-16 18:00:15.636482", "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.005305", "end": "2025-12-16 21:00:15.786099", "msg": "", "rc": 0, "start": "2025-12-16 21:00:15.780794", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007635", "end": "2025-12-16 21:00:16.142024", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.134389", "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.025121", "end": "2025-12-16 21:00:15.759025", "msg": "", "rc": 0, "start": "2025-12-16 21:00:15.733904", "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.004439", "end": "2025-12-16 21:00:16.269037", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.264598", "stderr": "", "stderr_lines": [], "stdout": "80.8%", "stdout_lines": ["80.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.004536", "end": "2025-12-16 21:00:16.297489", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.292953", "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.004380", "end": "2025-12-16 21:00:16.303663", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.299283", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004804", "end": "2025-12-16 21:00:16.339807", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.335003", "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.005633", "end": "2025-12-16 21:00:16.335403", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.329770", "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.004458", "end": "2025-12-16 20:59:51.090000", "msg": "", "rc": 0, "start": "2025-12-16 20:59:51.085542", "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.004468", "end": "2025-12-16 20:59:44.869917", "msg": "", "rc": 0, "start": "2025-12-16 20:59:44.865449", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010924", "end": "2025-12-16 21:00:16.975178", "msg": "", "rc": 0, "start": "2025-12-16 21:00:16.964254", "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.012012", "end": "2025-12-16 21:00:17.015394", "msg": "", "rc": 0, "start": "2025-12-16 21:00:17.003382", "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.005950", "end": "2025-12-16 21:00:17.291333", "msg": "", "rc": 0, "start": "2025-12-16 21:00:17.285383", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004065", "end": "2025-12-16 20:59:48.045766", "msg": "", "rc": 0, "start": "2025-12-16 20:59:48.041701", "stderr": "", "stderr_lines": [], "stdout": "27.4%", "stdout_lines": ["27.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.005125", "end": "2025-12-16 18:00:17.498645", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 18:00:17.493520", "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.003551", "end": "2025-12-16 20:59:54.379154", "msg": "", "rc": 0, "start": "2025-12-16 20:59:54.375603", "stderr": "", "stderr_lines": [], "stdout": "59.8%", "stdout_lines": ["59.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.005438", "end": "2025-12-16 21:00:17.720266", "msg": "", "rc": 0, "start": "2025-12-16 21:00:17.714828", "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.007601", "end": "2025-12-16 21:00:18.180961", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.173360", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025824", "end": "2025-12-16 21:00:17.664188", "msg": "", "rc": 0, "start": "2025-12-16 21:00:17.638364", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005304", "end": "2025-12-16 21:00:18.193592", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.188288", "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.005655", "end": "2025-12-16 21:00:18.207201", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.201546", "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.004857", "end": "2025-12-16 21:00:18.208919", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.204062", "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.002910", "end": "2025-12-16 21:00:18.238692", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.235782", "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.007988", "end": "2025-12-16 21:00:18.277749", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.269761", "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.002958", "end": "2025-12-16 20:59:52.962698", "msg": "", "rc": 0, "start": "2025-12-16 20:59:52.959740", "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.003269", "end": "2025-12-16 20:59:46.788882", "msg": "", "rc": 0, "start": "2025-12-16 20:59:46.785613", "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.012002", "end": "2025-12-16 21:00:18.888294", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.876292", "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.012906", "end": "2025-12-16 21:00:18.915866", "msg": "", "rc": 0, "start": "2025-12-16 21:00:18.902960", "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.003147", "end": "2025-12-16 21:00:19.141252", "msg": "", "rc": 0, "start": "2025-12-16 21:00:19.138105", "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.002910", "end": "2025-12-16 20:59:49.950255", "msg": "", "rc": 0, "start": "2025-12-16 20:59:49.947345", "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.003919", "end": "2025-12-16 18:00:19.388949", "msg": "", "rc": 0, "start": "2025-12-16 18:00:19.385030", "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.002600", "end": "2025-12-16 20:59:56.279454", "msg": "", "rc": 0, "start": "2025-12-16 20:59:56.276854", "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.002889", "end": "2025-12-16 21:00:19.551166", "msg": "", "rc": 0, "start": "2025-12-16 21:00:19.548277", "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.004773", "end": "2025-12-16 21:00:20.142788", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.138015", "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.028295", "end": "2025-12-16 21:00:19.579775", "msg": "", "rc": 0, "start": "2025-12-16 21:00:19.551480", "stderr": "", "stderr_lines": [], "stdout": "35.0°C", "stdout_lines": ["35.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.004211", "end": "2025-12-16 21:00:20.090724", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.086513", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.004011", "end": "2025-12-16 21:00:20.118806", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.114795", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.004695", "end": "2025-12-16 21:00:20.121676", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.116981", "stderr": "", "stderr_lines": [], "stdout": "1.36", "stdout_lines": ["1.36"]}
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.004633", "end": "2025-12-16 21:00:20.147199", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.142566", "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.005518", "end": "2025-12-16 21:00:20.165063", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.159545", "stderr": "", "stderr_lines": [], "stdout": "0.59", "stdout_lines": ["0.59"]}
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.004702", "end": "2025-12-16 20:59:54.879037", "msg": "", "rc": 0, "start": "2025-12-16 20:59:54.874335", "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.005320", "end": "2025-12-16 20:59:48.664586", "msg": "", "rc": 0, "start": "2025-12-16 20:59:48.659266", "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.010186", "end": "2025-12-16 21:00:20.865187", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.855001", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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-16 21:00:20.908694", "msg": "", "rc": 0, "start": "2025-12-16 21:00:20.897450", "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.005732", "end": "2025-12-16 21:00:21.055448", "msg": "", "rc": 0, "start": "2025-12-16 21:00:21.049716", "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.005107", "end": "2025-12-16 20:59:51.849742", "msg": "", "rc": 0, "start": "2025-12-16 20:59:51.844635", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.006119", "end": "2025-12-16 18:00:21.366085", "msg": "", "rc": 0, "start": "2025-12-16 18:00:21.359966", "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.004508", "end": "2025-12-16 20:59:58.255652", "msg": "", "rc": 0, "start": "2025-12-16 20:59:58.251144", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
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.005405", "end": "2025-12-16 21:00:21.471506", "msg": "", "rc": 0, "start": "2025-12-16 21:00:21.466101", "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.007440", "end": "2025-12-16 21:00:22.119335", "msg": "", "rc": 0, "start": "2025-12-16 21:00:22.111895", "stderr": "", "stderr_lines": [], "stdout": "1.52", "stdout_lines": ["1.52"]}
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.024164", "end": "2025-12-16 21:00:21.468390", "msg": "", "rc": 0, "start": "2025-12-16 21:00:21.444226", "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: 21:00:12 up 2 days, 10:32, 1 user, load average: 0.29, 0.26, 0.26\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.35\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:12 up 21 days, 7:51, 1 user, load average: 0.07, 0.08, 0.08\nDisk Usage: 23%\nMemory Usage: 80.8%\nCPU Load: 0.06\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:12 up 21 days, 8:11, 1 user, load average: 1.07, 0.75, 0.74\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.36\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:12 up 21 days, 9:24, 1 user, load average: 0.55, 0.75, 0.74\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.59\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:12 up 21 days, 10:10, 1 user, load average: 0.00, 0.04, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:13 up 14 days, 10:26, 1 user, load average: 0.31, 0.19, 0.12\nDisk Usage: 21%\nMemory Usage: 20.4%\nCPU Load: 0.33\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:13 up 193 days, 12:33, 1 user, load average: 0.16, 0.16, 0.18\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.21\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:13 up 193 days, 12:33, 1 user, load average: 0.16, 0.15, 0.11\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.21\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:59:47 up 10 days, 8:49, 0 user, load average: 0.13, 0.21, 0.16\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: 20:59:41 up 17 days, 5:01, 0 user, load average: 0.01, 0.05, 0.02\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:13 up 2 days, 10:31, 1 user, load average: 0.04, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:59:44 up 19 days, 23:54, 0 user, load average: 0.58, 0.54, 0.54\nDisk Usage: 28%\nMemory Usage: 27.4%\nCPU Load: 0.62\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 20:59:50 up 16 days, 10:15, 0 user, load average: 0.22, 0.20, 0.19\nDisk Usage: 75%\nMemory Usage: 59.8%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 6:00PM up 21 days, 7:50, 1 user, load averages: 0.33, 0.34, 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: 21:00:13 up 2 days, 10:31, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:00:14 up 22:41, 1 user, load average: 1.52, 1.62, 1.48\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.52\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-17T02:00:22.999698+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `235a29ad3d1949609f4f39f99738ac6c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T02:05:00.002337+00:00 |
| **Fin** | 2025-12-17T02:05:22.131945+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: [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: [automate.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: [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.003045", "end": "2025-12-16 21:05:11.227815", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.224770", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 21 days, 7:56, 1 user, load average: 0.07, 0.07, 0.08", "stdout_lines": [" 21:05:11 up 21 days, 7:56, 1 user, load average: 0.07, 0.07, 0.08"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003240", "end": "2025-12-16 21:05:11.236274", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.233034", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 21 days, 8:16, 1 user, load average: 1.03, 0.95, 0.83", "stdout_lines": [" 21:05:11 up 21 days, 8:16, 1 user, load average: 1.03, 0.95, 0.83"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003754", "end": "2025-12-16 21:05:11.242288", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.238534", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 21 days, 10:15, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 21:05:11 up 21 days, 10:15, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002778", "end": "2025-12-16 21:05:11.255272", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.252494", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 2 days, 10:37, 1 user, load average: 0.23, 0.19, 0.22", "stdout_lines": [" 21:05:11 up 2 days, 10:37, 1 user, load average: 0.23, 0.19, 0.22"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004052", "end": "2025-12-16 21:05:11.260397", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.256345", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 21 days, 9:29, 1 user, load average: 0.91, 0.78, 0.75", "stdout_lines": [" 21:05:11 up 21 days, 9:29, 1 user, load average: 0.91, 0.78, 0.75"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002765", "end": "2025-12-16 21:04:45.987173", "msg": "", "rc": 0, "start": "2025-12-16 21:04:45.984408", "stderr": "", "stderr_lines": [], "stdout": " 21:04:45 up 10 days, 8:54, 0 user, load average: 0.11, 0.15, 0.14", "stdout_lines": [" 21:04:45 up 10 days, 8:54, 0 user, load average: 0.11, 0.15, 0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003554", "end": "2025-12-16 21:04:39.781900", "msg": "", "rc": 0, "start": "2025-12-16 21:04:39.778346", "stderr": "", "stderr_lines": [], "stdout": " 21:04:39 up 17 days, 5:06, 0 user, load average: 0.15, 0.05, 0.01", "stdout_lines": [" 21:04:39 up 17 days, 5:06, 0 user, load average: 0.15, 0.05, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008343", "end": "2025-12-16 21:05:11.934798", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.926455", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 193 days, 12:38, 1 user, load average: 0.06, 0.12, 0.09", "stdout_lines": [" 21:05:11 up 193 days, 12:38, 1 user, load average: 0.06, 0.12, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009118", "end": "2025-12-16 21:05:11.964189", "msg": "", "rc": 0, "start": "2025-12-16 21:05:11.955071", "stderr": "", "stderr_lines": [], "stdout": " 21:05:11 up 193 days, 12:38, 1 user, load average: 0.11, 0.15, 0.17", "stdout_lines": [" 21:05:11 up 193 days, 12:38, 1 user, load average: 0.11, 0.15, 0.17"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004661", "end": "2025-12-16 21:05:12.181304", "msg": "", "rc": 0, "start": "2025-12-16 21:05:12.176643", "stderr": "", "stderr_lines": [], "stdout": " 21:05:12 up 2 days, 10:36, 1 user, load average: 0.18, 0.07, 0.01", "stdout_lines": [" 21:05:12 up 2 days, 10:36, 1 user, load average: 0.18, 0.07, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003192", "end": "2025-12-16 21:04:42.957906", "msg": "", "rc": 0, "start": "2025-12-16 21:04:42.954714", "stderr": "", "stderr_lines": [], "stdout": " 21:04:42 up 19 days, 23:59, 0 user, load average: 0.33, 0.55, 0.56", "stdout_lines": [" 21:04:42 up 19 days, 23:59, 0 user, load average: 0.33, 0.55, 0.56"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005916", "end": "2025-12-16 21:04:49.308752", "msg": "", "rc": 0, "start": "2025-12-16 21:04:49.302836", "stderr": "", "stderr_lines": [], "stdout": " 21:04:49 up 16 days, 10:20, 0 user, load average: 0.45, 0.32, 0.24", "stdout_lines": [" 21:04:49 up 16 days, 10:20, 0 user, load average: 0.45, 0.32, 0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004555", "end": "2025-12-16 18:05:12.432666", "msg": "", "rc": 0, "start": "2025-12-16 18:05:12.428111", "stderr": "", "stderr_lines": [], "stdout": " 6:05PM up 21 days, 7:54, 1 user, load averages: 0.16, 0.28, 0.24", "stdout_lines": [" 6:05PM up 21 days, 7:54, 1 user, load averages: 0.16, 0.28, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003705", "end": "2025-12-16 21:05:12.621960", "msg": "", "rc": 0, "start": "2025-12-16 21:05:12.618255", "stderr": "", "stderr_lines": [], "stdout": " 21:05:12 up 2 days, 10:36, 1 user, load average: 0.09, 0.04, 0.01", "stdout_lines": [" 21:05:12 up 2 days, 10:36, 1 user, load average: 0.09, 0.04, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006528", "end": "2025-12-16 21:05:13.280376", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.273848", "stderr": "", "stderr_lines": [], "stdout": " 21:05:13 up 22:46, 1 user, load average: 1.19, 1.30, 1.37", "stdout_lines": [" 21:05:13 up 22:46, 1 user, load average: 1.19, 1.30, 1.37"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019371", "end": "2025-12-16 21:05:12.618525", "msg": "", "rc": 0, "start": "2025-12-16 21:05:12.599154", "stderr": "", "stderr_lines": [], "stdout": " 21:05:12 up 14 days, 10:31, 1 user, load average: 0.24, 0.16, 0.11", "stdout_lines": [" 21:05:12 up 14 days, 10:31, 1 user, load average: 0.24, 0.16, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004458", "end": "2025-12-16 21:05:13.134227", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.129769", "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.004042", "end": "2025-12-16 21:05:13.160936", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.156894", "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.004925", "end": "2025-12-16 21:05:13.174267", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.169342", "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.004677", "end": "2025-12-16 21:05:13.187541", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.182864", "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.005741", "end": "2025-12-16 21:05:13.197328", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.191587", "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.005026", "end": "2025-12-16 21:04:47.901783", "msg": "", "rc": 0, "start": "2025-12-16 21:04:47.896757", "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.005402", "end": "2025-12-16 21:04:41.710292", "msg": "", "rc": 0, "start": "2025-12-16 21:04:41.704890", "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.011441", "end": "2025-12-16 21:05:13.894186", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.882745", "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.011592", "end": "2025-12-16 21:05:13.935372", "msg": "", "rc": 0, "start": "2025-12-16 21:05:13.923780", "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.005699", "end": "2025-12-16 21:05:14.102365", "msg": "", "rc": 0, "start": "2025-12-16 21:05:14.096666", "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.005429", "end": "2025-12-16 21:04:44.881393", "msg": "", "rc": 0, "start": "2025-12-16 21:04:44.875964", "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.005520", "end": "2025-12-16 18:05:14.399957", "msg": "", "rc": 0, "start": "2025-12-16 18:05:14.394437", "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.005174", "end": "2025-12-16 21:04:51.304925", "msg": "", "rc": 0, "start": "2025-12-16 21:04:51.299751", "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.005375", "end": "2025-12-16 21:05:14.531291", "msg": "", "rc": 0, "start": "2025-12-16 21:05:14.525916", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007091", "end": "2025-12-16 21:05:15.356648", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.349557", "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.025045", "end": "2025-12-16 21:05:14.541910", "msg": "", "rc": 0, "start": "2025-12-16 21:05:14.516865", "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.004626", "end": "2025-12-16 21:05:15.069584", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.064958", "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.004225", "end": "2025-12-16 21:05:15.073364", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.069139", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005138", "end": "2025-12-16 21:05:15.094292", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.089154", "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.004600", "end": "2025-12-16 21:05:15.134458", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.129858", "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.005477", "end": "2025-12-16 21:05:15.144313", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.138836", "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.003609", "end": "2025-12-16 21:04:49.871272", "msg": "", "rc": 0, "start": "2025-12-16 21:04:49.867663", "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.004386", "end": "2025-12-16 21:04:43.660801", "msg": "", "rc": 0, "start": "2025-12-16 21:04:43.656415", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010986", "end": "2025-12-16 21:05:15.777610", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.766624", "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.011903", "end": "2025-12-16 21:05:15.807644", "msg": "", "rc": 0, "start": "2025-12-16 21:05:15.795741", "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.005878", "end": "2025-12-16 21:05:16.057128", "msg": "", "rc": 0, "start": "2025-12-16 21:05:16.051250", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004130", "end": "2025-12-16 21:04:46.831987", "msg": "", "rc": 0, "start": "2025-12-16 21:04:46.827857", "stderr": "", "stderr_lines": [], "stdout": "27.4%", "stdout_lines": ["27.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.005138", "end": "2025-12-16 18:05:16.281540", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 18:05:16.276402", "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.005688", "end": "2025-12-16 21:04:53.172713", "msg": "", "rc": 0, "start": "2025-12-16 21:04:53.167025", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.005318", "end": "2025-12-16 21:05:16.480829", "msg": "", "rc": 0, "start": "2025-12-16 21:05:16.475511", "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.007736", "end": "2025-12-16 21:05:17.310644", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.302908", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.026344", "end": "2025-12-16 21:05:16.468397", "msg": "", "rc": 0, "start": "2025-12-16 21:05:16.442053", "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.005107", "end": "2025-12-16 21:05:17.004038", "msg": "", "rc": 0, "start": "2025-12-16 21:05:16.998931", "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.005035", "end": "2025-12-16 21:05:17.022078", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.017043", "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.006146", "end": "2025-12-16 21:05:17.051170", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.045024", "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.003165", "end": "2025-12-16 21:05:17.058096", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.054931", "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.006567", "end": "2025-12-16 21:05:17.074525", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.067958", "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.002705", "end": "2025-12-16 21:04:51.798727", "msg": "", "rc": 0, "start": "2025-12-16 21:04:51.796022", "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.003214", "end": "2025-12-16 21:04:45.565627", "msg": "", "rc": 0, "start": "2025-12-16 21:04:45.562413", "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.011799", "end": "2025-12-16 21:05:17.710685", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.698886", "stderr": "", "stderr_lines": [], "stdout": "30.2°C", "stdout_lines": ["30.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.013071", "end": "2025-12-16 21:05:17.743581", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.730510", "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.003081", "end": "2025-12-16 21:05:17.991044", "msg": "", "rc": 0, "start": "2025-12-16 21:05:17.987963", "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.002820", "end": "2025-12-16 21:04:48.733910", "msg": "", "rc": 0, "start": "2025-12-16 21:04:48.731090", "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.003022", "end": "2025-12-16 21:04:55.076556", "msg": "", "rc": 0, "start": "2025-12-16 21:04:55.073534", "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.004407", "end": "2025-12-16 18:05:18.227388", "msg": "", "rc": 0, "start": "2025-12-16 18:05:18.222981", "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.003064", "end": "2025-12-16 21:05:18.420920", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.417856", "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.004566", "end": "2025-12-16 21:05:19.299750", "msg": "", "rc": 0, "start": "2025-12-16 21:05:19.295184", "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.028732", "end": "2025-12-16 21:05:18.407406", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.378674", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°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.004268", "end": "2025-12-16 21:05:18.920852", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.916584", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.004197", "end": "2025-12-16 21:05:18.929030", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.924833", "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.005354", "end": "2025-12-16 21:05:18.962929", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.957575", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
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.005080", "end": "2025-12-16 21:05:18.962665", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.957585", "stderr": "", "stderr_lines": [], "stdout": "0.96", "stdout_lines": ["0.96"]}
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.005537", "end": "2025-12-16 21:05:18.977837", "msg": "", "rc": 0, "start": "2025-12-16 21:05:18.972300", "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.004355", "end": "2025-12-16 21:04:53.717464", "msg": "", "rc": 0, "start": "2025-12-16 21:04:53.713109", "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.005362", "end": "2025-12-16 21:04:47.494889", "msg": "", "rc": 0, "start": "2025-12-16 21:04:47.489527", "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.010074", "end": "2025-12-16 21:05:19.723466", "msg": "", "rc": 0, "start": "2025-12-16 21:05:19.713392", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.011086", "end": "2025-12-16 21:05:19.731268", "msg": "", "rc": 0, "start": "2025-12-16 21:05:19.720182", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.005376", "end": "2025-12-16 21:05:19.925711", "msg": "", "rc": 0, "start": "2025-12-16 21:05:19.920335", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.004931", "end": "2025-12-16 21:04:50.664322", "msg": "", "rc": 0, "start": "2025-12-16 21:04:50.659391", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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-16 18:05:20.196255", "msg": "", "rc": 0, "start": "2025-12-16 18:05:20.190365", "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.004018", "end": "2025-12-16 21:04:57.096706", "msg": "", "rc": 0, "start": "2025-12-16 21:04:57.092688", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
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.005355", "end": "2025-12-16 21:05:20.349610", "msg": "", "rc": 0, "start": "2025-12-16 21:05:20.344255", "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.007274", "end": "2025-12-16 21:05:21.355117", "msg": "", "rc": 0, "start": "2025-12-16 21:05:21.347843", "stderr": "", "stderr_lines": [], "stdout": "1.24", "stdout_lines": ["1.24"]}
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.024820", "end": "2025-12-16 21:05:20.304856", "msg": "", "rc": 0, "start": "2025-12-16 21:05:20.280036", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 2 days, 10:37, 1 user, load average: 0.23, 0.19, 0.22\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.26\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 21 days, 7:56, 1 user, load average: 0.07, 0.07, 0.08\nDisk Usage: 23%\nMemory Usage: 80.9%\nCPU Load: 0.07\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 21 days, 8:16, 1 user, load average: 1.03, 0.95, 0.83\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.96\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 21 days, 9:29, 1 user, load average: 0.91, 0.78, 0.75\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.85\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 21 days, 10:15, 1 user, load average: 0.00, 0.01, 0.00\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: 21:05:12 up 14 days, 10:31, 1 user, load average: 0.24, 0.16, 0.11\nDisk Usage: 21%\nMemory Usage: 19.8%\nCPU Load: 0.30\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 193 days, 12:38, 1 user, load average: 0.11, 0.15, 0.17\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.10\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:11 up 193 days, 12:38, 1 user, load average: 0.06, 0.12, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.06\nCPU Temp: 30.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:04:45 up 10 days, 8:54, 0 user, load average: 0.11, 0.15, 0.14\nDisk Usage: 48%\nMemory Usage: 71.1%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:04:39 up 17 days, 5:06, 0 user, load average: 0.15, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:12 up 2 days, 10:36, 1 user, load average: 0.18, 0.07, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:04:42 up 19 days, 23:59, 0 user, load average: 0.33, 0.55, 0.56\nDisk Usage: 28%\nMemory Usage: 27.4%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:04:49 up 16 days, 10:20, 0 user, load average: 0.45, 0.32, 0.24\nDisk Usage: 75%\nMemory Usage: 59.0%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 6:05PM up 21 days, 7:54, 1 user, load averages: 0.16, 0.28, 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: 21:05:12 up 2 days, 10:36, 1 user, load average: 0.09, 0.04, 0.01\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:05:13 up 22:46, 1 user, load average: 1.19, 1.30, 1.37\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.24\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-17T02:05:22.169663+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `17bb692eb3ae4070b520ae640baeb4f7` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T02:10:00.001785+00:00 |
| **Fin** | 2025-12-17T02:10:21.996802+00:00 |
| **Durée** | 22.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: [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: [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.003647", "end": "2025-12-16 21:10:11.593467", "msg": "", "rc": 0, "start": "2025-12-16 21:10:11.589820", "stderr": "", "stderr_lines": [], "stdout": " 21:10:11 up 21 days, 10:20, 1 user, load average: 0.20, 0.05, 0.02", "stdout_lines": [" 21:10:11 up 21 days, 10:20, 1 user, load average: 0.20, 0.05, 0.02"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003482", "end": "2025-12-16 21:10:11.592798", "msg": "", "rc": 0, "start": "2025-12-16 21:10:11.589316", "stderr": "", "stderr_lines": [], "stdout": " 21:10:11 up 21 days, 8:21, 1 user, load average: 0.78, 0.73, 0.76", "stdout_lines": [" 21:10:11 up 21 days, 8:21, 1 user, load average: 0.78, 0.73, 0.76"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003950", "end": "2025-12-16 21:10:11.611532", "msg": "", "rc": 0, "start": "2025-12-16 21:10:11.607582", "stderr": "", "stderr_lines": [], "stdout": " 21:10:11 up 21 days, 9:34, 1 user, load average: 1.03, 0.82, 0.76", "stdout_lines": [" 21:10:11 up 21 days, 9:34, 1 user, load average: 1.03, 0.82, 0.76"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002841", "end": "2025-12-16 21:10:11.618968", "msg": "", "rc": 0, "start": "2025-12-16 21:10:11.616127", "stderr": "", "stderr_lines": [], "stdout": " 21:10:11 up 2 days, 10:42, 1 user, load average: 0.06, 0.22, 0.24", "stdout_lines": [" 21:10:11 up 2 days, 10:42, 1 user, load average: 0.06, 0.22, 0.24"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002632", "end": "2025-12-16 21:09:46.368772", "msg": "", "rc": 0, "start": "2025-12-16 21:09:46.366140", "stderr": "", "stderr_lines": [], "stdout": " 21:09:46 up 10 days, 8:59, 0 user, load average: 0.15, 0.15, 0.14", "stdout_lines": [" 21:09:46 up 10 days, 8:59, 0 user, load average: 0.15, 0.15, 0.14"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008379", "end": "2025-12-16 21:10:12.291775", "msg": "", "rc": 0, "start": "2025-12-16 21:10:12.283396", "stderr": "", "stderr_lines": [], "stdout": " 21:10:12 up 193 days, 12:43, 1 user, load average: 0.08, 0.11, 0.09", "stdout_lines": [" 21:10:12 up 193 days, 12:43, 1 user, load average: 0.08, 0.11, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009323", "end": "2025-12-16 21:10:12.326448", "msg": "", "rc": 0, "start": "2025-12-16 21:10:12.317125", "stderr": "", "stderr_lines": [], "stdout": " 21:10:12 up 193 days, 12:43, 1 user, load average: 0.41, 0.23, 0.20", "stdout_lines": [" 21:10:12 up 193 days, 12:43, 1 user, load average: 0.41, 0.23, 0.20"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004182", "end": "2025-12-16 21:10:12.578971", "msg": "", "rc": 0, "start": "2025-12-16 21:10:11.574789", "stderr": "", "stderr_lines": [], "stdout": " 21:10:11 up 21 days, 8:01, 1 user, load average: 0.12, 0.14, 0.10", "stdout_lines": [" 21:10:11 up 21 days, 8:01, 1 user, load average: 0.12, 0.14, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003367", "end": "2025-12-16 21:09:40.583294", "msg": "", "rc": 0, "start": "2025-12-16 21:09:40.579927", "stderr": "", "stderr_lines": [], "stdout": " 21:09:40 up 17 days, 5:11, 0 user, load average: 0.09, 0.04, 0.00", "stdout_lines": [" 21:09:40 up 17 days, 5:11, 0 user, load average: 0.09, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004653", "end": "2025-12-16 21:10:12.799570", "msg": "", "rc": 0, "start": "2025-12-16 21:10:12.794917", "stderr": "", "stderr_lines": [], "stdout": " 21:10:12 up 2 days, 10:41, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 21:10:12 up 2 days, 10:41, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003346", "end": "2025-12-16 21:09:43.514538", "msg": "", "rc": 0, "start": "2025-12-16 21:09:43.511192", "stderr": "", "stderr_lines": [], "stdout": " 21:09:43 up 20 days, 4 min, 0 user, load average: 1.51, 0.82, 0.64", "stdout_lines": [" 21:09:43 up 20 days, 4 min, 0 user, load average: 1.51, 0.82, 0.64"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002846", "end": "2025-12-16 21:09:49.908114", "msg": "", "rc": 0, "start": "2025-12-16 21:09:49.905268", "stderr": "", "stderr_lines": [], "stdout": " 21:09:49 up 16 days, 10:25, 0 user, load average: 0.30, 0.27, 0.24", "stdout_lines": [" 21:09:49 up 16 days, 10:25, 0 user, load average: 0.30, 0.27, 0.24"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004254", "end": "2025-12-16 18:10:13.055847", "msg": "", "rc": 0, "start": "2025-12-16 18:10:13.051593", "stderr": "", "stderr_lines": [], "stdout": " 6:10PM up 21 days, 8 hrs, 1 user, load averages: 0.19, 0.22, 0.23", "stdout_lines": [" 6:10PM up 21 days, 8 hrs, 1 user, load averages: 0.19, 0.22, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019444", "end": "2025-12-16 21:10:12.974649", "msg": "", "rc": 0, "start": "2025-12-16 21:10:12.955205", "stderr": "", "stderr_lines": [], "stdout": " 21:10:12 up 14 days, 10:36, 1 user, load average: 0.23, 0.16, 0.11", "stdout_lines": [" 21:10:12 up 14 days, 10:36, 1 user, load average: 0.23, 0.16, 0.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003744", "end": "2025-12-16 21:10:13.212669", "msg": "", "rc": 0, "start": "2025-12-16 21:10:13.208925", "stderr": "", "stderr_lines": [], "stdout": " 21:10:13 up 2 days, 10:41, 1 user, load average: 0.08, 0.02, 0.01", "stdout_lines": [" 21:10:13 up 2 days, 10:41, 1 user, load average: 0.08, 0.02, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007414", "end": "2025-12-16 21:10:14.308951", "msg": "", "rc": 0, "start": "2025-12-16 21:10:14.301537", "stderr": "", "stderr_lines": [], "stdout": " 21:10:14 up 22:51, 1 user, load average: 1.73, 1.32, 1.34", "stdout_lines": [" 21:10:14 up 22:51, 1 user, load average: 1.73, 1.32, 1.34"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004776", "end": "2025-12-16 21:10:13.618349", "msg": "", "rc": 0, "start": "2025-12-16 21:10:13.613573", "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.004203", "end": "2025-12-16 21:10:13.642991", "msg": "", "rc": 0, "start": "2025-12-16 21:10:13.638788", "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.004894", "end": "2025-12-16 21:10:13.663674", "msg": "", "rc": 0, "start": "2025-12-16 21:10:13.658780", "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.004325", "end": "2025-12-16 21:10:13.675582", "msg": "", "rc": 0, "start": "2025-12-16 21:10:13.671257", "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.005741", "end": "2025-12-16 21:10:13.693055", "msg": "", "rc": 0, "start": "2025-12-16 21:10:13.687314", "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.004851", "end": "2025-12-16 21:09:48.420760", "msg": "", "rc": 0, "start": "2025-12-16 21:09:48.415909", "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.005738", "end": "2025-12-16 21:09:42.202222", "msg": "", "rc": 0, "start": "2025-12-16 21:09:42.196484", "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.011372", "end": "2025-12-16 21:10:14.402530", "msg": "", "rc": 0, "start": "2025-12-16 21:10:14.391158", "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.011670", "end": "2025-12-16 21:10:14.423638", "msg": "", "rc": 0, "start": "2025-12-16 21:10:14.411968", "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.005800", "end": "2025-12-16 21:10:14.640009", "msg": "", "rc": 0, "start": "2025-12-16 21:10:14.634209", "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.005918", "end": "2025-12-16 21:09:45.375988", "msg": "", "rc": 0, "start": "2025-12-16 21:09:45.370070", "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.005557", "end": "2025-12-16 18:10:14.904308", "msg": "", "rc": 0, "start": "2025-12-16 18:10:14.898751", "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.005309", "end": "2025-12-16 21:09:51.804045", "msg": "", "rc": 0, "start": "2025-12-16 21:09:51.798736", "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.005229", "end": "2025-12-16 21:10:15.066120", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.060891", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019271", "end": "2025-12-16 21:10:15.149884", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.130613", "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.025418", "end": "2025-12-16 21:10:15.023531", "msg": "", "rc": 0, "start": "2025-12-16 21:10:14.998113", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
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.004233", "end": "2025-12-16 21:10:15.550466", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.546233", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.0%"]}
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-16 21:10:15.558834", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.554425", "stderr": "", "stderr_lines": [], "stdout": "80.7%", "stdout_lines": ["80.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.004912", "end": "2025-12-16 21:10:15.599810", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.594898", "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.004772", "end": "2025-12-16 21:10:15.607724", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.602952", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.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.005598", "end": "2025-12-16 21:10:15.617924", "msg": "", "rc": 0, "start": "2025-12-16 21:10:15.612326", "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.003617", "end": "2025-12-16 21:09:50.348514", "msg": "", "rc": 0, "start": "2025-12-16 21:09:50.344897", "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.004687", "end": "2025-12-16 21:09:44.133637", "msg": "", "rc": 0, "start": "2025-12-16 21:09:44.128950", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.010823", "end": "2025-12-16 21:10:16.259321", "msg": "", "rc": 0, "start": "2025-12-16 21:10:16.248498", "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.011992", "end": "2025-12-16 21:10:16.276058", "msg": "", "rc": 0, "start": "2025-12-16 21:10:16.264066", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005689", "end": "2025-12-16 21:10:16.557478", "msg": "", "rc": 0, "start": "2025-12-16 21:10:16.551789", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004006", "end": "2025-12-16 21:09:47.323926", "msg": "", "rc": 0, "start": "2025-12-16 21:09:47.319920", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.005349", "end": "2025-12-16 18:10:16.757634", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 18:10:16.752285", "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.004068", "end": "2025-12-16 21:09:53.646001", "msg": "", "rc": 0, "start": "2025-12-16 21:09:53.641933", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.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.005367", "end": "2025-12-16 21:10:16.987037", "msg": "", "rc": 0, "start": "2025-12-16 21:10:16.981670", "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.010098", "end": "2025-12-16 21:10:17.138869", "msg": "", "rc": 0, "start": "2025-12-16 21:10:17.128771", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025953", "end": "2025-12-16 21:10:16.950606", "msg": "", "rc": 0, "start": "2025-12-16 21:10:16.924653", "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.005112", "end": "2025-12-16 21:10:17.499796", "msg": "", "rc": 0, "start": "2025-12-16 21:10:17.494684", "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.004874", "end": "2025-12-16 21:10:17.518749", "msg": "", "rc": 0, "start": "2025-12-16 21:10:17.513875", "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.005618", "end": "2025-12-16 21:10:17.543089", "msg": "", "rc": 0, "start": "2025-12-16 21:10:17.537471", "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.003222", "end": "2025-12-16 21:10:17.563310", "msg": "", "rc": 0, "start": "2025-12-16 21:10:17.560088", "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.006388", "end": "2025-12-16 21:10:17.584617", "msg": "", "rc": 0, "start": "2025-12-16 21:10:17.578229", "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.002586", "end": "2025-12-16 21:09:52.312706", "msg": "", "rc": 0, "start": "2025-12-16 21:09:52.310120", "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.003068", "end": "2025-12-16 21:09:46.097641", "msg": "", "rc": 0, "start": "2025-12-16 21:09:46.094573", "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.011780", "end": "2025-12-16 21:10:18.224370", "msg": "", "rc": 0, "start": "2025-12-16 21:10:18.212590", "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.013044", "end": "2025-12-16 21:10:18.249293", "msg": "", "rc": 0, "start": "2025-12-16 21:10:18.236249", "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.003328", "end": "2025-12-16 21:10:18.506373", "msg": "", "rc": 0, "start": "2025-12-16 21:10:18.503045", "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.002963", "end": "2025-12-16 21:09:49.281939", "msg": "", "rc": 0, "start": "2025-12-16 21:09:49.278976", "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.002515", "end": "2025-12-16 21:09:55.605954", "msg": "", "rc": 0, "start": "2025-12-16 21:09:55.603439", "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.003946", "end": "2025-12-16 18:10:18.747784", "msg": "", "rc": 0, "start": "2025-12-16 18:10:18.743838", "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.002939", "end": "2025-12-16 21:10:18.934941", "msg": "", "rc": 0, "start": "2025-12-16 21:10:18.932002", "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.004467", "end": "2025-12-16 21:10:19.180077", "msg": "", "rc": 0, "start": "2025-12-16 21:10:19.175610", "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.028681", "end": "2025-12-16 21:10:18.895718", "msg": "", "rc": 0, "start": "2025-12-16 21:10:18.867037", "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.004216", "end": "2025-12-16 21:10:19.408775", "msg": "", "rc": 0, "start": "2025-12-16 21:10:19.404559", "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.004065", "end": "2025-12-16 21:10:19.445248", "msg": "", "rc": 0, "start": "2025-12-16 21:10:19.441183", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.005090", "end": "2025-12-16 21:10:19.467976", "msg": "", "rc": 0, "start": "2025-12-16 21:10:19.462886", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.004331", "end": "2025-12-16 21:10:19.468769", "msg": "", "rc": 0, "start": "2025-12-16 21:10:19.464438", "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.005513", "end": "2025-12-16 21:10:19.481727", "msg": "", "rc": 0, "start": "2025-12-16 21:10:19.476214", "stderr": "", "stderr_lines": [], "stdout": "1.04", "stdout_lines": ["1.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.004270", "end": "2025-12-16 21:09:54.181945", "msg": "", "rc": 0, "start": "2025-12-16 21:09:54.177675", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.004818", "end": "2025-12-16 21:09:47.990915", "msg": "", "rc": 0, "start": "2025-12-16 21:09:47.986097", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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-16 21:10:20.243459", "msg": "", "rc": 0, "start": "2025-12-16 21:10:20.233278", "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.011214", "end": "2025-12-16 21:10:20.265265", "msg": "", "rc": 0, "start": "2025-12-16 21:10:20.254051", "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.005646", "end": "2025-12-16 21:10:20.392993", "msg": "", "rc": 0, "start": "2025-12-16 21:10:20.387347", "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.006212", "end": "2025-12-16 21:09:51.167774", "msg": "", "rc": 0, "start": "2025-12-16 21:09:51.161562", "stderr": "", "stderr_lines": [], "stdout": "1.39", "stdout_lines": ["1.39"]}
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.006336", "end": "2025-12-16 18:10:20.753180", "msg": "", "rc": 0, "start": "2025-12-16 18:10:20.746844", "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.004528", "end": "2025-12-16 21:09:57.626251", "msg": "", "rc": 0, "start": "2025-12-16 21:09:57.621723", "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-16 21:10:20.826744", "msg": "", "rc": 0, "start": "2025-12-16 21:10:20.821436", "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.007818", "end": "2025-12-16 21:10:21.157145", "msg": "", "rc": 0, "start": "2025-12-16 21:10:21.149327", "stderr": "", "stderr_lines": [], "stdout": "1.92", "stdout_lines": ["1.92"]}
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-16 21:10:20.811580", "msg": "", "rc": 0, "start": "2025-12-16 21:10:20.787321", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:11 up 21 days, 8:01, 1 user, load average: 0.12, 0.14, 0.10\nDisk Usage: 23%\nMemory Usage: 80.7%\nCPU Load: 0.27\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:11 up 2 days, 10:42, 1 user, load average: 0.06, 0.22, 0.24\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.05\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:11 up 21 days, 8:21, 1 user, load average: 0.78, 0.73, 0.76\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.82\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:11 up 21 days, 9:34, 1 user, load average: 1.03, 0.82, 0.76\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 1.04\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:11 up 21 days, 10:20, 1 user, load average: 0.20, 0.05, 0.02\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:12 up 14 days, 10:36, 1 user, load average: 0.23, 0.16, 0.11\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.35\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:12 up 193 days, 12:43, 1 user, load average: 0.41, 0.23, 0.20\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.38\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:12 up 193 days, 12:43, 1 user, load average: 0.08, 0.11, 0.09\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.15\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:09:46 up 10 days, 8:59, 0 user, load average: 0.15, 0.15, 0.14\nDisk Usage: 48%\nMemory Usage: 71.1%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:09:40 up 17 days, 5:11, 0 user, load average: 0.09, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:12 up 2 days, 10:41, 1 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:09:43 up 20 days, 4 min, 0 user, load average: 1.51, 0.82, 0.64\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 1.39\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:09:49 up 16 days, 10:25, 0 user, load average: 0.30, 0.27, 0.24\nDisk Usage: 75%\nMemory Usage: 59.5%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 6:10PM up 21 days, 8 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: 21:10:13 up 2 days, 10:41, 1 user, load average: 0.08, 0.02, 0.01\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:10:14 up 22:51, 1 user, load average: 1.73, 1.32, 1.34\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.92\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-17T02:10:22.042469+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `badb134dc2de470f8c46ca5b93b27807` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-17T02:15:00.002578+00:00 |
| **Fin** | 2025-12-17T02:15:19.369007+00:00 |
| **Durée** | 19.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: [hp2.i7.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [hp.nas.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.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: [orangepi.pc.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"}
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.003630", "end": "2025-12-16 21:15:07.703783", "msg": "", "rc": 0, "start": "2025-12-16 21:15:07.700153", "stderr": "", "stderr_lines": [], "stdout": " 21:15:07 up 21 days, 8:06, 1 user, load average: 0.20, 0.17, 0.12", "stdout_lines": [" 21:15:07 up 21 days, 8:06, 1 user, load average: 0.20, 0.17, 0.12"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003643", "end": "2025-12-16 21:15:07.712413", "msg": "", "rc": 0, "start": "2025-12-16 21:15:07.708770", "stderr": "", "stderr_lines": [], "stdout": " 21:15:07 up 21 days, 10:25, 1 user, load average: 0.27, 0.10, 0.03", "stdout_lines": [" 21:15:07 up 21 days, 10:25, 1 user, load average: 0.27, 0.10, 0.03"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003613", "end": "2025-12-16 21:15:07.717646", "msg": "", "rc": 0, "start": "2025-12-16 21:15:07.714033", "stderr": "", "stderr_lines": [], "stdout": " 21:15:07 up 21 days, 8:26, 1 user, load average: 0.62, 0.69, 0.72", "stdout_lines": [" 21:15:07 up 21 days, 8:26, 1 user, load average: 0.62, 0.69, 0.72"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002849", "end": "2025-12-16 21:15:07.741091", "msg": "", "rc": 0, "start": "2025-12-16 21:15:07.738242", "stderr": "", "stderr_lines": [], "stdout": " 21:15:07 up 2 days, 10:47, 1 user, load average: 0.45, 0.42, 0.33", "stdout_lines": [" 21:15:07 up 2 days, 10:47, 1 user, load average: 0.45, 0.42, 0.33"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003967", "end": "2025-12-16 21:15:07.745264", "msg": "", "rc": 0, "start": "2025-12-16 21:15:07.741297", "stderr": "", "stderr_lines": [], "stdout": " 21:15:07 up 21 days, 9:39, 1 user, load average: 1.09, 0.81, 0.76", "stdout_lines": [" 21:15:07 up 21 days, 9:39, 1 user, load average: 1.09, 0.81, 0.76"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003100", "end": "2025-12-16 21:14:42.457458", "msg": "", "rc": 0, "start": "2025-12-16 21:14:42.454358", "stderr": "", "stderr_lines": [], "stdout": " 21:14:42 up 10 days, 9:04, 0 user, load average: 0.17, 0.18, 0.14", "stdout_lines": [" 21:14:42 up 10 days, 9:04, 0 user, load average: 0.17, 0.18, 0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006817", "end": "2025-12-16 21:14:36.273715", "msg": "", "rc": 0, "start": "2025-12-16 21:14:36.266898", "stderr": "", "stderr_lines": [], "stdout": " 21:14:36 up 17 days, 5:16, 0 user, load average: 0.16, 0.06, 0.01", "stdout_lines": [" 21:14:36 up 17 days, 5:16, 0 user, load average: 0.16, 0.06, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008475", "end": "2025-12-16 21:15:08.489337", "msg": "", "rc": 0, "start": "2025-12-16 21:15:08.480862", "stderr": "", "stderr_lines": [], "stdout": " 21:15:08 up 193 days, 12:48, 1 user, load average: 0.23, 0.15, 0.10", "stdout_lines": [" 21:15:08 up 193 days, 12:48, 1 user, load average: 0.23, 0.15, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009931", "end": "2025-12-16 21:15:08.546689", "msg": "", "rc": 0, "start": "2025-12-16 21:15:08.536758", "stderr": "", "stderr_lines": [], "stdout": " 21:15:08 up 193 days, 12:47, 1 user, load average: 0.33, 0.21, 0.19", "stdout_lines": [" 21:15:08 up 193 days, 12:47, 1 user, load average: 0.33, 0.21, 0.19"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004640", "end": "2025-12-16 21:15:08.669143", "msg": "", "rc": 0, "start": "2025-12-16 21:15:08.664503", "stderr": "", "stderr_lines": [], "stdout": " 21:15:08 up 2 days, 10:46, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 21:15:08 up 2 days, 10:46, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003526", "end": "2025-12-16 21:14:39.472756", "msg": "", "rc": 0, "start": "2025-12-16 21:14:39.469230", "stderr": "", "stderr_lines": [], "stdout": " 21:14:39 up 20 days, 8 min, 0 user, load average: 0.67, 0.63, 0.60", "stdout_lines": [" 21:14:39 up 20 days, 8 min, 0 user, load average: 0.67, 0.63, 0.60"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002927", "end": "2025-12-16 21:14:45.880331", "msg": "", "rc": 0, "start": "2025-12-16 21:14:45.877404", "stderr": "", "stderr_lines": [], "stdout": " 21:14:45 up 16 days, 10:30, 0 user, load average: 0.32, 0.23, 0.22", "stdout_lines": [" 21:14:45 up 16 days, 10:30, 0 user, load average: 0.32, 0.23, 0.22"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004301", "end": "2025-12-16 18:15:09.051986", "msg": "", "rc": 0, "start": "2025-12-16 18:15:09.047685", "stderr": "", "stderr_lines": [], "stdout": " 6:15PM up 21 days, 8:04, 1 user, load averages: 0.15, 0.15, 0.18", "stdout_lines": [" 6:15PM up 21 days, 8:04, 1 user, load averages: 0.15, 0.15, 0.18"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009749", "end": "2025-12-16 21:15:09.450821", "msg": "", "rc": 0, "start": "2025-12-16 21:15:09.441072", "stderr": "", "stderr_lines": [], "stdout": " 21:15:09 up 22:56, 1 user, load average: 1.62, 1.42, 1.37", "stdout_lines": [" 21:15:09 up 22:56, 1 user, load average: 1.62, 1.42, 1.37"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019705", "end": "2025-12-16 21:15:09.108404", "msg": "", "rc": 0, "start": "2025-12-16 21:15:09.088699", "stderr": "", "stderr_lines": [], "stdout": " 21:15:09 up 14 days, 10:41, 1 user, load average: 0.89, 0.33, 0.17", "stdout_lines": [" 21:15:09 up 14 days, 10:41, 1 user, load average: 0.89, 0.33, 0.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004765", "end": "2025-12-16 21:15:10.112342", "msg": "", "rc": 0, "start": "2025-12-16 21:15:09.107577", "stderr": "", "stderr_lines": [], "stdout": " 21:15:09 up 2 days, 10:46, 1 user, load average: 0.06, 0.03, 0.01", "stdout_lines": [" 21:15:09 up 2 days, 10:46, 1 user, load average: 0.06, 0.03, 0.01"]}
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-16 21:15:10.532341", "msg": "", "rc": 0, "start": "2025-12-16 21:15:10.527990", "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.004412", "end": "2025-12-16 21:15:10.551388", "msg": "", "rc": 0, "start": "2025-12-16 21:15:10.546976", "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.004847", "end": "2025-12-16 21:15:10.560644", "msg": "", "rc": 0, "start": "2025-12-16 21:15:10.555797", "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.005060", "end": "2025-12-16 21:15:10.590530", "msg": "", "rc": 0, "start": "2025-12-16 21:15:10.585470", "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.006089", "end": "2025-12-16 21:15:10.621002", "msg": "", "rc": 0, "start": "2025-12-16 21:15:10.614913", "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.005198", "end": "2025-12-16 21:14:45.304179", "msg": "", "rc": 0, "start": "2025-12-16 21:14:45.298981", "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.008673", "end": "2025-12-16 21:14:39.157152", "msg": "", "rc": 0, "start": "2025-12-16 21:14:39.148479", "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.016468", "end": "2025-12-16 21:15:11.322366", "msg": "", "rc": 0, "start": "2025-12-16 21:15:11.305898", "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.013778", "end": "2025-12-16 21:15:11.323029", "msg": "", "rc": 0, "start": "2025-12-16 21:15:11.309251", "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.007016", "end": "2025-12-16 21:15:11.487825", "msg": "", "rc": 0, "start": "2025-12-16 21:15:11.480809", "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.005610", "end": "2025-12-16 21:14:42.347817", "msg": "", "rc": 0, "start": "2025-12-16 21:14:42.342207", "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.005611", "end": "2025-12-16 18:15:11.805478", "msg": "", "rc": 0, "start": "2025-12-16 18:15:11.799867", "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.004956", "end": "2025-12-16 21:14:48.695226", "msg": "", "rc": 0, "start": "2025-12-16 21:14:48.690270", "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.006016", "end": "2025-12-16 21:15:11.913640", "msg": "", "rc": 0, "start": "2025-12-16 21:15:11.907624", "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.025615", "end": "2025-12-16 21:15:12.016948", "msg": "", "rc": 0, "start": "2025-12-16 21:15:11.991333", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021531", "end": "2025-12-16 21:15:12.514339", "msg": "", "rc": 0, "start": "2025-12-16 21:15:12.492808", "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.004548", "end": "2025-12-16 21:15:12.573983", "msg": "", "rc": 0, "start": "2025-12-16 21:15:12.569435", "stderr": "", "stderr_lines": [], "stdout": "80.7%", "stdout_lines": ["80.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.004206", "end": "2025-12-16 21:15:12.595997", "msg": "", "rc": 0, "start": "2025-12-16 21:15:12.591791", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005179", "end": "2025-12-16 21:15:12.598868", "msg": "", "rc": 0, "start": "2025-12-16 21:15:12.593689", "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.005141", "end": "2025-12-16 21:15:12.622539", "msg": "", "rc": 0, "start": "2025-12-16 21:15:12.617398", "stderr": "", "stderr_lines": [], "stdout": "9.1%", "stdout_lines": ["9.1%"]}
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.005464", "end": "2025-12-16 21:15:12.633256", "msg": "", "rc": 0, "start": "2025-12-16 21:15:12.627792", "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.003680", "end": "2025-12-16 21:14:47.363679", "msg": "", "rc": 0, "start": "2025-12-16 21:14:47.359999", "stderr": "", "stderr_lines": [], "stdout": "70.5%", "stdout_lines": ["70.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.004608", "end": "2025-12-16 21:14:41.142994", "msg": "", "rc": 0, "start": "2025-12-16 21:14:41.138386", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011973", "end": "2025-12-16 21:15:13.348246", "msg": "", "rc": 0, "start": "2025-12-16 21:15:13.336273", "stderr": "", "stderr_lines": [], "stdout": "13.4%", "stdout_lines": ["13.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.021208", "end": "2025-12-16 21:15:13.383054", "msg": "", "rc": 0, "start": "2025-12-16 21:15:13.361846", "stderr": "", "stderr_lines": [], "stdout": "7.0%", "stdout_lines": ["7.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.005995", "end": "2025-12-16 21:15:13.590592", "msg": "", "rc": 0, "start": "2025-12-16 21:15:13.584597", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.004317", "end": "2025-12-16 21:14:44.327393", "msg": "", "rc": 0, "start": "2025-12-16 21:14:44.323076", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.004272", "end": "2025-12-16 21:14:50.789694", "msg": "", "rc": 0, "start": "2025-12-16 21:14:50.785422", "stderr": "", "stderr_lines": [], "stdout": "59.1%", "stdout_lines": ["59.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.005956", "end": "2025-12-16 18:15:13.921610", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 18:15:13.915654", "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.006761", "end": "2025-12-16 21:15:14.041498", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.034737", "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.009457", "end": "2025-12-16 21:15:14.487642", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.478185", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.026261", "end": "2025-12-16 21:15:13.974400", "msg": "", "rc": 0, "start": "2025-12-16 21:15:13.948139", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.005122", "end": "2025-12-16 21:15:14.518664", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.513542", "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.004837", "end": "2025-12-16 21:15:14.518139", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.513302", "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.005926", "end": "2025-12-16 21:15:14.532891", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.526965", "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.003345", "end": "2025-12-16 21:15:14.549332", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.545987", "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.006716", "end": "2025-12-16 21:15:14.567449", "msg": "", "rc": 0, "start": "2025-12-16 21:15:14.560733", "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.002547", "end": "2025-12-16 21:14:49.278815", "msg": "", "rc": 0, "start": "2025-12-16 21:14:49.276268", "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.003192", "end": "2025-12-16 21:14:43.060652", "msg": "", "rc": 0, "start": "2025-12-16 21:14:43.057460", "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.011836", "end": "2025-12-16 21:15:15.287586", "msg": "", "rc": 0, "start": "2025-12-16 21:15:15.275750", "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.014128", "end": "2025-12-16 21:15:15.282952", "msg": "", "rc": 0, "start": "2025-12-16 21:15:15.268824", "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.003215", "end": "2025-12-16 21:15:15.474793", "msg": "", "rc": 0, "start": "2025-12-16 21:15:15.471578", "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.002905", "end": "2025-12-16 21:14:46.261623", "msg": "", "rc": 0, "start": "2025-12-16 21:14:46.258718", "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.004220", "end": "2025-12-16 18:15:15.783012", "msg": "", "rc": 0, "start": "2025-12-16 18:15:15.778792", "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.002538", "end": "2025-12-16 21:14:52.696044", "msg": "", "rc": 0, "start": "2025-12-16 21:14:52.693506", "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.002924", "end": "2025-12-16 21:15:15.919104", "msg": "", "rc": 0, "start": "2025-12-16 21:15:15.916180", "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.005279", "end": "2025-12-16 21:15:16.489074", "msg": "", "rc": 0, "start": "2025-12-16 21:15:16.483795", "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.028828", "end": "2025-12-16 21:15:15.923201", "msg": "", "rc": 0, "start": "2025-12-16 21:15:15.894373", "stderr": "", "stderr_lines": [], "stdout": "37.3°C", "stdout_lines": ["37.3°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.004308", "end": "2025-12-16 21:15:16.455278", "msg": "", "rc": 0, "start": "2025-12-16 21:15:16.450970", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.004039", "end": "2025-12-16 21:15:16.482441", "msg": "", "rc": 0, "start": "2025-12-16 21:15:16.478402", "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.004800", "end": "2025-12-16 21:15:16.491773", "msg": "", "rc": 0, "start": "2025-12-16 21:15:16.486973", "stderr": "", "stderr_lines": [], "stdout": "0.68", "stdout_lines": ["0.68"]}
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.005771", "end": "2025-12-16 21:15:16.527452", "msg": "", "rc": 0, "start": "2025-12-16 21:15:16.521681", "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.005586", "end": "2025-12-16 21:15:16.532726", "msg": "", "rc": 0, "start": "2025-12-16 21:15:16.527140", "stderr": "", "stderr_lines": [], "stdout": "1.16", "stdout_lines": ["1.16"]}
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.004912", "end": "2025-12-16 21:14:51.265621", "msg": "", "rc": 0, "start": "2025-12-16 21:14:51.260709", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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-16 21:14:45.055586", "msg": "", "rc": 0, "start": "2025-12-16 21:14:45.050350", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.012865", "end": "2025-12-16 21:15:17.212223", "msg": "", "rc": 0, "start": "2025-12-16 21:15:17.199358", "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.012979", "end": "2025-12-16 21:15:17.254434", "msg": "", "rc": 0, "start": "2025-12-16 21:15:17.241455", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.005771", "end": "2025-12-16 21:15:17.472699", "msg": "", "rc": 0, "start": "2025-12-16 21:15:17.466928", "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.005004", "end": "2025-12-16 21:14:48.229667", "msg": "", "rc": 0, "start": "2025-12-16 21:14:48.224663", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
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.004545", "end": "2025-12-16 21:14:54.601279", "msg": "", "rc": 0, "start": "2025-12-16 21:14:54.596734", "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.006641", "end": "2025-12-16 18:15:17.763412", "msg": "", "rc": 0, "start": "2025-12-16 18:15:17.756771", "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.005280", "end": "2025-12-16 21:15:17.901096", "msg": "", "rc": 0, "start": "2025-12-16 21:15:17.895816", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.008028", "end": "2025-12-16 21:15:18.528072", "msg": "", "rc": 0, "start": "2025-12-16 21:15:18.520044", "stderr": "", "stderr_lines": [], "stdout": "1.61", "stdout_lines": ["1.61"]}
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.024334", "end": "2025-12-16 21:15:17.863616", "msg": "", "rc": 0, "start": "2025-12-16 21:15:17.839282", "stderr": "", "stderr_lines": [], "stdout": "0.99", "stdout_lines": ["0.99"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:07 up 2 days, 10:47, 1 user, load average: 0.45, 0.42, 0.33\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.41\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:07 up 21 days, 8:06, 1 user, load average: 0.20, 0.17, 0.12\nDisk Usage: 23%\nMemory Usage: 80.7%\nCPU Load: 0.32\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:07 up 21 days, 8:26, 1 user, load average: 0.62, 0.69, 0.72\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.68\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:07 up 21 days, 9:39, 1 user, load average: 1.09, 0.81, 0.76\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 1.16\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:07 up 21 days, 10:25, 1 user, load average: 0.27, 0.10, 0.03\nDisk Usage: 9%\nMemory Usage: 9.1%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:09 up 14 days, 10:41, 1 user, load average: 0.89, 0.33, 0.17\nDisk Usage: 21%\nMemory Usage: 20.5%\nCPU Load: 0.99\nCPU Temp: 37.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:08 up 193 days, 12:47, 1 user, load average: 0.33, 0.21, 0.19\nDisk Usage: 6%\nMemory Usage: 13.4%\nCPU Load: 0.36\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:08 up 193 days, 12:48, 1 user, load average: 0.23, 0.15, 0.10\nDisk Usage: 3%\nMemory Usage: 7.0%\nCPU Load: 0.42\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:14:42 up 10 days, 9:04, 0 user, load average: 0.17, 0.18, 0.14\nDisk Usage: 48%\nMemory Usage: 70.5%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:14:36 up 17 days, 5:16, 0 user, load average: 0.16, 0.06, 0.01\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:08 up 2 days, 10:46, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:14:39 up 20 days, 8 min, 0 user, load average: 0.67, 0.63, 0.60\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.61\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:14:45 up 16 days, 10:30, 0 user, load average: 0.32, 0.23, 0.22\nDisk Usage: 75%\nMemory Usage: 59.1%\nCPU Load: 0.30\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 6:15PM up 21 days, 8:04, 1 user, load averages: 0.15, 0.15, 0.18\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: 21:15:09 up 2 days, 10:46, 1 user, load average: 0.06, 0.03, 0.01\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 21:15:09 up 22:56, 1 user, load average: 1.62, 1.42, 1.37\nDisk Usage: 1%\nMemory Usage: 22.0%\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-17T02:15:19.420266+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `c6f75da67b0847b383f8094561871c40` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:00:00.001340+00:00 |
| **Fin** | 2025-12-16T16:00:22.259437+00:00 |
| **Durée** | 22.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: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.003335", "end": "2025-12-16 11:00:11.885649", "msg": "", "rc": 0, "start": "2025-12-16 11:00:11.882314", "stderr": "", "stderr_lines": [], "stdout": " 11:00:11 up 20 days, 21:51, 1 user, load average: 0.44, 0.30, 0.24", "stdout_lines": [" 11:00:11 up 20 days, 21:51, 1 user, load average: 0.44, 0.30, 0.24"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003938", "end": "2025-12-16 11:00:11.897194", "msg": "", "rc": 0, "start": "2025-12-16 11:00:11.893256", "stderr": "", "stderr_lines": [], "stdout": " 11:00:11 up 21 days, 10 min, 1 user, load average: 0.01, 0.04, 0.04", "stdout_lines": [" 11:00:11 up 21 days, 10 min, 1 user, load average: 0.01, 0.04, 0.04"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002759", "end": "2025-12-16 11:00:11.919933", "msg": "", "rc": 0, "start": "2025-12-16 11:00:11.917174", "stderr": "", "stderr_lines": [], "stdout": " 11:00:11 up 2 days, 32 min, 1 user, load average: 0.27, 0.21, 0.18", "stdout_lines": [" 11:00:11 up 2 days, 32 min, 1 user, load average: 0.27, 0.21, 0.18"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004181", "end": "2025-12-16 11:00:11.940617", "msg": "", "rc": 0, "start": "2025-12-16 11:00:11.936436", "stderr": "", "stderr_lines": [], "stdout": " 11:00:11 up 20 days, 23:24, 1 user, load average: 0.47, 0.54, 0.56", "stdout_lines": [" 11:00:11 up 20 days, 23:24, 1 user, load average: 0.47, 0.54, 0.56"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004319", "end": "2025-12-16 11:00:11.939691", "msg": "", "rc": 0, "start": "2025-12-16 11:00:11.935372", "stderr": "", "stderr_lines": [], "stdout": " 11:00:11 up 20 days, 22:11, 1 user, load average: 1.18, 0.93, 0.89", "stdout_lines": [" 11:00:11 up 20 days, 22:11, 1 user, load average: 1.18, 0.93, 0.89"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004738", "end": "2025-12-16 10:59:47.112117", "msg": "", "rc": 0, "start": "2025-12-16 10:59:47.107379", "stderr": "", "stderr_lines": [], "stdout": " 10:59:47 up 9 days, 22:49, 0 user, load average: 0.04, 0.14, 0.18", "stdout_lines": [" 10:59:47 up 9 days, 22:49, 0 user, load average: 0.04, 0.14, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006639", "end": "2025-12-16 10:59:41.042159", "msg": "", "rc": 0, "start": "2025-12-16 10:59:41.035520", "stderr": "", "stderr_lines": [], "stdout": " 10:59:41 up 16 days, 19:01, 0 user, load average: 0.18, 0.13, 0.06", "stdout_lines": [" 10:59:41 up 16 days, 19:01, 0 user, load average: 0.18, 0.13, 0.06"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008522", "end": "2025-12-16 11:00:12.579326", "msg": "", "rc": 0, "start": "2025-12-16 11:00:12.570804", "stderr": "", "stderr_lines": [], "stdout": " 11:00:12 up 193 days, 2:33, 1 user, load average: 0.11, 0.10, 0.09", "stdout_lines": [" 11:00:12 up 193 days, 2:33, 1 user, load average: 0.11, 0.10, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009322", "end": "2025-12-16 11:00:12.598795", "msg": "", "rc": 0, "start": "2025-12-16 11:00:12.589473", "stderr": "", "stderr_lines": [], "stdout": " 11:00:12 up 193 days, 2:33, 1 user, load average: 0.16, 0.16, 0.17", "stdout_lines": [" 11:00:12 up 193 days, 2:33, 1 user, load average: 0.16, 0.16, 0.17"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004694", "end": "2025-12-16 11:00:12.868059", "msg": "", "rc": 0, "start": "2025-12-16 11:00:12.863365", "stderr": "", "stderr_lines": [], "stdout": " 11:00:12 up 2 days, 31 min, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:00:12 up 2 days, 31 min, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004809", "end": "2025-12-16 08:00:13.047467", "msg": "", "rc": 0, "start": "2025-12-16 08:00:13.042658", "stderr": "", "stderr_lines": [], "stdout": " 8:00AM up 20 days, 21:50, 1 user, load averages: 0.34, 0.33, 0.23", "stdout_lines": [" 8:00AM up 20 days, 21:50, 1 user, load averages: 0.34, 0.33, 0.23"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003328", "end": "2025-12-16 10:59:44.221866", "msg": "", "rc": 0, "start": "2025-12-16 10:59:44.218538", "stderr": "", "stderr_lines": [], "stdout": " 10:59:44 up 19 days, 13:54, 0 user, load average: 0.43, 0.44, 0.45", "stdout_lines": [" 10:59:44 up 19 days, 13:54, 0 user, load average: 0.43, 0.44, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008778", "end": "2025-12-16 10:59:50.428386", "msg": "", "rc": 0, "start": "2025-12-16 10:59:50.419608", "stderr": "", "stderr_lines": [], "stdout": " 10:59:50 up 16 days, 15 min, 0 user, load average: 0.35, 0.22, 0.20", "stdout_lines": [" 10:59:50 up 16 days, 15 min, 0 user, load average: 0.35, 0.22, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003702", "end": "2025-12-16 11:00:13.293807", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.290105", "stderr": "", "stderr_lines": [], "stdout": " 11:00:13 up 2 days, 31 min, 1 user, load average: 0.03, 0.04, 0.01", "stdout_lines": [" 11:00:13 up 2 days, 31 min, 1 user, load average: 0.03, 0.04, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019714", "end": "2025-12-16 11:00:13.265506", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.245792", "stderr": "", "stderr_lines": [], "stdout": " 11:00:13 up 14 days, 26 min, 1 user, load average: 0.07, 0.02, 0.00", "stdout_lines": [" 11:00:13 up 14 days, 26 min, 1 user, load average: 0.07, 0.02, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.023967", "end": "2025-12-16 11:00:13.494678", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.470711", "stderr": "", "stderr_lines": [], "stdout": " 11:00:13 up 12:19, 1 user, load average: 1.12, 0.40, 0.31", "stdout_lines": [" 11:00:13 up 12:19, 1 user, load average: 1.12, 0.40, 0.31"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004541", "end": "2025-12-16 11:00:13.830719", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.826178", "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.004236", "end": "2025-12-16 11:00:13.839963", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.835727", "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.004635", "end": "2025-12-16 11:00:13.860428", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.855793", "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.004153", "end": "2025-12-16 11:00:13.877124", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.872971", "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.005746", "end": "2025-12-16 11:00:13.895300", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.889554", "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.005517", "end": "2025-12-16 10:59:49.060392", "msg": "", "rc": 0, "start": "2025-12-16 10:59:49.054875", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005489", "end": "2025-12-16 10:59:42.994996", "msg": "", "rc": 0, "start": "2025-12-16 10:59:42.989507", "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.010440", "end": "2025-12-16 11:00:14.575791", "msg": "", "rc": 0, "start": "2025-12-16 11:00:14.565351", "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.011555", "end": "2025-12-16 11:00:14.615247", "msg": "", "rc": 0, "start": "2025-12-16 11:00:14.603692", "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.005732", "end": "2025-12-16 11:00:14.813368", "msg": "", "rc": 0, "start": "2025-12-16 11:00:14.807636", "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.005405", "end": "2025-12-16 10:59:46.171735", "msg": "", "rc": 0, "start": "2025-12-16 10:59:46.166330", "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.005996", "end": "2025-12-16 08:00:15.087037", "msg": "", "rc": 0, "start": "2025-12-16 08:00:15.081041", "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.008560", "end": "2025-12-16 10:59:52.415297", "msg": "", "rc": 0, "start": "2025-12-16 10:59:52.406737", "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.005475", "end": "2025-12-16 11:00:15.272236", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.266761", "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.025346", "end": "2025-12-16 11:00:15.241668", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.216322", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018264", "end": "2025-12-16 11:00:15.529826", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.511562", "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.004634", "end": "2025-12-16 11:00:15.793034", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.788400", "stderr": "", "stderr_lines": [], "stdout": "88.1%", "stdout_lines": ["88.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.004363", "end": "2025-12-16 11:00:15.818536", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.814173", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004524", "end": "2025-12-16 11:00:15.833742", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.829218", "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.004890", "end": "2025-12-16 11:00:15.869324", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.864434", "stderr": "", "stderr_lines": [], "stdout": "9.1%", "stdout_lines": ["9.1%"]}
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.005459", "end": "2025-12-16 11:00:15.873157", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.867698", "stderr": "", "stderr_lines": [], "stdout": "60.1%", "stdout_lines": ["60.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.004723", "end": "2025-12-16 10:59:51.057765", "msg": "", "rc": 0, "start": "2025-12-16 10:59:51.053042", "stderr": "", "stderr_lines": [], "stdout": "68.8%", "stdout_lines": ["68.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.004032", "end": "2025-12-16 10:59:44.962663", "msg": "", "rc": 0, "start": "2025-12-16 10:59:44.958631", "stderr": "", "stderr_lines": [], "stdout": "72.8%", "stdout_lines": ["72.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.010969", "end": "2025-12-16 11:00:16.514804", "msg": "", "rc": 0, "start": "2025-12-16 11:00:16.503835", "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.011867", "end": "2025-12-16 11:00:16.566847", "msg": "", "rc": 0, "start": "2025-12-16 11:00:16.554980", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005898", "end": "2025-12-16 11:00:16.814188", "msg": "", "rc": 0, "start": "2025-12-16 11:00:16.808290", "stderr": "", "stderr_lines": [], "stdout": "35.2%", "stdout_lines": ["35.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.004241", "end": "2025-12-16 10:59:48.142924", "msg": "", "rc": 0, "start": "2025-12-16 10:59:48.138683", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005220", "end": "2025-12-16 08:00:17.033282", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:00:17.028062", "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.014329", "end": "2025-12-16 10:59:54.366505", "msg": "", "rc": 0, "start": "2025-12-16 10:59:54.352176", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.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.005372", "end": "2025-12-16 11:00:17.238442", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.233070", "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.008977", "end": "2025-12-16 11:00:17.480945", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.471968", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.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.025933", "end": "2025-12-16 11:00:17.205035", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.179102", "stderr": "", "stderr_lines": [], "stdout": "18.4%", "stdout_lines": ["18.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.005423", "end": "2025-12-16 11:00:17.717997", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.712574", "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.004919", "end": "2025-12-16 11:00:17.755894", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.750975", "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.005789", "end": "2025-12-16 11:00:17.769576", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.763787", "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.003363", "end": "2025-12-16 11:00:17.777717", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.774354", "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.006751", "end": "2025-12-16 11:00:17.791816", "msg": "", "rc": 0, "start": "2025-12-16 11:00:17.785065", "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.002892", "end": "2025-12-16 10:59:52.954260", "msg": "", "rc": 0, "start": "2025-12-16 10:59:52.951368", "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-16 10:59:46.899303", "msg": "", "rc": 0, "start": "2025-12-16 10:59:46.896312", "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.011702", "end": "2025-12-16 11:00:18.434800", "msg": "", "rc": 0, "start": "2025-12-16 11:00:18.423098", "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.013226", "end": "2025-12-16 11:00:18.478282", "msg": "", "rc": 0, "start": "2025-12-16 11:00:18.465056", "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.003338", "end": "2025-12-16 11:00:18.682641", "msg": "", "rc": 0, "start": "2025-12-16 11:00:18.679303", "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.003085", "end": "2025-12-16 10:59:50.069802", "msg": "", "rc": 0, "start": "2025-12-16 10:59:50.066717", "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.004092", "end": "2025-12-16 08:00:18.950821", "msg": "", "rc": 0, "start": "2025-12-16 08:00:18.946729", "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.003838", "end": "2025-12-16 10:59:56.312707", "msg": "", "rc": 0, "start": "2025-12-16 10:59:56.308869", "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.002958", "end": "2025-12-16 11:00:19.096306", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.093348", "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.005205", "end": "2025-12-16 11:00:19.481891", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.476686", "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.028672", "end": "2025-12-16 11:00:19.099881", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.071209", "stderr": "", "stderr_lines": [], "stdout": "34.9°C", "stdout_lines": ["34.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.004312", "end": "2025-12-16 11:00:19.623115", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.618803", "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.004175", "end": "2025-12-16 11:00:19.652221", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.648046", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.004424", "end": "2025-12-16 11:00:19.673217", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.668793", "stderr": "", "stderr_lines": [], "stdout": "1.25", "stdout_lines": ["1.25"]}
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.005555", "end": "2025-12-16 11:00:19.680239", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.674684", "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.005380", "end": "2025-12-16 11:00:19.694184", "msg": "", "rc": 0, "start": "2025-12-16 11:00:19.688804", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
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.004955", "end": "2025-12-16 10:59:54.874425", "msg": "", "rc": 0, "start": "2025-12-16 10:59:54.869470", "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.004988", "end": "2025-12-16 10:59:48.761599", "msg": "", "rc": 0, "start": "2025-12-16 10:59:48.756611", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.010141", "end": "2025-12-16 11:00:20.429016", "msg": "", "rc": 0, "start": "2025-12-16 11:00:20.418875", "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.011526", "end": "2025-12-16 11:00:20.455431", "msg": "", "rc": 0, "start": "2025-12-16 11:00:20.443905", "stderr": "", "stderr_lines": [], "stdout": "0.71", "stdout_lines": ["0.71"]}
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-16 11:00:20.619697", "msg": "", "rc": 0, "start": "2025-12-16 11:00:20.614150", "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.004968", "end": "2025-12-16 10:59:51.916213", "msg": "", "rc": 0, "start": "2025-12-16 10:59:51.911245", "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.006847", "end": "2025-12-16 08:00:20.921966", "msg": "", "rc": 0, "start": "2025-12-16 08:00:20.915119", "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.004650", "end": "2025-12-16 10:59:58.273400", "msg": "", "rc": 0, "start": "2025-12-16 10:59:58.268750", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.007939", "end": "2025-12-16 11:00:21.380280", "msg": "", "rc": 0, "start": "2025-12-16 11:00:21.372341", "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.005579", "end": "2025-12-16 11:00:21.047839", "msg": "", "rc": 0, "start": "2025-12-16 11:00:21.042260", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.023669", "end": "2025-12-16 11:00:21.000540", "msg": "", "rc": 0, "start": "2025-12-16 11:00:20.976871", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:11 up 20 days, 21:51, 1 user, load average: 0.44, 0.30, 0.24\nDisk Usage: 23%\nMemory Usage: 88.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: 11:00:11 up 2 days, 32 min, 1 user, load average: 0.27, 0.21, 0.18\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.33\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:11 up 20 days, 22:11, 1 user, load average: 1.18, 0.93, 0.89\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 1.25\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:11 up 20 days, 23:24, 1 user, load average: 0.47, 0.54, 0.56\nDisk Usage: 14%\nMemory Usage: 60.1%\nCPU Load: 0.48\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:11 up 21 days, 10 min, 1 user, load average: 0.01, 0.04, 0.04\nDisk Usage: 9%\nMemory Usage: 9.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:13 up 14 days, 26 min, 1 user, load average: 0.07, 0.02, 0.00\nDisk Usage: 21%\nMemory Usage: 18.4%\nCPU Load: 0.15\nCPU Temp: 34.9°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:12 up 193 days, 2:33, 1 user, load average: 0.16, 0.16, 0.17\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.71\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:12 up 193 days, 2:33, 1 user, load average: 0.11, 0.10, 0.09\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.10\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:59:47 up 9 days, 22:49, 0 user, load average: 0.04, 0.14, 0.18\nDisk Usage: 47%\nMemory Usage: 68.8%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:59:41 up 16 days, 19:01, 0 user, load average: 0.18, 0.13, 0.06\nDisk Usage: 24%\nMemory Usage: 72.8%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00:12 up 2 days, 31 min, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 1%\nMemory Usage: 35.2%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:59:44 up 19 days, 13:54, 0 user, load average: 0.43, 0.44, 0.45\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.40\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:59:50 up 16 days, 15 min, 0 user, load average: 0.35, 0.22, 0.20\nDisk Usage: 75%\nMemory Usage: 59.4%\nCPU Load: 0.65\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:00AM up 20 days, 21:50, 1 user, load averages: 0.34, 0.33, 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: 11:00:13 up 2 days, 31 min, 1 user, load average: 0.03, 0.04, 0.01\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: 11:00:13 up 12:19, 1 user, load average: 1.12, 0.40, 0.31\nDisk Usage: 1%\nMemory Usage: 20.1%\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-16T16:00:22.305943+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `e361ae5e9c72417ca2e6a251f58ce98e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:05:00.001251+00:00 |
| **Fin** | 2025-12-16T16:05:22.098748+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: [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.003205", "end": "2025-12-16 11:05:11.484053", "msg": "", "rc": 0, "start": "2025-12-16 11:05:11.480848", "stderr": "", "stderr_lines": [], "stdout": " 11:05:11 up 20 days, 21:56, 1 user, load average: 0.48, 0.36, 0.28", "stdout_lines": [" 11:05:11 up 20 days, 21:56, 1 user, load average: 0.48, 0.36, 0.28"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003282", "end": "2025-12-16 11:05:11.489240", "msg": "", "rc": 0, "start": "2025-12-16 11:05:11.485958", "stderr": "", "stderr_lines": [], "stdout": " 11:05:11 up 20 days, 22:16, 1 user, load average: 0.36, 0.69, 0.81", "stdout_lines": [" 11:05:11 up 20 days, 22:16, 1 user, load average: 0.36, 0.69, 0.81"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004969", "end": "2025-12-16 11:05:11.490196", "msg": "", "rc": 0, "start": "2025-12-16 11:05:11.485227", "stderr": "", "stderr_lines": [], "stdout": " 11:05:11 up 21 days, 15 min, 1 user, load average: 0.00, 0.01, 0.02", "stdout_lines": [" 11:05:11 up 21 days, 15 min, 1 user, load average: 0.00, 0.01, 0.02"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002844", "end": "2025-12-16 11:05:11.517441", "msg": "", "rc": 0, "start": "2025-12-16 11:05:11.514597", "stderr": "", "stderr_lines": [], "stdout": " 11:05:11 up 2 days, 37 min, 1 user, load average: 0.28, 0.17, 0.17", "stdout_lines": [" 11:05:11 up 2 days, 37 min, 1 user, load average: 0.28, 0.17, 0.17"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004144", "end": "2025-12-16 11:05:11.513706", "msg": "", "rc": 0, "start": "2025-12-16 11:05:11.509562", "stderr": "", "stderr_lines": [], "stdout": " 11:05:11 up 20 days, 23:29, 1 user, load average: 0.43, 0.55, 0.58", "stdout_lines": [" 11:05:11 up 20 days, 23:29, 1 user, load average: 0.43, 0.55, 0.58"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002961", "end": "2025-12-16 11:04:46.694417", "msg": "", "rc": 0, "start": "2025-12-16 11:04:46.691456", "stderr": "", "stderr_lines": [], "stdout": " 11:04:46 up 9 days, 22:54, 0 user, load average: 0.33, 0.28, 0.22", "stdout_lines": [" 11:04:46 up 9 days, 22:54, 0 user, load average: 0.33, 0.28, 0.22"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003690", "end": "2025-12-16 11:04:40.630080", "msg": "", "rc": 0, "start": "2025-12-16 11:04:40.626390", "stderr": "", "stderr_lines": [], "stdout": " 11:04:40 up 16 days, 19:06, 0 user, load average: 0.04, 0.06, 0.04", "stdout_lines": [" 11:04:40 up 16 days, 19:06, 0 user, load average: 0.04, 0.06, 0.04"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008559", "end": "2025-12-16 11:05:12.160016", "msg": "", "rc": 0, "start": "2025-12-16 11:05:12.151457", "stderr": "", "stderr_lines": [], "stdout": " 11:05:12 up 193 days, 2:38, 1 user, load average: 0.27, 0.17, 0.11", "stdout_lines": [" 11:05:12 up 193 days, 2:38, 1 user, load average: 0.27, 0.17, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009297", "end": "2025-12-16 11:05:12.220577", "msg": "", "rc": 0, "start": "2025-12-16 11:05:12.211280", "stderr": "", "stderr_lines": [], "stdout": " 11:05:12 up 193 days, 2:38, 1 user, load average: 0.27, 0.28, 0.22", "stdout_lines": [" 11:05:12 up 193 days, 2:38, 1 user, load average: 0.27, 0.28, 0.22"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004780", "end": "2025-12-16 11:05:12.464680", "msg": "", "rc": 0, "start": "2025-12-16 11:05:12.459900", "stderr": "", "stderr_lines": [], "stdout": " 11:05:12 up 2 days, 36 min, 1 user, load average: 0.24, 0.07, 0.02", "stdout_lines": [" 11:05:12 up 2 days, 36 min, 1 user, load average: 0.24, 0.07, 0.02"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003520", "end": "2025-12-16 11:04:49.972772", "msg": "", "rc": 0, "start": "2025-12-16 11:04:49.969252", "stderr": "", "stderr_lines": [], "stdout": " 11:04:49 up 16 days, 20 min, 0 user, load average: 0.38, 0.27, 0.22", "stdout_lines": [" 11:04:49 up 16 days, 20 min, 0 user, load average: 0.38, 0.27, 0.22"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003623", "end": "2025-12-16 11:04:43.826994", "msg": "", "rc": 0, "start": "2025-12-16 11:04:43.823371", "stderr": "", "stderr_lines": [], "stdout": " 11:04:43 up 19 days, 13:59, 0 user, load average: 0.81, 0.65, 0.53", "stdout_lines": [" 11:04:43 up 19 days, 13:59, 0 user, load average: 0.81, 0.65, 0.53"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004215", "end": "2025-12-16 08:05:12.691979", "msg": "", "rc": 0, "start": "2025-12-16 08:05:12.687764", "stderr": "", "stderr_lines": [], "stdout": " 8:05AM up 20 days, 21:55, 1 user, load averages: 0.14, 0.21, 0.21", "stdout_lines": [" 8:05AM up 20 days, 21:55, 1 user, load averages: 0.14, 0.21, 0.21"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003711", "end": "2025-12-16 11:05:12.885294", "msg": "", "rc": 0, "start": "2025-12-16 11:05:12.881583", "stderr": "", "stderr_lines": [], "stdout": " 11:05:12 up 2 days, 36 min, 1 user, load average: 0.03, 0.07, 0.02", "stdout_lines": [" 11:05:12 up 2 days, 36 min, 1 user, load average: 0.03, 0.07, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009328", "end": "2025-12-16 11:05:13.332362", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.323034", "stderr": "", "stderr_lines": [], "stdout": " 11:05:13 up 12:24, 1 user, load average: 1.48, 0.95, 0.58", "stdout_lines": [" 11:05:13 up 12:24, 1 user, load average: 1.48, 0.95, 0.58"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019336", "end": "2025-12-16 11:05:12.868116", "msg": "", "rc": 0, "start": "2025-12-16 11:05:12.848780", "stderr": "", "stderr_lines": [], "stdout": " 11:05:12 up 14 days, 31 min, 1 user, load average: 0.11, 0.04, 0.01", "stdout_lines": [" 11:05:12 up 14 days, 31 min, 1 user, load average: 0.11, 0.04, 0.01"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004264", "end": "2025-12-16 11:05:13.383880", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.379616", "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.004732", "end": "2025-12-16 11:05:13.405156", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.400424", "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.004315", "end": "2025-12-16 11:05:13.416978", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.412663", "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.004578", "end": "2025-12-16 11:05:13.440497", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.435919", "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.005775", "end": "2025-12-16 11:05:13.484170", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.478395", "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.004863", "end": "2025-12-16 11:04:48.603773", "msg": "", "rc": 0, "start": "2025-12-16 11:04:48.598910", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006315", "end": "2025-12-16 11:04:42.573356", "msg": "", "rc": 0, "start": "2025-12-16 11:04:42.567041", "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.010704", "end": "2025-12-16 11:05:14.126616", "msg": "", "rc": 0, "start": "2025-12-16 11:05:14.115912", "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.011742", "end": "2025-12-16 11:05:14.141598", "msg": "", "rc": 0, "start": "2025-12-16 11:05:14.129856", "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.005736", "end": "2025-12-16 11:05:14.364701", "msg": "", "rc": 0, "start": "2025-12-16 11:05:14.358965", "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.005546", "end": "2025-12-16 08:05:14.599177", "msg": "", "rc": 0, "start": "2025-12-16 08:05:14.593631", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [automate.prod.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005308", "end": "2025-12-16 11:04:45.767229", "msg": "", "rc": 0, "start": "2025-12-16 11:04:45.761921", "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.005494", "end": "2025-12-16 11:04:51.941939", "msg": "", "rc": 0, "start": "2025-12-16 11:04:51.936445", "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.005615", "end": "2025-12-16 11:05:14.784709", "msg": "", "rc": 0, "start": "2025-12-16 11:05:14.779094", "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.025226", "end": "2025-12-16 11:05:14.774292", "msg": "", "rc": 0, "start": "2025-12-16 11:05:14.749066", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021422", "end": "2025-12-16 11:05:15.350436", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.329014", "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.005083", "end": "2025-12-16 11:05:15.327246", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.322163", "stderr": "", "stderr_lines": [], "stdout": "88.1%", "stdout_lines": ["88.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.004524", "end": "2025-12-16 11:05:15.338210", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.333686", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004233", "end": "2025-12-16 11:05:15.339383", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.335150", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004962", "end": "2025-12-16 11:05:15.369039", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.364077", "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.007288", "end": "2025-12-16 11:05:15.382093", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.374805", "stderr": "", "stderr_lines": [], "stdout": "60.2%", "stdout_lines": ["60.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.006721", "end": "2025-12-16 11:04:50.594150", "msg": "", "rc": 0, "start": "2025-12-16 11:04:50.587429", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.004476", "end": "2025-12-16 11:04:44.474963", "msg": "", "rc": 0, "start": "2025-12-16 11:04:44.470487", "stderr": "", "stderr_lines": [], "stdout": "72.8%", "stdout_lines": ["72.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.011190", "end": "2025-12-16 11:05:16.025356", "msg": "", "rc": 0, "start": "2025-12-16 11:05:16.014166", "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.011956", "end": "2025-12-16 11:05:16.052593", "msg": "", "rc": 0, "start": "2025-12-16 11:05:16.040637", "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.005951", "end": "2025-12-16 11:05:16.366014", "msg": "", "rc": 0, "start": "2025-12-16 11:05:16.360063", "stderr": "", "stderr_lines": [], "stdout": "35.2%", "stdout_lines": ["35.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.004166", "end": "2025-12-16 11:04:47.651942", "msg": "", "rc": 0, "start": "2025-12-16 11:04:47.647776", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.005458", "end": "2025-12-16 08:05:16.525036", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:05:16.519578", "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.004881", "end": "2025-12-16 11:04:53.899814", "msg": "", "rc": 0, "start": "2025-12-16 11:04:53.894933", "stderr": "", "stderr_lines": [], "stdout": "55.8%", "stdout_lines": ["55.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.008997", "end": "2025-12-16 11:05:17.286177", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.277180", "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.005369", "end": "2025-12-16 11:05:16.789783", "msg": "", "rc": 0, "start": "2025-12-16 11:05:16.784414", "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.025480", "end": "2025-12-16 11:05:16.720872", "msg": "", "rc": 0, "start": "2025-12-16 11:05:16.695392", "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.005100", "end": "2025-12-16 11:05:17.253344", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.248244", "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.004832", "end": "2025-12-16 11:05:17.259501", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.254669", "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.005627", "end": "2025-12-16 11:05:17.273021", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.267394", "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.003384", "end": "2025-12-16 11:05:17.285860", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.282476", "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.006553", "end": "2025-12-16 11:05:17.306630", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.300077", "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.003531", "end": "2025-12-16 11:04:52.481051", "msg": "", "rc": 0, "start": "2025-12-16 11:04:52.477520", "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.003088", "end": "2025-12-16 11:04:46.384360", "msg": "", "rc": 0, "start": "2025-12-16 11:04:46.381272", "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.012013", "end": "2025-12-16 11:05:17.949655", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.937642", "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.013242", "end": "2025-12-16 11:05:17.992907", "msg": "", "rc": 0, "start": "2025-12-16 11:05:17.979665", "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.003593", "end": "2025-12-16 11:05:18.243308", "msg": "", "rc": 0, "start": "2025-12-16 11:05:18.239715", "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.003002", "end": "2025-12-16 11:04:49.552505", "msg": "", "rc": 0, "start": "2025-12-16 11:04:49.549503", "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.002998", "end": "2025-12-16 11:04:55.781991", "msg": "", "rc": 0, "start": "2025-12-16 11:04:55.778993", "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.004046", "end": "2025-12-16 08:05:18.469029", "msg": "", "rc": 0, "start": "2025-12-16 08:05:18.464983", "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.002945", "end": "2025-12-16 11:05:18.670148", "msg": "", "rc": 0, "start": "2025-12-16 11:05:18.667203", "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.004473", "end": "2025-12-16 11:05:19.268051", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.263578", "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.028547", "end": "2025-12-16 11:05:18.646363", "msg": "", "rc": 0, "start": "2025-12-16 11:05:18.617816", "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.004181", "end": "2025-12-16 11:05:19.155492", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.151311", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.003936", "end": "2025-12-16 11:05:19.176001", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.172065", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.004778", "end": "2025-12-16 11:05:19.179990", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.175212", "stderr": "", "stderr_lines": [], "stdout": "0.66", "stdout_lines": ["0.66"]}
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.005230", "end": "2025-12-16 11:05:19.206425", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.201195", "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.005460", "end": "2025-12-16 11:05:19.227030", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.221570", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.004152", "end": "2025-12-16 11:04:54.363720", "msg": "", "rc": 0, "start": "2025-12-16 11:04:54.359568", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.004854", "end": "2025-12-16 11:04:48.287022", "msg": "", "rc": 0, "start": "2025-12-16 11:04:48.282168", "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.010345", "end": "2025-12-16 11:05:19.948246", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.937901", "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.011715", "end": "2025-12-16 11:05:19.969793", "msg": "", "rc": 0, "start": "2025-12-16 11:05:19.958078", "stderr": "", "stderr_lines": [], "stdout": "0.49", "stdout_lines": ["0.49"]}
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.005496", "end": "2025-12-16 11:05:20.128140", "msg": "", "rc": 0, "start": "2025-12-16 11:05:20.122644", "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.004804", "end": "2025-12-16 11:04:51.455058", "msg": "", "rc": 0, "start": "2025-12-16 11:04:51.450254", "stderr": "", "stderr_lines": [], "stdout": "0.76", "stdout_lines": ["0.76"]}
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.004453", "end": "2025-12-16 11:04:57.759998", "msg": "", "rc": 0, "start": "2025-12-16 11:04:57.755545", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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-16 08:05:20.450523", "msg": "", "rc": 0, "start": "2025-12-16 08:05:20.444344", "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.005258", "end": "2025-12-16 11:05:20.554370", "msg": "", "rc": 0, "start": "2025-12-16 11:05:20.549112", "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.008687", "end": "2025-12-16 11:05:21.234986", "msg": "", "rc": 0, "start": "2025-12-16 11:05:21.226299", "stderr": "", "stderr_lines": [], "stdout": "1.48", "stdout_lines": ["1.48"]}
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.024420", "end": "2025-12-16 11:05:20.539367", "msg": "", "rc": 0, "start": "2025-12-16 11:05:20.514947", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:11 up 2 days, 37 min, 1 user, load average: 0.28, 0.17, 0.17\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.25\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:11 up 20 days, 21:56, 1 user, load average: 0.48, 0.36, 0.28\nDisk Usage: 23%\nMemory Usage: 88.1%\nCPU Load: 0.41\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:11 up 20 days, 22:16, 1 user, load average: 0.36, 0.69, 0.81\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.66\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:11 up 20 days, 23:29, 1 user, load average: 0.43, 0.55, 0.58\nDisk Usage: 14%\nMemory Usage: 60.2%\nCPU Load: 0.55\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:11 up 21 days, 15 min, 1 user, load average: 0.00, 0.01, 0.02\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:12 up 14 days, 31 min, 1 user, load average: 0.11, 0.04, 0.01\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.18\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:12 up 193 days, 2:38, 1 user, load average: 0.27, 0.28, 0.22\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.49\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:12 up 193 days, 2:38, 1 user, load average: 0.27, 0.17, 0.11\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.24\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:04:46 up 9 days, 22:54, 0 user, load average: 0.33, 0.28, 0.22\nDisk Usage: 47%\nMemory Usage: 69.1%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:04:40 up 16 days, 19:06, 0 user, load average: 0.04, 0.06, 0.04\nDisk Usage: 24%\nMemory Usage: 72.8%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:12 up 2 days, 36 min, 1 user, load average: 0.24, 0.07, 0.02\nDisk Usage: 1%\nMemory Usage: 35.2%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:04:43 up 19 days, 13:59, 0 user, load average: 0.81, 0.65, 0.53\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.76\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:05AM up 20 days, 21:55, 1 user, load averages: 0.14, 0.21, 0.21\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:04:49 up 16 days, 20 min, 0 user, load average: 0.38, 0.27, 0.22\nDisk Usage: 75%\nMemory Usage: 55.8%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05:12 up 2 days, 36 min, 1 user, load average: 0.03, 0.07, 0.02\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: 11:05:13 up 12:24, 1 user, load average: 1.48, 0.95, 0.58\nDisk Usage: 1%\nMemory Usage: 20.1%\nCPU Load: 1.48\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-16T16:05:22.147896+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `96f81c3010814414acf821039b2187cb` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:10:00.004547+00:00 |
| **Fin** | 2025-12-16T16:10:23.033414+00:00 |
| **Durée** | 23.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: [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: [orangepi.pc.home]
ok: [localhost]
TASK [Get system uptime] *******************************************************
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003579", "end": "2025-12-16 11:10:12.188073", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.184494", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 20 days, 22:21, 1 user, load average: 0.77, 0.76, 0.81", "stdout_lines": [" 11:10:12 up 20 days, 22:21, 1 user, load average: 0.77, 0.76, 0.81"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003715", "end": "2025-12-16 11:10:12.191292", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.187577", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 21 days, 20 min, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:10:12 up 21 days, 20 min, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002795", "end": "2025-12-16 11:10:12.213937", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.211142", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 2 days, 42 min, 1 user, load average: 0.33, 0.20, 0.18", "stdout_lines": [" 11:10:12 up 2 days, 42 min, 1 user, load average: 0.33, 0.20, 0.18"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003918", "end": "2025-12-16 11:10:12.210730", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.206812", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 20 days, 23:34, 1 user, load average: 0.59, 0.61, 0.60", "stdout_lines": [" 11:10:12 up 20 days, 23:34, 1 user, load average: 0.59, 0.61, 0.60"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002851", "end": "2025-12-16 11:09:47.395785", "msg": "", "rc": 0, "start": "2025-12-16 11:09:47.392934", "stderr": "", "stderr_lines": [], "stdout": " 11:09:47 up 9 days, 22:59, 0 user, load average: 0.57, 0.45, 0.29", "stdout_lines": [" 11:09:47 up 9 days, 22:59, 0 user, load average: 0.57, 0.45, 0.29"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008628", "end": "2025-12-16 11:10:12.892195", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.883567", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 193 days, 2:43, 1 user, load average: 0.17, 0.14, 0.10", "stdout_lines": [" 11:10:12 up 193 days, 2:43, 1 user, load average: 0.17, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009224", "end": "2025-12-16 11:10:12.949788", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.940564", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 193 days, 2:43, 1 user, load average: 0.13, 0.26, 0.23", "stdout_lines": [" 11:10:12 up 193 days, 2:43, 1 user, load average: 0.13, 0.26, 0.23"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004135", "end": "2025-12-16 11:10:13.177178", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.173043", "stderr": "", "stderr_lines": [], "stdout": " 11:10:12 up 20 days, 22:01, 1 user, load average: 0.56, 0.42, 0.31", "stdout_lines": [" 11:10:12 up 20 days, 22:01, 1 user, load average: 0.56, 0.42, 0.31"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003339", "end": "2025-12-16 11:09:41.794059", "msg": "", "rc": 0, "start": "2025-12-16 11:09:41.790720", "stderr": "", "stderr_lines": [], "stdout": " 11:09:41 up 16 days, 19:11, 0 user, load average: 0.00, 0.02, 0.01", "stdout_lines": [" 11:09:41 up 16 days, 19:11, 0 user, load average: 0.00, 0.02, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004662", "end": "2025-12-16 11:10:13.433052", "msg": "", "rc": 0, "start": "2025-12-16 11:10:13.428390", "stderr": "", "stderr_lines": [], "stdout": " 11:10:13 up 2 days, 41 min, 1 user, load average: 0.04, 0.10, 0.05", "stdout_lines": [" 11:10:13 up 2 days, 41 min, 1 user, load average: 0.04, 0.10, 0.05"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003374", "end": "2025-12-16 11:09:44.733715", "msg": "", "rc": 0, "start": "2025-12-16 11:09:44.730341", "stderr": "", "stderr_lines": [], "stdout": " 11:09:44 up 19 days, 14:04, 0 user, load average: 0.85, 0.65, 0.56", "stdout_lines": [" 11:09:44 up 19 days, 14:04, 0 user, load average: 0.85, 0.65, 0.56"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002877", "end": "2025-12-16 11:09:50.975130", "msg": "", "rc": 0, "start": "2025-12-16 11:09:50.972253", "stderr": "", "stderr_lines": [], "stdout": " 11:09:50 up 16 days, 25 min, 0 user, load average: 0.14, 0.26, 0.23", "stdout_lines": [" 11:09:50 up 16 days, 25 min, 0 user, load average: 0.14, 0.26, 0.23"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004292", "end": "2025-12-16 08:10:13.695254", "msg": "", "rc": 0, "start": "2025-12-16 08:10:13.690962", "stderr": "", "stderr_lines": [], "stdout": " 8:10AM up 20 days, 22 hrs, 1 user, load averages: 0.22, 0.18, 0.17", "stdout_lines": [" 8:10AM up 20 days, 22 hrs, 1 user, load averages: 0.22, 0.18, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019479", "end": "2025-12-16 11:10:13.599297", "msg": "", "rc": 0, "start": "2025-12-16 11:10:13.579818", "stderr": "", "stderr_lines": [], "stdout": " 11:10:13 up 14 days, 36 min, 1 user, load average: 0.27, 0.15, 0.05", "stdout_lines": [" 11:10:13 up 14 days, 36 min, 1 user, load average: 0.27, 0.15, 0.05"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003748", "end": "2025-12-16 11:10:13.875697", "msg": "", "rc": 0, "start": "2025-12-16 11:10:13.871949", "stderr": "", "stderr_lines": [], "stdout": " 11:10:13 up 2 days, 41 min, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 11:10:13 up 2 days, 41 min, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007515", "end": "2025-12-16 11:10:14.648683", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.641168", "stderr": "", "stderr_lines": [], "stdout": " 11:10:14 up 12:29, 1 user, load average: 1.65, 1.14, 0.77", "stdout_lines": [" 11:10:14 up 12:29, 1 user, load average: 1.65, 1.14, 0.77"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004325", "end": "2025-12-16 11:10:14.313449", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.309124", "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.004101", "end": "2025-12-16 11:10:14.317254", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.313153", "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.004721", "end": "2025-12-16 11:10:14.339107", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.334386", "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.004627", "end": "2025-12-16 11:10:14.348628", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.344001", "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.007027", "end": "2025-12-16 11:10:14.383887", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.376860", "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.005880", "end": "2025-12-16 11:09:49.524224", "msg": "", "rc": 0, "start": "2025-12-16 11:09:49.518344", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006013", "end": "2025-12-16 11:09:43.482984", "msg": "", "rc": 0, "start": "2025-12-16 11:09:43.476971", "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.010795", "end": "2025-12-16 11:10:15.071047", "msg": "", "rc": 0, "start": "2025-12-16 11:10:15.060252", "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.011590", "end": "2025-12-16 11:10:15.119247", "msg": "", "rc": 0, "start": "2025-12-16 11:10:15.107657", "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.006096", "end": "2025-12-16 11:10:15.295570", "msg": "", "rc": 0, "start": "2025-12-16 11:10:15.289474", "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.005664", "end": "2025-12-16 11:09:46.690940", "msg": "", "rc": 0, "start": "2025-12-16 11:09:46.685276", "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.004812", "end": "2025-12-16 11:09:52.893221", "msg": "", "rc": 0, "start": "2025-12-16 11:09:52.888409", "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.005686", "end": "2025-12-16 08:10:15.587913", "msg": "", "rc": 0, "start": "2025-12-16 08:10:15.582227", "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.005317", "end": "2025-12-16 11:10:15.716051", "msg": "", "rc": 0, "start": "2025-12-16 11:10:15.710734", "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.025115", "end": "2025-12-16 11:10:15.709090", "msg": "", "rc": 0, "start": "2025-12-16 11:10:15.683975", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020559", "end": "2025-12-16 11:10:16.727523", "msg": "", "rc": 0, "start": "2025-12-16 11:10:16.706964", "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.004392", "end": "2025-12-16 11:10:16.314684", "msg": "", "rc": 0, "start": "2025-12-16 11:10:16.310292", "stderr": "", "stderr_lines": [], "stdout": "88.1%", "stdout_lines": ["88.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.004226", "end": "2025-12-16 11:10:16.349584", "msg": "", "rc": 0, "start": "2025-12-16 11:10:16.345358", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004691", "end": "2025-12-16 11:10:16.356196", "msg": "", "rc": 0, "start": "2025-12-16 11:10:16.351505", "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.004062", "end": "2025-12-16 11:10:16.387221", "msg": "", "rc": 0, "start": "2025-12-16 11:10:16.383159", "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.005650", "end": "2025-12-16 11:10:16.412723", "msg": "", "rc": 0, "start": "2025-12-16 11:10:16.407073", "stderr": "", "stderr_lines": [], "stdout": "60.1%", "stdout_lines": ["60.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.004050", "end": "2025-12-16 11:09:51.565480", "msg": "", "rc": 0, "start": "2025-12-16 11:09:51.561430", "stderr": "", "stderr_lines": [], "stdout": "68.3%", "stdout_lines": ["68.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.004402", "end": "2025-12-16 11:09:45.517677", "msg": "", "rc": 0, "start": "2025-12-16 11:09:45.513275", "stderr": "", "stderr_lines": [], "stdout": "72.8%", "stdout_lines": ["72.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.010922", "end": "2025-12-16 11:10:17.028047", "msg": "", "rc": 0, "start": "2025-12-16 11:10:17.017125", "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.023567", "end": "2025-12-16 11:10:17.082068", "msg": "", "rc": 0, "start": "2025-12-16 11:10:17.058501", "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.005858", "end": "2025-12-16 11:10:17.338427", "msg": "", "rc": 0, "start": "2025-12-16 11:10:17.332569", "stderr": "", "stderr_lines": [], "stdout": "35.2%", "stdout_lines": ["35.2%"]}
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.004018", "end": "2025-12-16 11:09:54.857464", "msg": "", "rc": 0, "start": "2025-12-16 11:09:54.853446", "stderr": "", "stderr_lines": [], "stdout": "55.5%", "stdout_lines": ["55.5%"]}
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.004312", "end": "2025-12-16 11:09:48.722519", "msg": "", "rc": 0, "start": "2025-12-16 11:09:48.718207", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005623", "end": "2025-12-16 08:10:17.569009", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:10:17.563386", "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.005416", "end": "2025-12-16 11:10:17.760288", "msg": "", "rc": 0, "start": "2025-12-16 11:10:17.754872", "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.025730", "end": "2025-12-16 11:10:17.714289", "msg": "", "rc": 0, "start": "2025-12-16 11:10:17.688559", "stderr": "", "stderr_lines": [], "stdout": "18.3%", "stdout_lines": ["18.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.009279", "end": "2025-12-16 11:10:18.744260", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.734981", "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.005476", "end": "2025-12-16 11:10:18.275199", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.269723", "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.005493", "end": "2025-12-16 11:10:18.292743", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.287250", "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.005099", "end": "2025-12-16 11:10:18.294538", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.289439", "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.003150", "end": "2025-12-16 11:10:18.316299", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.313149", "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.007722", "end": "2025-12-16 11:10:18.336607", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.328885", "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.002606", "end": "2025-12-16 11:09:53.526649", "msg": "", "rc": 0, "start": "2025-12-16 11:09:53.524043", "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.002696", "end": "2025-12-16 11:09:47.432218", "msg": "", "rc": 0, "start": "2025-12-16 11:09:47.429522", "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.011925", "end": "2025-12-16 11:10:18.988268", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.976343", "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.013335", "end": "2025-12-16 11:10:19.038067", "msg": "", "rc": 0, "start": "2025-12-16 11:10:19.024732", "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.003129", "end": "2025-12-16 11:10:19.291809", "msg": "", "rc": 0, "start": "2025-12-16 11:10:19.288680", "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.002997", "end": "2025-12-16 11:09:50.593604", "msg": "", "rc": 0, "start": "2025-12-16 11:09:50.590607", "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.002589", "end": "2025-12-16 11:09:56.795373", "msg": "", "rc": 0, "start": "2025-12-16 11:09:56.792784", "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.003825", "end": "2025-12-16 08:10:19.492781", "msg": "", "rc": 0, "start": "2025-12-16 08:10:19.488956", "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.002891", "end": "2025-12-16 11:10:19.710155", "msg": "", "rc": 0, "start": "2025-12-16 11:10:19.707264", "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.005257", "end": "2025-12-16 11:10:20.684300", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.679043", "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.028812", "end": "2025-12-16 11:10:19.703797", "msg": "", "rc": 0, "start": "2025-12-16 11:10:19.674985", "stderr": "", "stderr_lines": [], "stdout": "36.2°C", "stdout_lines": ["36.2°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.004283", "end": "2025-12-16 11:10:20.226573", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.222290", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.004169", "end": "2025-12-16 11:10:20.261197", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.257028", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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.005662", "end": "2025-12-16 11:10:20.285453", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.279791", "stderr": "", "stderr_lines": [], "stdout": "0.72", "stdout_lines": ["0.72"]}
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.004916", "end": "2025-12-16 11:10:20.296044", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.291128", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.004886", "end": "2025-12-16 11:10:20.295306", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.290420", "stderr": "", "stderr_lines": [], "stdout": "0.79", "stdout_lines": ["0.79"]}
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.004694", "end": "2025-12-16 11:09:55.468721", "msg": "", "rc": 0, "start": "2025-12-16 11:09:55.464027", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
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.005765", "end": "2025-12-16 11:09:49.375908", "msg": "", "rc": 0, "start": "2025-12-16 11:09:49.370143", "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.010290", "end": "2025-12-16 11:10:21.036152", "msg": "", "rc": 0, "start": "2025-12-16 11:10:21.025862", "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.011116", "end": "2025-12-16 11:10:21.060855", "msg": "", "rc": 0, "start": "2025-12-16 11:10:21.049739", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005696", "end": "2025-12-16 11:10:21.249743", "msg": "", "rc": 0, "start": "2025-12-16 11:10:21.244047", "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.005206", "end": "2025-12-16 11:09:52.573301", "msg": "", "rc": 0, "start": "2025-12-16 11:09:52.568095", "stderr": "", "stderr_lines": [], "stdout": "0.78", "stdout_lines": ["0.78"]}
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.004477", "end": "2025-12-16 11:09:58.871595", "msg": "", "rc": 0, "start": "2025-12-16 11:09:58.867118", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.006007", "end": "2025-12-16 08:10:21.591510", "msg": "", "rc": 0, "start": "2025-12-16 08:10:21.585503", "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.005463", "end": "2025-12-16 11:10:21.701630", "msg": "", "rc": 0, "start": "2025-12-16 11:10:21.696167", "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.024142", "end": "2025-12-16 11:10:21.611666", "msg": "", "rc": 0, "start": "2025-12-16 11:10:21.587524", "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.009017", "end": "2025-12-16 11:10:21.819136", "msg": "", "rc": 0, "start": "2025-12-16 11:10:21.810119", "stderr": "", "stderr_lines": [], "stdout": "1.94", "stdout_lines": ["1.94"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 2 days, 42 min, 1 user, load average: 0.33, 0.20, 0.18\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.43\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 20 days, 22:01, 1 user, load average: 0.56, 0.42, 0.31\nDisk Usage: 23%\nMemory Usage: 88.1%\nCPU Load: 0.55\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 20 days, 22:21, 1 user, load average: 0.77, 0.76, 0.81\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.79\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 20 days, 23:34, 1 user, load average: 0.59, 0.61, 0.60\nDisk Usage: 14%\nMemory Usage: 60.1%\nCPU Load: 0.72\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 21 days, 20 min, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:13 up 14 days, 36 min, 1 user, load average: 0.27, 0.15, 0.05\nDisk Usage: 21%\nMemory Usage: 18.3%\nCPU Load: 0.32\nCPU Temp: 36.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 193 days, 2:43, 1 user, load average: 0.13, 0.26, 0.23\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.20\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:12 up 193 days, 2:43, 1 user, load average: 0.17, 0.14, 0.10\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.15\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:09:47 up 9 days, 22:59, 0 user, load average: 0.57, 0.45, 0.29\nDisk Usage: 47%\nMemory Usage: 68.3%\nCPU Load: 0.48\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:09:41 up 16 days, 19:11, 0 user, load average: 0.00, 0.02, 0.01\nDisk Usage: 24%\nMemory Usage: 72.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10:13 up 2 days, 41 min, 1 user, load average: 0.04, 0.10, 0.05\nDisk Usage: 1%\nMemory Usage: 35.2%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:09:44 up 19 days, 14:04, 0 user, load average: 0.85, 0.65, 0.56\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.78\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:09:50 up 16 days, 25 min, 0 user, load average: 0.14, 0.26, 0.23\nDisk Usage: 75%\nMemory Usage: 55.5%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:10AM up 20 days, 22 hrs, 1 user, load averages: 0.22, 0.18, 0.17\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: 11:10:13 up 2 days, 41 min, 1 user, load average: 0.00, 0.03, 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: 11:10:14 up 12:29, 1 user, load average: 1.65, 1.14, 0.77\nDisk Usage: 1%\nMemory Usage: 20.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-16T16:10:23.082553+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `733ba6a4c023416d9f5ddfda74fdf44c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:15:00.003193+00:00 |
| **Fin** | 2025-12-16T16:15:21.742665+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: [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: [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.003073", "end": "2025-12-16 11:15:11.392084", "msg": "", "rc": 0, "start": "2025-12-16 11:15:11.389011", "stderr": "", "stderr_lines": [], "stdout": " 11:15:11 up 20 days, 22:06, 1 user, load average: 0.59, 0.52, 0.38", "stdout_lines": [" 11:15:11 up 20 days, 22:06, 1 user, load average: 0.59, 0.52, 0.38"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003438", "end": "2025-12-16 11:15:11.397113", "msg": "", "rc": 0, "start": "2025-12-16 11:15:11.393675", "stderr": "", "stderr_lines": [], "stdout": " 11:15:11 up 20 days, 22:26, 1 user, load average: 1.01, 0.83, 0.83", "stdout_lines": [" 11:15:11 up 20 days, 22:26, 1 user, load average: 1.01, 0.83, 0.83"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003699", "end": "2025-12-16 11:15:11.403431", "msg": "", "rc": 0, "start": "2025-12-16 11:15:11.399732", "stderr": "", "stderr_lines": [], "stdout": " 11:15:11 up 21 days, 25 min, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 11:15:11 up 21 days, 25 min, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002878", "end": "2025-12-16 11:15:11.417196", "msg": "", "rc": 0, "start": "2025-12-16 11:15:11.414318", "stderr": "", "stderr_lines": [], "stdout": " 11:15:11 up 2 days, 47 min, 1 user, load average: 0.16, 0.16, 0.17", "stdout_lines": [" 11:15:11 up 2 days, 47 min, 1 user, load average: 0.16, 0.16, 0.17"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003924", "end": "2025-12-16 11:15:11.420665", "msg": "", "rc": 0, "start": "2025-12-16 11:15:11.416741", "stderr": "", "stderr_lines": [], "stdout": " 11:15:11 up 20 days, 23:39, 1 user, load average: 0.56, 0.64, 0.62", "stdout_lines": [" 11:15:11 up 20 days, 23:39, 1 user, load average: 0.56, 0.64, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002844", "end": "2025-12-16 11:14:46.598231", "msg": "", "rc": 0, "start": "2025-12-16 11:14:46.595387", "stderr": "", "stderr_lines": [], "stdout": " 11:14:46 up 9 days, 23:04, 0 user, load average: 0.44, 0.38, 0.29", "stdout_lines": [" 11:14:46 up 9 days, 23:04, 0 user, load average: 0.44, 0.38, 0.29"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003486", "end": "2025-12-16 11:14:40.517619", "msg": "", "rc": 0, "start": "2025-12-16 11:14:40.514133", "stderr": "", "stderr_lines": [], "stdout": " 11:14:40 up 16 days, 19:16, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:14:40 up 16 days, 19:16, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008524", "end": "2025-12-16 11:15:12.077327", "msg": "", "rc": 0, "start": "2025-12-16 11:15:12.068803", "stderr": "", "stderr_lines": [], "stdout": " 11:15:12 up 193 days, 2:48, 1 user, load average: 0.18, 0.19, 0.12", "stdout_lines": [" 11:15:12 up 193 days, 2:48, 1 user, load average: 0.18, 0.19, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009349", "end": "2025-12-16 11:15:12.118547", "msg": "", "rc": 0, "start": "2025-12-16 11:15:12.109198", "stderr": "", "stderr_lines": [], "stdout": " 11:15:12 up 193 days, 2:48, 1 user, load average: 0.36, 0.27, 0.24", "stdout_lines": [" 11:15:12 up 193 days, 2:48, 1 user, load average: 0.36, 0.27, 0.24"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004912", "end": "2025-12-16 11:15:12.354235", "msg": "", "rc": 0, "start": "2025-12-16 11:15:12.349323", "stderr": "", "stderr_lines": [], "stdout": " 11:15:12 up 2 days, 46 min, 1 user, load average: 0.00, 0.03, 0.02", "stdout_lines": [" 11:15:12 up 2 days, 46 min, 1 user, load average: 0.00, 0.03, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003655", "end": "2025-12-16 11:14:43.695810", "msg": "", "rc": 0, "start": "2025-12-16 11:14:43.692155", "stderr": "", "stderr_lines": [], "stdout": " 11:14:43 up 19 days, 14:09, 0 user, load average: 0.50, 0.48, 0.50", "stdout_lines": [" 11:14:43 up 19 days, 14:09, 0 user, load average: 0.50, 0.48, 0.50"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003073", "end": "2025-12-16 11:14:49.878424", "msg": "", "rc": 0, "start": "2025-12-16 11:14:49.875351", "stderr": "", "stderr_lines": [], "stdout": " 11:14:49 up 16 days, 30 min, 0 user, load average: 0.49, 0.37, 0.27", "stdout_lines": [" 11:14:49 up 16 days, 30 min, 0 user, load average: 0.49, 0.37, 0.27"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004171", "end": "2025-12-16 08:15:12.575696", "msg": "", "rc": 0, "start": "2025-12-16 08:15:12.571525", "stderr": "", "stderr_lines": [], "stdout": " 8:15AM up 20 days, 22:04, 1 user, load averages: 0.35, 0.24, 0.18", "stdout_lines": [" 8:15AM up 20 days, 22:04, 1 user, load averages: 0.35, 0.24, 0.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003690", "end": "2025-12-16 11:15:12.765406", "msg": "", "rc": 0, "start": "2025-12-16 11:15:12.761716", "stderr": "", "stderr_lines": [], "stdout": " 11:15:12 up 2 days, 46 min, 1 user, load average: 0.09, 0.06, 0.01", "stdout_lines": [" 11:15:12 up 2 days, 46 min, 1 user, load average: 0.09, 0.06, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007053", "end": "2025-12-16 11:15:12.910442", "msg": "", "rc": 0, "start": "2025-12-16 11:15:12.903389", "stderr": "", "stderr_lines": [], "stdout": " 11:15:12 up 12:35, 1 user, load average: 1.68, 1.61, 1.09", "stdout_lines": [" 11:15:12 up 12:35, 1 user, load average: 1.68, 1.61, 1.09"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019159", "end": "2025-12-16 11:15:12.786656", "msg": "", "rc": 0, "start": "2025-12-16 11:15:12.767497", "stderr": "", "stderr_lines": [], "stdout": " 11:15:12 up 14 days, 41 min, 1 user, load average: 0.22, 0.12, 0.06", "stdout_lines": [" 11:15:12 up 14 days, 41 min, 1 user, load average: 0.22, 0.12, 0.06"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004368", "end": "2025-12-16 11:15:13.318508", "msg": "", "rc": 0, "start": "2025-12-16 11:15:13.314140", "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.004885", "end": "2025-12-16 11:15:13.332899", "msg": "", "rc": 0, "start": "2025-12-16 11:15:13.328014", "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.004161", "end": "2025-12-16 11:15:13.353165", "msg": "", "rc": 0, "start": "2025-12-16 11:15:13.349004", "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.004382", "end": "2025-12-16 11:15:13.364387", "msg": "", "rc": 0, "start": "2025-12-16 11:15:13.360005", "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.005372", "end": "2025-12-16 11:15:13.363331", "msg": "", "rc": 0, "start": "2025-12-16 11:15:13.357959", "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.005404", "end": "2025-12-16 11:14:48.561294", "msg": "", "rc": 0, "start": "2025-12-16 11:14:48.555890", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005285", "end": "2025-12-16 11:14:42.435443", "msg": "", "rc": 0, "start": "2025-12-16 11:14:42.430158", "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.010951", "end": "2025-12-16 11:15:14.071710", "msg": "", "rc": 0, "start": "2025-12-16 11:15:14.060759", "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.012796", "end": "2025-12-16 11:15:14.080456", "msg": "", "rc": 0, "start": "2025-12-16 11:15:14.067660", "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.006069", "end": "2025-12-16 11:15:14.346544", "msg": "", "rc": 0, "start": "2025-12-16 11:15:14.340475", "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.005274", "end": "2025-12-16 11:14:45.601957", "msg": "", "rc": 0, "start": "2025-12-16 11:14:45.596683", "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.005590", "end": "2025-12-16 08:15:14.548154", "msg": "", "rc": 0, "start": "2025-12-16 08:15:14.542564", "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.004976", "end": "2025-12-16 11:14:51.874578", "msg": "", "rc": 0, "start": "2025-12-16 11:14:51.869602", "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.005751", "end": "2025-12-16 11:15:14.772124", "msg": "", "rc": 0, "start": "2025-12-16 11:15:14.766373", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021893", "end": "2025-12-16 11:15:14.924458", "msg": "", "rc": 0, "start": "2025-12-16 11:15:14.902565", "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.025027", "end": "2025-12-16 11:15:14.725004", "msg": "", "rc": 0, "start": "2025-12-16 11:15:14.699977", "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.004489", "end": "2025-12-16 11:15:15.248382", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.243893", "stderr": "", "stderr_lines": [], "stdout": "88.0%", "stdout_lines": ["88.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.004336", "end": "2025-12-16 11:15:15.267583", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.263247", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004600", "end": "2025-12-16 11:15:15.276342", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.271742", "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.004519", "end": "2025-12-16 11:15:15.303344", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.298825", "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.005976", "end": "2025-12-16 11:15:15.339641", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.333665", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.004245", "end": "2025-12-16 11:14:50.465425", "msg": "", "rc": 0, "start": "2025-12-16 11:14:50.461180", "stderr": "", "stderr_lines": [], "stdout": "70.5%", "stdout_lines": ["70.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.005450", "end": "2025-12-16 11:14:44.436107", "msg": "", "rc": 0, "start": "2025-12-16 11:14:44.430657", "stderr": "", "stderr_lines": [], "stdout": "72.8%", "stdout_lines": ["72.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.011026", "end": "2025-12-16 11:15:15.954502", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.943476", "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.012140", "end": "2025-12-16 11:15:15.986877", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.974737", "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.005795", "end": "2025-12-16 11:15:16.231278", "msg": "", "rc": 0, "start": "2025-12-16 11:15:16.225483", "stderr": "", "stderr_lines": [], "stdout": "35.2%", "stdout_lines": ["35.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.005580", "end": "2025-12-16 08:15:16.451864", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:15:16.446284", "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.003702", "end": "2025-12-16 11:14:53.764714", "msg": "", "rc": 0, "start": "2025-12-16 11:14:53.761012", "stderr": "", "stderr_lines": [], "stdout": "51.9%", "stdout_lines": ["51.9%"]}
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.004642", "end": "2025-12-16 11:14:47.619408", "msg": "", "rc": 0, "start": "2025-12-16 11:14:47.614766", "stderr": "", "stderr_lines": [], "stdout": "26.3%", "stdout_lines": ["26.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.005564", "end": "2025-12-16 11:15:16.657649", "msg": "", "rc": 0, "start": "2025-12-16 11:15:16.652085", "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.009797", "end": "2025-12-16 11:15:16.936809", "msg": "", "rc": 0, "start": "2025-12-16 11:15:16.927012", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025811", "end": "2025-12-16 11:15:16.654543", "msg": "", "rc": 0, "start": "2025-12-16 11:15:16.628732", "stderr": "", "stderr_lines": [], "stdout": "18.5%", "stdout_lines": ["18.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.004863", "end": "2025-12-16 11:15:17.193193", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.188330", "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.005143", "end": "2025-12-16 11:15:17.188349", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.183206", "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.005946", "end": "2025-12-16 11:15:17.196960", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.191014", "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.002697", "end": "2025-12-16 11:15:17.221106", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.218409", "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.006643", "end": "2025-12-16 11:15:17.257707", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.251064", "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.002657", "end": "2025-12-16 11:14:52.371710", "msg": "", "rc": 0, "start": "2025-12-16 11:14:52.369053", "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.003280", "end": "2025-12-16 11:14:46.339182", "msg": "", "rc": 0, "start": "2025-12-16 11:14:46.335902", "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.012121", "end": "2025-12-16 11:15:17.884134", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.872013", "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.012939", "end": "2025-12-16 11:15:17.947522", "msg": "", "rc": 0, "start": "2025-12-16 11:15:17.934583", "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.003180", "end": "2025-12-16 11:15:18.147462", "msg": "", "rc": 0, "start": "2025-12-16 11:15:18.144282", "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.003699", "end": "2025-12-16 11:14:49.551238", "msg": "", "rc": 0, "start": "2025-12-16 11:14:49.547539", "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.002765", "end": "2025-12-16 11:14:55.710295", "msg": "", "rc": 0, "start": "2025-12-16 11:14:55.707530", "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.004289", "end": "2025-12-16 08:15:18.425128", "msg": "", "rc": 0, "start": "2025-12-16 08:15:18.420839", "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.002951", "end": "2025-12-16 11:15:18.583728", "msg": "", "rc": 0, "start": "2025-12-16 11:15:18.580777", "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.005456", "end": "2025-12-16 11:15:18.966225", "msg": "", "rc": 0, "start": "2025-12-16 11:15:18.960769", "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.028800", "end": "2025-12-16 11:15:18.591209", "msg": "", "rc": 0, "start": "2025-12-16 11:15:18.562409", "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.004362", "end": "2025-12-16 11:15:19.116049", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.111687", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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-16 11:15:19.130386", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.126256", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004497", "end": "2025-12-16 11:15:19.159841", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.155344", "stderr": "", "stderr_lines": [], "stdout": "0.93", "stdout_lines": ["0.93"]}
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.005241", "end": "2025-12-16 11:15:19.163761", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.158520", "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.005523", "end": "2025-12-16 11:15:19.195310", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.189787", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.004387", "end": "2025-12-16 11:14:54.343397", "msg": "", "rc": 0, "start": "2025-12-16 11:14:54.339010", "stderr": "", "stderr_lines": [], "stdout": "1.11", "stdout_lines": ["1.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.005209", "end": "2025-12-16 11:14:48.263900", "msg": "", "rc": 0, "start": "2025-12-16 11:14:48.258691", "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.010184", "end": "2025-12-16 11:15:19.928000", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.917816", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.011428", "end": "2025-12-16 11:15:19.937124", "msg": "", "rc": 0, "start": "2025-12-16 11:15:19.925696", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.005702", "end": "2025-12-16 11:15:20.121178", "msg": "", "rc": 0, "start": "2025-12-16 11:15:20.115476", "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.005024", "end": "2025-12-16 11:14:51.433262", "msg": "", "rc": 0, "start": "2025-12-16 11:14:51.428238", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.006765", "end": "2025-12-16 08:15:20.402484", "msg": "", "rc": 0, "start": "2025-12-16 08:15:20.395719", "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.005871", "end": "2025-12-16 11:14:57.747305", "msg": "", "rc": 0, "start": "2025-12-16 11:14:57.741434", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.005725", "end": "2025-12-16 11:15:20.534207", "msg": "", "rc": 0, "start": "2025-12-16 11:15:20.528482", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.007702", "end": "2025-12-16 11:15:20.912614", "msg": "", "rc": 0, "start": "2025-12-16 11:15:20.904912", "stderr": "", "stderr_lines": [], "stdout": "1.63", "stdout_lines": ["1.63"]}
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.024232", "end": "2025-12-16 11:15:20.508970", "msg": "", "rc": 0, "start": "2025-12-16 11:15:20.484738", "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: 11:15:11 up 2 days, 47 min, 1 user, load average: 0.16, 0.16, 0.17\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.31\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:11 up 20 days, 22:06, 1 user, load average: 0.59, 0.52, 0.38\nDisk Usage: 23%\nMemory Usage: 88.0%\nCPU Load: 0.58\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:11 up 20 days, 22:26, 1 user, load average: 1.01, 0.83, 0.83\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.93\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:11 up 20 days, 23:39, 1 user, load average: 0.56, 0.64, 0.62\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.51\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:11 up 21 days, 25 min, 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: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:12 up 193 days, 2:48, 1 user, load average: 0.36, 0.27, 0.24\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.33\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:12 up 14 days, 41 min, 1 user, load average: 0.22, 0.12, 0.06\nDisk Usage: 21%\nMemory Usage: 18.5%\nCPU Load: 0.20\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:12 up 193 days, 2:48, 1 user, load average: 0.18, 0.19, 0.12\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.32\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:14:46 up 9 days, 23:04, 0 user, load average: 0.44, 0.38, 0.29\nDisk Usage: 47%\nMemory Usage: 70.5%\nCPU Load: 1.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:14:40 up 16 days, 19:16, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 72.8%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:12 up 2 days, 46 min, 1 user, load average: 0.00, 0.03, 0.02\nDisk Usage: 1%\nMemory Usage: 35.2%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:14:43 up 19 days, 14:09, 0 user, load average: 0.50, 0.48, 0.50\nDisk Usage: 28%\nMemory Usage: 26.3%\nCPU Load: 0.51\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:14:49 up 16 days, 30 min, 0 user, load average: 0.49, 0.37, 0.27\nDisk Usage: 75%\nMemory Usage: 51.9%\nCPU Load: 0.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:15AM up 20 days, 22:04, 1 user, load averages: 0.35, 0.24, 0.18\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: 11:15:12 up 2 days, 46 min, 1 user, load average: 0.09, 0.06, 0.01\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15:12 up 12:35, 1 user, load average: 1.68, 1.61, 1.09\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.63\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-16T16:15:21.785737+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a67d8eca2d2b4dc09efea05dc7a416f0` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:20:00.000872+00:00 |
| **Fin** | 2025-12-16T16:20:21.159626+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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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: [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.003042", "end": "2025-12-16 11:20:10.565605", "msg": "", "rc": 0, "start": "2025-12-16 11:20:10.562563", "stderr": "", "stderr_lines": [], "stdout": " 11:20:10 up 20 days, 22:11, 1 user, load average: 0.59, 0.49, 0.40", "stdout_lines": [" 11:20:10 up 20 days, 22:11, 1 user, load average: 0.59, 0.49, 0.40"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003668", "end": "2025-12-16 11:20:10.571792", "msg": "", "rc": 0, "start": "2025-12-16 11:20:10.568124", "stderr": "", "stderr_lines": [], "stdout": " 11:20:10 up 21 days, 30 min, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:20:10 up 21 days, 30 min, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003527", "end": "2025-12-16 11:20:10.578087", "msg": "", "rc": 0, "start": "2025-12-16 11:20:10.574560", "stderr": "", "stderr_lines": [], "stdout": " 11:20:10 up 20 days, 22:31, 1 user, load average: 1.37, 1.02, 0.90", "stdout_lines": [" 11:20:10 up 20 days, 22:31, 1 user, load average: 1.37, 1.02, 0.90"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004057", "end": "2025-12-16 11:20:10.588178", "msg": "", "rc": 0, "start": "2025-12-16 11:20:10.584121", "stderr": "", "stderr_lines": [], "stdout": " 11:20:10 up 20 days, 23:44, 1 user, load average: 0.47, 0.60, 0.62", "stdout_lines": [" 11:20:10 up 20 days, 23:44, 1 user, load average: 0.47, 0.60, 0.62"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002958", "end": "2025-12-16 11:20:10.599857", "msg": "", "rc": 0, "start": "2025-12-16 11:20:10.596899", "stderr": "", "stderr_lines": [], "stdout": " 11:20:10 up 2 days, 52 min, 1 user, load average: 0.09, 0.12, 0.15", "stdout_lines": [" 11:20:10 up 2 days, 52 min, 1 user, load average: 0.09, 0.12, 0.15"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003353", "end": "2025-12-16 11:19:45.797531", "msg": "", "rc": 0, "start": "2025-12-16 11:19:45.794178", "stderr": "", "stderr_lines": [], "stdout": " 11:19:45 up 9 days, 23:09, 0 user, load average: 0.12, 0.29, 0.28", "stdout_lines": [" 11:19:45 up 9 days, 23:09, 0 user, load average: 0.12, 0.29, 0.28"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003295", "end": "2025-12-16 11:19:39.663335", "msg": "", "rc": 0, "start": "2025-12-16 11:19:39.660040", "stderr": "", "stderr_lines": [], "stdout": " 11:19:39 up 16 days, 19:21, 0 user, load average: 0.01, 0.04, 0.01", "stdout_lines": [" 11:19:39 up 16 days, 19:21, 0 user, load average: 0.01, 0.04, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008667", "end": "2025-12-16 11:20:11.238621", "msg": "", "rc": 0, "start": "2025-12-16 11:20:11.229954", "stderr": "", "stderr_lines": [], "stdout": " 11:20:11 up 193 days, 2:53, 1 user, load average: 0.34, 0.24, 0.16", "stdout_lines": [" 11:20:11 up 193 days, 2:53, 1 user, load average: 0.34, 0.24, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009327", "end": "2025-12-16 11:20:11.282063", "msg": "", "rc": 0, "start": "2025-12-16 11:20:11.272736", "stderr": "", "stderr_lines": [], "stdout": " 11:20:11 up 193 days, 2:53, 1 user, load average: 0.36, 0.29, 0.25", "stdout_lines": [" 11:20:11 up 193 days, 2:53, 1 user, load average: 0.36, 0.29, 0.25"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004820", "end": "2025-12-16 11:20:11.590424", "msg": "", "rc": 0, "start": "2025-12-16 11:20:11.585604", "stderr": "", "stderr_lines": [], "stdout": " 11:20:11 up 2 days, 51 min, 1 user, load average: 0.02, 0.05, 0.02", "stdout_lines": [" 11:20:11 up 2 days, 51 min, 1 user, load average: 0.02, 0.05, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003310", "end": "2025-12-16 11:19:42.857347", "msg": "", "rc": 0, "start": "2025-12-16 11:19:42.854037", "stderr": "", "stderr_lines": [], "stdout": " 11:19:42 up 19 days, 14:14, 0 user, load average: 0.61, 0.43, 0.46", "stdout_lines": [" 11:19:42 up 19 days, 14:14, 0 user, load average: 0.61, 0.43, 0.46"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005029", "end": "2025-12-16 08:20:11.754281", "msg": "", "rc": 0, "start": "2025-12-16 08:20:11.749252", "stderr": "", "stderr_lines": [], "stdout": " 8:20AM up 20 days, 22:09, 1 user, load averages: 0.32, 0.27, 0.20", "stdout_lines": [" 8:20AM up 20 days, 22:09, 1 user, load averages: 0.32, 0.27, 0.20"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002909", "end": "2025-12-16 11:19:49.109647", "msg": "", "rc": 0, "start": "2025-12-16 11:19:49.106738", "stderr": "", "stderr_lines": [], "stdout": " 11:19:49 up 16 days, 35 min, 0 user, load average: 0.39, 0.26, 0.24", "stdout_lines": [" 11:19:49 up 16 days, 35 min, 0 user, load average: 0.39, 0.26, 0.24"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005505", "end": "2025-12-16 11:20:12.376842", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.371337", "stderr": "", "stderr_lines": [], "stdout": " 11:20:12 up 12:40, 1 user, load average: 1.18, 1.32, 1.10", "stdout_lines": [" 11:20:12 up 12:40, 1 user, load average: 1.18, 1.32, 1.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004372", "end": "2025-12-16 11:20:12.013432", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.009060", "stderr": "", "stderr_lines": [], "stdout": " 11:20:12 up 2 days, 51 min, 1 user, load average: 0.10, 0.11, 0.04", "stdout_lines": [" 11:20:12 up 2 days, 51 min, 1 user, load average: 0.10, 0.11, 0.04"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019311", "end": "2025-12-16 11:20:11.950519", "msg": "", "rc": 0, "start": "2025-12-16 11:20:11.931208", "stderr": "", "stderr_lines": [], "stdout": " 11:20:11 up 14 days, 46 min, 1 user, load average: 0.15, 0.11, 0.06", "stdout_lines": [" 11:20:11 up 14 days, 46 min, 1 user, load average: 0.15, 0.11, 0.06"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004649", "end": "2025-12-16 11:20:12.474598", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.469949", "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.004152", "end": "2025-12-16 11:20:12.490986", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.486834", "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.004713", "end": "2025-12-16 11:20:12.496979", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.492266", "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.004797", "end": "2025-12-16 11:20:12.521483", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.516686", "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.005977", "end": "2025-12-16 11:20:12.533613", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.527636", "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.005840", "end": "2025-12-16 11:19:47.685904", "msg": "", "rc": 0, "start": "2025-12-16 11:19:47.680064", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005827", "end": "2025-12-16 11:19:41.590425", "msg": "", "rc": 0, "start": "2025-12-16 11:19:41.584598", "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.010620", "end": "2025-12-16 11:20:13.222445", "msg": "", "rc": 0, "start": "2025-12-16 11:20:13.211825", "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.011638", "end": "2025-12-16 11:20:13.235880", "msg": "", "rc": 0, "start": "2025-12-16 11:20:13.224242", "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.006017", "end": "2025-12-16 11:20:13.455329", "msg": "", "rc": 0, "start": "2025-12-16 11:20:13.449312", "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.005619", "end": "2025-12-16 11:19:44.747600", "msg": "", "rc": 0, "start": "2025-12-16 11:19:44.741981", "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.005994", "end": "2025-12-16 08:20:13.731856", "msg": "", "rc": 0, "start": "2025-12-16 08:20:13.725862", "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.005228", "end": "2025-12-16 11:19:51.047568", "msg": "", "rc": 0, "start": "2025-12-16 11:19:51.042340", "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.005427", "end": "2025-12-16 11:20:13.860780", "msg": "", "rc": 0, "start": "2025-12-16 11:20:13.855353", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007385", "end": "2025-12-16 11:20:14.306942", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.299557", "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.025296", "end": "2025-12-16 11:20:13.872028", "msg": "", "rc": 0, "start": "2025-12-16 11:20:13.846732", "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.004813", "end": "2025-12-16 11:20:14.402132", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.397319", "stderr": "", "stderr_lines": [], "stdout": "88.0%", "stdout_lines": ["88.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.004147", "end": "2025-12-16 11:20:14.411623", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.407476", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005325", "end": "2025-12-16 11:20:14.438632", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.433307", "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.005071", "end": "2025-12-16 11:20:14.457816", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.452745", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.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.005582", "end": "2025-12-16 11:20:14.453232", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.447650", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.004403", "end": "2025-12-16 11:19:49.619551", "msg": "", "rc": 0, "start": "2025-12-16 11:19:49.615148", "stderr": "", "stderr_lines": [], "stdout": "70.4%", "stdout_lines": ["70.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.004172", "end": "2025-12-16 11:19:43.515417", "msg": "", "rc": 0, "start": "2025-12-16 11:19:43.511245", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.010805", "end": "2025-12-16 11:20:15.102883", "msg": "", "rc": 0, "start": "2025-12-16 11:20:15.092078", "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.011904", "end": "2025-12-16 11:20:15.130769", "msg": "", "rc": 0, "start": "2025-12-16 11:20:15.118865", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005839", "end": "2025-12-16 11:20:15.400514", "msg": "", "rc": 0, "start": "2025-12-16 11:20:15.394675", "stderr": "", "stderr_lines": [], "stdout": "35.1%", "stdout_lines": ["35.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.004388", "end": "2025-12-16 11:19:46.690497", "msg": "", "rc": 0, "start": "2025-12-16 11:19:46.686109", "stderr": "", "stderr_lines": [], "stdout": "27.7%", "stdout_lines": ["27.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.003570", "end": "2025-12-16 11:19:52.923039", "msg": "", "rc": 0, "start": "2025-12-16 11:19:52.919469", "stderr": "", "stderr_lines": [], "stdout": "53.0%", "stdout_lines": ["53.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.007666", "end": "2025-12-16 08:20:15.622927", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:20:15.615261", "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.007425", "end": "2025-12-16 11:20:16.314541", "msg": "", "rc": 0, "start": "2025-12-16 11:20:16.307116", "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.005517", "end": "2025-12-16 11:20:15.823146", "msg": "", "rc": 0, "start": "2025-12-16 11:20:15.817629", "stderr": "", "stderr_lines": [], "stdout": "13.3%", "stdout_lines": ["13.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.025800", "end": "2025-12-16 11:20:15.793635", "msg": "", "rc": 0, "start": "2025-12-16 11:20:15.767835", "stderr": "", "stderr_lines": [], "stdout": "18.8%", "stdout_lines": ["18.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.005345", "end": "2025-12-16 11:20:16.324413", "msg": "", "rc": 0, "start": "2025-12-16 11:20:16.319068", "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.005146", "end": "2025-12-16 11:20:16.336937", "msg": "", "rc": 0, "start": "2025-12-16 11:20:16.331791", "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.006478", "end": "2025-12-16 11:20:16.357092", "msg": "", "rc": 0, "start": "2025-12-16 11:20:16.350614", "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-16 11:20:16.370580", "msg": "", "rc": 0, "start": "2025-12-16 11:20:16.367284", "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.006956", "end": "2025-12-16 11:20:16.387681", "msg": "", "rc": 0, "start": "2025-12-16 11:20:16.380725", "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.002778", "end": "2025-12-16 11:19:51.561776", "msg": "", "rc": 0, "start": "2025-12-16 11:19:51.558998", "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.003912", "end": "2025-12-16 11:19:45.460170", "msg": "", "rc": 0, "start": "2025-12-16 11:19:45.456258", "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-16 11:20:17.012961", "msg": "", "rc": 0, "start": "2025-12-16 11:20:17.001107", "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.013004", "end": "2025-12-16 11:20:17.056596", "msg": "", "rc": 0, "start": "2025-12-16 11:20:17.043592", "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.003189", "end": "2025-12-16 11:20:17.339746", "msg": "", "rc": 0, "start": "2025-12-16 11:20:17.336557", "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.002989", "end": "2025-12-16 11:19:48.670300", "msg": "", "rc": 0, "start": "2025-12-16 11:19:48.667311", "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.003896", "end": "2025-12-16 08:20:17.519830", "msg": "", "rc": 0, "start": "2025-12-16 08:20:17.515934", "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.003307", "end": "2025-12-16 11:19:54.869016", "msg": "", "rc": 0, "start": "2025-12-16 11:19:54.865709", "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.002880", "end": "2025-12-16 11:20:17.772523", "msg": "", "rc": 0, "start": "2025-12-16 11:20:17.769643", "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.004467", "end": "2025-12-16 11:20:18.383628", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.379161", "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.028733", "end": "2025-12-16 11:20:17.714986", "msg": "", "rc": 0, "start": "2025-12-16 11:20:17.686253", "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.004533", "end": "2025-12-16 11:20:18.238324", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.233791", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004326", "end": "2025-12-16 11:20:18.258470", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.254144", "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.004882", "end": "2025-12-16 11:20:18.262314", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.257432", "stderr": "", "stderr_lines": [], "stdout": "1.48", "stdout_lines": ["1.48"]}
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.004759", "end": "2025-12-16 11:20:18.289388", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.284629", "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.005679", "end": "2025-12-16 11:20:18.311349", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.305670", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.004528", "end": "2025-12-16 11:19:53.459949", "msg": "", "rc": 0, "start": "2025-12-16 11:19:53.455421", "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.005903", "end": "2025-12-16 11:19:47.409010", "msg": "", "rc": 0, "start": "2025-12-16 11:19:47.403107", "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.010260", "end": "2025-12-16 11:20:19.037345", "msg": "", "rc": 0, "start": "2025-12-16 11:20:19.027085", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.011263", "end": "2025-12-16 11:20:19.070825", "msg": "", "rc": 0, "start": "2025-12-16 11:20:19.059562", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
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.005717", "end": "2025-12-16 11:20:19.216857", "msg": "", "rc": 0, "start": "2025-12-16 11:20:19.211140", "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.005077", "end": "2025-12-16 11:19:50.626023", "msg": "", "rc": 0, "start": "2025-12-16 11:19:50.620946", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
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.006157", "end": "2025-12-16 08:20:19.532624", "msg": "", "rc": 0, "start": "2025-12-16 08:20:19.526467", "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.004563", "end": "2025-12-16 11:19:56.845195", "msg": "", "rc": 0, "start": "2025-12-16 11:19:56.840632", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.005247", "end": "2025-12-16 11:20:19.640535", "msg": "", "rc": 0, "start": "2025-12-16 11:20:19.635288", "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.024280", "end": "2025-12-16 11:20:19.628287", "msg": "", "rc": 0, "start": "2025-12-16 11:20:19.604007", "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.007546", "end": "2025-12-16 11:20:20.406937", "msg": "", "rc": 0, "start": "2025-12-16 11:20:20.399391", "stderr": "", "stderr_lines": [], "stdout": "1.25", "stdout_lines": ["1.25"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:10 up 2 days, 52 min, 1 user, load average: 0.09, 0.12, 0.15\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.16\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:10 up 20 days, 22:11, 1 user, load average: 0.59, 0.49, 0.40\nDisk Usage: 23%\nMemory Usage: 88.0%\nCPU Load: 0.65\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:10 up 20 days, 22:31, 1 user, load average: 1.37, 1.02, 0.90\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 1.48\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:10 up 20 days, 23:44, 1 user, load average: 0.47, 0.60, 0.62\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.51\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:10 up 21 days, 30 min, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:11 up 14 days, 46 min, 1 user, load average: 0.15, 0.11, 0.06\nDisk Usage: 21%\nMemory Usage: 18.8%\nCPU Load: 0.21\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:11 up 193 days, 2:53, 1 user, load average: 0.36, 0.29, 0.25\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.30\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:11 up 193 days, 2:53, 1 user, load average: 0.34, 0.24, 0.16\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.36\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:19:45 up 9 days, 23:09, 0 user, load average: 0.12, 0.29, 0.28\nDisk Usage: 47%\nMemory Usage: 70.4%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:19:39 up 16 days, 19:21, 0 user, load average: 0.01, 0.04, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:19:42 up 19 days, 14:14, 0 user, load average: 0.61, 0.43, 0.46\nDisk Usage: 28%\nMemory Usage: 27.7%\nCPU Load: 0.60\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:11 up 2 days, 51 min, 1 user, load average: 0.02, 0.05, 0.02\nDisk Usage: 1%\nMemory Usage: 35.1%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:19:49 up 16 days, 35 min, 0 user, load average: 0.39, 0.26, 0.24\nDisk Usage: 75%\nMemory Usage: 53.0%\nCPU Load: 0.47\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:20AM up 20 days, 22:09, 1 user, load averages: 0.32, 0.27, 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: 11:20:12 up 2 days, 51 min, 1 user, load average: 0.10, 0.11, 0.04\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20:12 up 12:40, 1 user, load average: 1.18, 1.32, 1.10\nDisk Usage: 1%\nMemory Usage: 20.1%\nCPU Load: 1.25\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-16T16:20:21.194948+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `954745ff6bd94e3cbd1e97cf71c72790` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:25:00.002027+00:00 |
| **Fin** | 2025-12-16T16:25:21.803629+00:00 |
| **Durée** | 21.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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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.003122", "end": "2025-12-16 11:25:11.805216", "msg": "", "rc": 0, "start": "2025-12-16 11:25:11.802094", "stderr": "", "stderr_lines": [], "stdout": " 11:25:11 up 20 days, 22:16, 1 user, load average: 0.97, 0.59, 0.45", "stdout_lines": [" 11:25:11 up 20 days, 22:16, 1 user, load average: 0.97, 0.59, 0.45"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003429", "end": "2025-12-16 11:25:11.819282", "msg": "", "rc": 0, "start": "2025-12-16 11:25:11.815853", "stderr": "", "stderr_lines": [], "stdout": " 11:25:11 up 21 days, 35 min, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:25:11 up 21 days, 35 min, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003456", "end": "2025-12-16 11:25:11.826100", "msg": "", "rc": 0, "start": "2025-12-16 11:25:11.822644", "stderr": "", "stderr_lines": [], "stdout": " 11:25:11 up 20 days, 22:36, 1 user, load average: 0.98, 0.93, 0.90", "stdout_lines": [" 11:25:11 up 20 days, 22:36, 1 user, load average: 0.98, 0.93, 0.90"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002903", "end": "2025-12-16 11:25:11.853393", "msg": "", "rc": 0, "start": "2025-12-16 11:25:11.850490", "stderr": "", "stderr_lines": [], "stdout": " 11:25:11 up 2 days, 57 min, 1 user, load average: 0.22, 0.17, 0.17", "stdout_lines": [" 11:25:11 up 2 days, 57 min, 1 user, load average: 0.22, 0.17, 0.17"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004147", "end": "2025-12-16 11:25:11.837838", "msg": "", "rc": 0, "start": "2025-12-16 11:25:11.833691", "stderr": "", "stderr_lines": [], "stdout": " 11:25:11 up 20 days, 23:49, 1 user, load average: 0.84, 0.68, 0.65", "stdout_lines": [" 11:25:11 up 20 days, 23:49, 1 user, load average: 0.84, 0.68, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003012", "end": "2025-12-16 11:24:47.012547", "msg": "", "rc": 0, "start": "2025-12-16 11:24:47.009535", "stderr": "", "stderr_lines": [], "stdout": " 11:24:47 up 9 days, 23:14, 0 user, load average: 0.21, 0.39, 0.33", "stdout_lines": [" 11:24:47 up 9 days, 23:14, 0 user, load average: 0.21, 0.39, 0.33"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003523", "end": "2025-12-16 11:24:40.912119", "msg": "", "rc": 0, "start": "2025-12-16 11:24:40.908596", "stderr": "", "stderr_lines": [], "stdout": " 11:24:40 up 16 days, 19:26, 0 user, load average: 0.05, 0.06, 0.01", "stdout_lines": [" 11:24:40 up 16 days, 19:26, 0 user, load average: 0.05, 0.06, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008567", "end": "2025-12-16 11:25:12.491740", "msg": "", "rc": 0, "start": "2025-12-16 11:25:12.483173", "stderr": "", "stderr_lines": [], "stdout": " 11:25:12 up 193 days, 2:58, 1 user, load average: 0.35, 0.25, 0.18", "stdout_lines": [" 11:25:12 up 193 days, 2:58, 1 user, load average: 0.35, 0.25, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009267", "end": "2025-12-16 11:25:12.549764", "msg": "", "rc": 0, "start": "2025-12-16 11:25:12.540497", "stderr": "", "stderr_lines": [], "stdout": " 11:25:12 up 193 days, 2:58, 1 user, load average: 0.43, 0.27, 0.24", "stdout_lines": [" 11:25:12 up 193 days, 2:58, 1 user, load average: 0.43, 0.27, 0.24"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005086", "end": "2025-12-16 11:25:12.787197", "msg": "", "rc": 0, "start": "2025-12-16 11:25:12.782111", "stderr": "", "stderr_lines": [], "stdout": " 11:25:12 up 2 days, 56 min, 1 user, load average: 0.07, 0.04, 0.00", "stdout_lines": [" 11:25:12 up 2 days, 56 min, 1 user, load average: 0.07, 0.04, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003093", "end": "2025-12-16 11:24:44.082552", "msg": "", "rc": 0, "start": "2025-12-16 11:24:44.079459", "stderr": "", "stderr_lines": [], "stdout": " 11:24:44 up 19 days, 14:19, 0 user, load average: 0.44, 0.58, 0.53", "stdout_lines": [" 11:24:44 up 19 days, 14:19, 0 user, load average: 0.44, 0.58, 0.53"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002933", "end": "2025-12-16 11:24:50.300282", "msg": "", "rc": 0, "start": "2025-12-16 11:24:50.297349", "stderr": "", "stderr_lines": [], "stdout": " 11:24:50 up 16 days, 40 min, 0 user, load average: 0.09, 0.17, 0.20", "stdout_lines": [" 11:24:50 up 16 days, 40 min, 0 user, load average: 0.09, 0.17, 0.20"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004150", "end": "2025-12-16 08:25:13.028595", "msg": "", "rc": 0, "start": "2025-12-16 08:25:13.024445", "stderr": "", "stderr_lines": [], "stdout": " 8:25AM up 20 days, 22:15, 1 user, load averages: 0.23, 0.23, 0.19", "stdout_lines": [" 8:25AM up 20 days, 22:15, 1 user, load averages: 0.23, 0.23, 0.19"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003762", "end": "2025-12-16 11:25:13.199445", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.195683", "stderr": "", "stderr_lines": [], "stdout": " 11:25:13 up 2 days, 56 min, 1 user, load average: 0.24, 0.24, 0.10", "stdout_lines": [" 11:25:13 up 2 days, 56 min, 1 user, load average: 0.24, 0.24, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009733", "end": "2025-12-16 11:25:14.007669", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.997936", "stderr": "", "stderr_lines": [], "stdout": " 11:25:13 up 12:45, 1 user, load average: 1.60, 1.29, 1.13", "stdout_lines": [" 11:25:13 up 12:45, 1 user, load average: 1.60, 1.29, 1.13"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019231", "end": "2025-12-16 11:25:13.187215", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.167984", "stderr": "", "stderr_lines": [], "stdout": " 11:25:13 up 14 days, 51 min, 1 user, load average: 0.26, 0.13, 0.08", "stdout_lines": [" 11:25:13 up 14 days, 51 min, 1 user, load average: 0.26, 0.13, 0.08"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004362", "end": "2025-12-16 11:25:13.714576", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.710214", "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.004156", "end": "2025-12-16 11:25:13.727464", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.723308", "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.005837", "end": "2025-12-16 11:25:13.746114", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.740277", "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.004654", "end": "2025-12-16 11:25:13.769628", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.764974", "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.005772", "end": "2025-12-16 11:25:13.771242", "msg": "", "rc": 0, "start": "2025-12-16 11:25:13.765470", "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.004784", "end": "2025-12-16 11:24:48.896861", "msg": "", "rc": 0, "start": "2025-12-16 11:24:48.892077", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005500", "end": "2025-12-16 11:24:42.816845", "msg": "", "rc": 0, "start": "2025-12-16 11:24:42.811345", "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.010619", "end": "2025-12-16 11:25:14.457775", "msg": "", "rc": 0, "start": "2025-12-16 11:25:14.447156", "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.011689", "end": "2025-12-16 11:25:14.472450", "msg": "", "rc": 0, "start": "2025-12-16 11:25:14.460761", "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.006261", "end": "2025-12-16 11:25:14.668832", "msg": "", "rc": 0, "start": "2025-12-16 11:25:14.662571", "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.006088", "end": "2025-12-16 11:24:45.991020", "msg": "", "rc": 0, "start": "2025-12-16 11:24:45.984932", "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.005367", "end": "2025-12-16 08:25:14.939922", "msg": "", "rc": 0, "start": "2025-12-16 08:25:14.934555", "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.004482", "end": "2025-12-16 11:24:52.278028", "msg": "", "rc": 0, "start": "2025-12-16 11:24:52.273546", "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.005463", "end": "2025-12-16 11:25:15.084930", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.079467", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021198", "end": "2025-12-16 11:25:15.984609", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.963411", "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.025274", "end": "2025-12-16 11:25:15.090655", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.065381", "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.004159", "end": "2025-12-16 11:25:15.610861", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.606702", "stderr": "", "stderr_lines": [], "stdout": "87.9%", "stdout_lines": ["87.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.004089", "end": "2025-12-16 11:25:15.632335", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.628246", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004809", "end": "2025-12-16 11:25:15.640269", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.635460", "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.004892", "end": "2025-12-16 11:25:15.665223", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.660331", "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.005759", "end": "2025-12-16 11:25:15.682921", "msg": "", "rc": 0, "start": "2025-12-16 11:25:15.677162", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004208", "end": "2025-12-16 11:24:50.849382", "msg": "", "rc": 0, "start": "2025-12-16 11:24:50.845174", "stderr": "", "stderr_lines": [], "stdout": "70.5%", "stdout_lines": ["70.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.004322", "end": "2025-12-16 11:24:44.749935", "msg": "", "rc": 0, "start": "2025-12-16 11:24:44.745613", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.010988", "end": "2025-12-16 11:25:16.307616", "msg": "", "rc": 0, "start": "2025-12-16 11:25:16.296628", "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.012346", "end": "2025-12-16 11:25:16.362838", "msg": "", "rc": 0, "start": "2025-12-16 11:25:16.350492", "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.005791", "end": "2025-12-16 11:25:16.609641", "msg": "", "rc": 0, "start": "2025-12-16 11:25:16.603850", "stderr": "", "stderr_lines": [], "stdout": "35.0%", "stdout_lines": ["35.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.004280", "end": "2025-12-16 11:24:47.906424", "msg": "", "rc": 0, "start": "2025-12-16 11:24:47.902144", "stderr": "", "stderr_lines": [], "stdout": "27.8%", "stdout_lines": ["27.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.003756", "end": "2025-12-16 11:24:54.115266", "msg": "", "rc": 0, "start": "2025-12-16 11:24:54.111510", "stderr": "", "stderr_lines": [], "stdout": "50.9%", "stdout_lines": ["50.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.005488", "end": "2025-12-16 08:25:16.840733", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:25:16.835245", "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.005401", "end": "2025-12-16 11:25:17.035976", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.030575", "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.011945", "end": "2025-12-16 11:25:17.946994", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.935049", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025930", "end": "2025-12-16 11:25:17.005286", "msg": "", "rc": 0, "start": "2025-12-16 11:25:16.979356", "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.005168", "end": "2025-12-16 11:25:17.537458", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.532290", "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.004891", "end": "2025-12-16 11:25:17.545984", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.541093", "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.003241", "end": "2025-12-16 11:25:17.561955", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.558714", "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.005818", "end": "2025-12-16 11:25:17.575130", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.569312", "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.006671", "end": "2025-12-16 11:25:17.589171", "msg": "", "rc": 0, "start": "2025-12-16 11:25:17.582500", "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.002981", "end": "2025-12-16 11:24:52.757496", "msg": "", "rc": 0, "start": "2025-12-16 11:24:52.754515", "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.003389", "end": "2025-12-16 11:24:46.652793", "msg": "", "rc": 0, "start": "2025-12-16 11:24:46.649404", "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.011975", "end": "2025-12-16 11:25:18.226309", "msg": "", "rc": 0, "start": "2025-12-16 11:25:18.214334", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.013052", "end": "2025-12-16 11:25:18.268146", "msg": "", "rc": 0, "start": "2025-12-16 11:25:18.255094", "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.003246", "end": "2025-12-16 11:25:18.517021", "msg": "", "rc": 0, "start": "2025-12-16 11:25:18.513775", "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.003654", "end": "2025-12-16 11:24:49.854363", "msg": "", "rc": 0, "start": "2025-12-16 11:24:49.850709", "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.002718", "end": "2025-12-16 11:24:56.043022", "msg": "", "rc": 0, "start": "2025-12-16 11:24:56.040304", "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.004089", "end": "2025-12-16 08:25:18.732361", "msg": "", "rc": 0, "start": "2025-12-16 08:25:18.728272", "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.002916", "end": "2025-12-16 11:25:18.937612", "msg": "", "rc": 0, "start": "2025-12-16 11:25:18.934696", "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.004747", "end": "2025-12-16 11:25:19.982862", "msg": "", "rc": 0, "start": "2025-12-16 11:25:19.978115", "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.028614", "end": "2025-12-16 11:25:18.937040", "msg": "", "rc": 0, "start": "2025-12-16 11:25:18.908426", "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.004157", "end": "2025-12-16 11:25:19.474599", "msg": "", "rc": 0, "start": "2025-12-16 11:25:19.470442", "stderr": "", "stderr_lines": [], "stdout": "1.06", "stdout_lines": ["1.06"]}
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.004049", "end": "2025-12-16 11:25:19.487569", "msg": "", "rc": 0, "start": "2025-12-16 11:25:19.483520", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.004799", "end": "2025-12-16 11:25:19.506126", "msg": "", "rc": 0, "start": "2025-12-16 11:25:19.501327", "stderr": "", "stderr_lines": [], "stdout": "1.06", "stdout_lines": ["1.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.004984", "end": "2025-12-16 11:25:19.517390", "msg": "", "rc": 0, "start": "2025-12-16 11:25:19.512406", "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.005859", "end": "2025-12-16 11:25:19.542522", "msg": "", "rc": 0, "start": "2025-12-16 11:25:19.536663", "stderr": "", "stderr_lines": [], "stdout": "1.01", "stdout_lines": ["1.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.004296", "end": "2025-12-16 11:24:54.666239", "msg": "", "rc": 0, "start": "2025-12-16 11:24:54.661943", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005435", "end": "2025-12-16 11:24:48.618905", "msg": "", "rc": 0, "start": "2025-12-16 11:24:48.613470", "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.011115", "end": "2025-12-16 11:25:20.197374", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.186259", "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.010259", "end": "2025-12-16 11:25:20.256065", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.245806", "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.005736", "end": "2025-12-16 11:25:20.456414", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.450678", "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.005275", "end": "2025-12-16 11:24:51.840518", "msg": "", "rc": 0, "start": "2025-12-16 11:24:51.835243", "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.004166", "end": "2025-12-16 11:24:58.014419", "msg": "", "rc": 0, "start": "2025-12-16 11:24:58.010253", "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.006742", "end": "2025-12-16 08:25:20.729685", "msg": "", "rc": 0, "start": "2025-12-16 08:25:20.722943", "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.005242", "end": "2025-12-16 11:25:20.877694", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.872452", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.008769", "end": "2025-12-16 11:25:20.991378", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.982609", "stderr": "", "stderr_lines": [], "stdout": "1.63", "stdout_lines": ["1.63"]}
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.024248", "end": "2025-12-16 11:25:20.857562", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.833314", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:11 up 2 days, 57 min, 1 user, load average: 0.22, 0.17, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.29\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:11 up 20 days, 22:16, 1 user, load average: 0.97, 0.59, 0.45\nDisk Usage: 23%\nMemory Usage: 87.9%\nCPU Load: 1.06\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:11 up 20 days, 22:36, 1 user, load average: 0.98, 0.93, 0.90\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.06\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:11 up 20 days, 23:49, 1 user, load average: 0.84, 0.68, 0.65\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 1.01\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:11 up 21 days, 35 min, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:13 up 14 days, 51 min, 1 user, load average: 0.26, 0.13, 0.08\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.32\nCPU Temp: 36.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:12 up 193 days, 2:58, 1 user, load average: 0.43, 0.27, 0.24\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.40\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:12 up 193 days, 2:58, 1 user, load average: 0.35, 0.25, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.38\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:24:47 up 9 days, 23:14, 0 user, load average: 0.21, 0.39, 0.33\nDisk Usage: 47%\nMemory Usage: 70.5%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:24:40 up 16 days, 19:26, 0 user, load average: 0.05, 0.06, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:12 up 2 days, 56 min, 1 user, load average: 0.07, 0.04, 0.00\nDisk Usage: 1%\nMemory Usage: 35.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:24:44 up 19 days, 14:19, 0 user, load average: 0.44, 0.58, 0.53\nDisk Usage: 28%\nMemory Usage: 27.8%\nCPU Load: 0.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:24:50 up 16 days, 40 min, 0 user, load average: 0.09, 0.17, 0.20\nDisk Usage: 75%\nMemory Usage: 50.9%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:25AM up 20 days, 22:15, 1 user, load averages: 0.23, 0.23, 0.19\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: 11:25:13 up 2 days, 56 min, 1 user, load average: 0.24, 0.24, 0.10\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25:13 up 12:45, 1 user, load average: 1.60, 1.29, 1.13\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.63\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-16T16:25:21.844099+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6300f3254f644c00b23a585473addb34` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:30:00.000371+00:00 |
| **Fin** | 2025-12-16T16:30:22.195333+00:00 |
| **Durée** | 22.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: [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: [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.003157", "end": "2025-12-16 11:30:11.703527", "msg": "", "rc": 0, "start": "2025-12-16 11:30:11.700370", "stderr": "", "stderr_lines": [], "stdout": " 11:30:11 up 20 days, 22:21, 1 user, load average: 0.52, 0.70, 0.55", "stdout_lines": [" 11:30:11 up 20 days, 22:21, 1 user, load average: 0.52, 0.70, 0.55"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004108", "end": "2025-12-16 11:30:11.715411", "msg": "", "rc": 0, "start": "2025-12-16 11:30:11.711303", "stderr": "", "stderr_lines": [], "stdout": " 11:30:11 up 21 days, 40 min, 1 user, load average: 0.09, 0.02, 0.01", "stdout_lines": [" 11:30:11 up 21 days, 40 min, 1 user, load average: 0.09, 0.02, 0.01"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003784", "end": "2025-12-16 11:30:11.719686", "msg": "", "rc": 0, "start": "2025-12-16 11:30:11.715902", "stderr": "", "stderr_lines": [], "stdout": " 11:30:11 up 20 days, 22:41, 1 user, load average: 1.03, 0.93, 0.91", "stdout_lines": [" 11:30:11 up 20 days, 22:41, 1 user, load average: 1.03, 0.93, 0.91"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002796", "end": "2025-12-16 11:30:11.730522", "msg": "", "rc": 0, "start": "2025-12-16 11:30:11.727726", "stderr": "", "stderr_lines": [], "stdout": " 11:30:11 up 2 days, 1:02, 1 user, load average: 0.39, 0.33, 0.23", "stdout_lines": [" 11:30:11 up 2 days, 1:02, 1 user, load average: 0.39, 0.33, 0.23"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004115", "end": "2025-12-16 11:30:11.731182", "msg": "", "rc": 0, "start": "2025-12-16 11:30:11.727067", "stderr": "", "stderr_lines": [], "stdout": " 11:30:11 up 20 days, 23:54, 1 user, load average: 0.69, 0.75, 0.70", "stdout_lines": [" 11:30:11 up 20 days, 23:54, 1 user, load average: 0.69, 0.75, 0.70"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002804", "end": "2025-12-16 11:29:46.935911", "msg": "", "rc": 0, "start": "2025-12-16 11:29:46.933107", "stderr": "", "stderr_lines": [], "stdout": " 11:29:46 up 9 days, 23:19, 0 user, load average: 0.11, 0.18, 0.25", "stdout_lines": [" 11:29:46 up 9 days, 23:19, 0 user, load average: 0.11, 0.18, 0.25"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003218", "end": "2025-12-16 11:29:40.840848", "msg": "", "rc": 0, "start": "2025-12-16 11:29:40.837630", "stderr": "", "stderr_lines": [], "stdout": " 11:29:40 up 16 days, 19:31, 0 user, load average: 0.10, 0.05, 0.01", "stdout_lines": [" 11:29:40 up 16 days, 19:31, 0 user, load average: 0.10, 0.05, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008785", "end": "2025-12-16 11:30:12.426543", "msg": "", "rc": 0, "start": "2025-12-16 11:30:12.417758", "stderr": "", "stderr_lines": [], "stdout": " 11:30:12 up 193 days, 3:03, 1 user, load average: 0.23, 0.25, 0.20", "stdout_lines": [" 11:30:12 up 193 days, 3:03, 1 user, load average: 0.23, 0.25, 0.20"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009306", "end": "2025-12-16 11:30:12.462892", "msg": "", "rc": 0, "start": "2025-12-16 11:30:12.453586", "stderr": "", "stderr_lines": [], "stdout": " 11:30:12 up 193 days, 3:03, 1 user, load average: 0.35, 0.30, 0.26", "stdout_lines": [" 11:30:12 up 193 days, 3:03, 1 user, load average: 0.35, 0.30, 0.26"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004822", "end": "2025-12-16 11:30:12.771310", "msg": "", "rc": 0, "start": "2025-12-16 11:30:12.766488", "stderr": "", "stderr_lines": [], "stdout": " 11:30:12 up 2 days, 1:01, 1 user, load average: 0.34, 0.13, 0.04", "stdout_lines": [" 11:30:12 up 2 days, 1:01, 1 user, load average: 0.34, 0.13, 0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003795", "end": "2025-12-16 11:29:44.036268", "msg": "", "rc": 0, "start": "2025-12-16 11:29:44.032473", "stderr": "", "stderr_lines": [], "stdout": " 11:29:44 up 19 days, 14:24, 0 user, load average: 0.55, 0.49, 0.49", "stdout_lines": [" 11:29:44 up 19 days, 14:24, 0 user, load average: 0.55, 0.49, 0.49"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004442", "end": "2025-12-16 08:30:12.947557", "msg": "", "rc": 0, "start": "2025-12-16 08:30:12.943115", "stderr": "", "stderr_lines": [], "stdout": " 8:30AM up 20 days, 22:20, 1 user, load averages: 0.17, 0.20, 0.18", "stdout_lines": [" 8:30AM up 20 days, 22:20, 1 user, load averages: 0.17, 0.20, 0.18"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002822", "end": "2025-12-16 11:29:50.287574", "msg": "", "rc": 0, "start": "2025-12-16 11:29:50.284752", "stderr": "", "stderr_lines": [], "stdout": " 11:29:50 up 16 days, 45 min, 0 user, load average: 0.53, 0.32, 0.25", "stdout_lines": [" 11:29:50 up 16 days, 45 min, 0 user, load average: 0.53, 0.32, 0.25"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007791", "end": "2025-12-16 11:30:13.278066", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.270275", "stderr": "", "stderr_lines": [], "stdout": " 11:30:13 up 12:50, 1 user, load average: 1.26, 1.18, 1.11", "stdout_lines": [" 11:30:13 up 12:50, 1 user, load average: 1.26, 1.18, 1.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003614", "end": "2025-12-16 11:30:13.203260", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.199646", "stderr": "", "stderr_lines": [], "stdout": " 11:30:13 up 2 days, 1:01, 1 user, load average: 0.06, 0.11, 0.08", "stdout_lines": [" 11:30:13 up 2 days, 1:01, 1 user, load average: 0.06, 0.11, 0.08"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019586", "end": "2025-12-16 11:30:13.112073", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.092487", "stderr": "", "stderr_lines": [], "stdout": " 11:30:13 up 14 days, 56 min, 1 user, load average: 0.21, 0.14, 0.10", "stdout_lines": [" 11:30:13 up 14 days, 56 min, 1 user, load average: 0.21, 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.004300", "end": "2025-12-16 11:30:13.632268", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.627968", "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.004079", "end": "2025-12-16 11:30:13.646242", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.642163", "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.005055", "end": "2025-12-16 11:30:13.653291", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.648236", "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.004708", "end": "2025-12-16 11:30:13.677999", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.673291", "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.005565", "end": "2025-12-16 11:30:13.694421", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.688856", "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.005954", "end": "2025-12-16 11:29:48.839887", "msg": "", "rc": 0, "start": "2025-12-16 11:29:48.833933", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005378", "end": "2025-12-16 11:29:42.741816", "msg": "", "rc": 0, "start": "2025-12-16 11:29:42.736438", "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.010480", "end": "2025-12-16 11:30:14.367865", "msg": "", "rc": 0, "start": "2025-12-16 11:30:14.357385", "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.012857", "end": "2025-12-16 11:30:14.416923", "msg": "", "rc": 0, "start": "2025-12-16 11:30:14.404066", "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.005737", "end": "2025-12-16 11:30:14.624407", "msg": "", "rc": 0, "start": "2025-12-16 11:30:14.618670", "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.005323", "end": "2025-12-16 11:29:45.907722", "msg": "", "rc": 0, "start": "2025-12-16 11:29:45.902399", "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.004753", "end": "2025-12-16 11:29:52.162178", "msg": "", "rc": 0, "start": "2025-12-16 11:29:52.157425", "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.005725", "end": "2025-12-16 08:30:14.879632", "msg": "", "rc": 0, "start": "2025-12-16 08:30:14.873907", "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.005332", "end": "2025-12-16 11:30:15.055942", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.050610", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019048", "end": "2025-12-16 11:30:15.242117", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.223069", "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.025001", "end": "2025-12-16 11:30:15.029207", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.004206", "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.004506", "end": "2025-12-16 11:30:15.560273", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.555767", "stderr": "", "stderr_lines": [], "stdout": "87.9%", "stdout_lines": ["87.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.004802", "end": "2025-12-16 11:30:15.575858", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.571056", "stderr": "", "stderr_lines": [], "stdout": "49.0%", "stdout_lines": ["49.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.004203", "end": "2025-12-16 11:30:15.581684", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.577481", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004964", "end": "2025-12-16 11:30:15.615571", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.610607", "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.005814", "end": "2025-12-16 11:30:15.610974", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.605160", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004255", "end": "2025-12-16 11:29:50.775583", "msg": "", "rc": 0, "start": "2025-12-16 11:29:50.771328", "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.005587", "end": "2025-12-16 11:29:44.669754", "msg": "", "rc": 0, "start": "2025-12-16 11:29:44.664167", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011000", "end": "2025-12-16 11:30:16.254662", "msg": "", "rc": 0, "start": "2025-12-16 11:30:16.243662", "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.011967", "end": "2025-12-16 11:30:16.291745", "msg": "", "rc": 0, "start": "2025-12-16 11:30:16.279778", "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.005829", "end": "2025-12-16 11:30:16.544405", "msg": "", "rc": 0, "start": "2025-12-16 11:30:16.538576", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004042", "end": "2025-12-16 11:29:47.840069", "msg": "", "rc": 0, "start": "2025-12-16 11:29:47.836027", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005557", "end": "2025-12-16 08:30:16.754208", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:30:16.748651", "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.003998", "end": "2025-12-16 11:29:54.088779", "msg": "", "rc": 0, "start": "2025-12-16 11:29:54.084781", "stderr": "", "stderr_lines": [], "stdout": "53.1%", "stdout_lines": ["53.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.005346", "end": "2025-12-16 11:30:16.952917", "msg": "", "rc": 0, "start": "2025-12-16 11:30:16.947571", "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.008788", "end": "2025-12-16 11:30:17.237836", "msg": "", "rc": 0, "start": "2025-12-16 11:30:17.229048", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025584", "end": "2025-12-16 11:30:16.955980", "msg": "", "rc": 0, "start": "2025-12-16 11:30:16.930396", "stderr": "", "stderr_lines": [], "stdout": "18.4%", "stdout_lines": ["18.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.005367", "end": "2025-12-16 11:30:17.491981", "msg": "", "rc": 0, "start": "2025-12-16 11:30:17.486614", "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-16 11:30:17.512891", "msg": "", "rc": 0, "start": "2025-12-16 11:30:17.507995", "stderr": "", "stderr_lines": [], "stdout": "44.0°C", "stdout_lines": ["44.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.005740", "end": "2025-12-16 11:30:17.523296", "msg": "", "rc": 0, "start": "2025-12-16 11:30:17.517556", "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.003241", "end": "2025-12-16 11:30:17.534514", "msg": "", "rc": 0, "start": "2025-12-16 11:30:17.531273", "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.006716", "end": "2025-12-16 11:30:17.558069", "msg": "", "rc": 0, "start": "2025-12-16 11:30:17.551353", "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.002591", "end": "2025-12-16 11:29:52.695490", "msg": "", "rc": 0, "start": "2025-12-16 11:29:52.692899", "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-16 11:29:46.623501", "msg": "", "rc": 0, "start": "2025-12-16 11:29:46.620428", "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.011755", "end": "2025-12-16 11:30:18.192219", "msg": "", "rc": 0, "start": "2025-12-16 11:30:18.180464", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.013222", "end": "2025-12-16 11:30:18.222169", "msg": "", "rc": 0, "start": "2025-12-16 11:30:18.208947", "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.003547", "end": "2025-12-16 11:30:18.467385", "msg": "", "rc": 0, "start": "2025-12-16 11:30:18.463838", "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.002753", "end": "2025-12-16 11:29:49.781765", "msg": "", "rc": 0, "start": "2025-12-16 11:29:49.779012", "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.003858", "end": "2025-12-16 08:30:18.688658", "msg": "", "rc": 0, "start": "2025-12-16 08:30:18.684800", "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.003277", "end": "2025-12-16 11:29:56.011831", "msg": "", "rc": 0, "start": "2025-12-16 11:29:56.008554", "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-16 11:30:18.888296", "msg": "", "rc": 0, "start": "2025-12-16 11:30:18.885410", "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.004410", "end": "2025-12-16 11:30:19.285127", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.280717", "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.028625", "end": "2025-12-16 11:30:18.899939", "msg": "", "rc": 0, "start": "2025-12-16 11:30:18.871314", "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.004411", "end": "2025-12-16 11:30:19.429600", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.425189", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
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.004053", "end": "2025-12-16 11:30:19.435894", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.431841", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.004869", "end": "2025-12-16 11:30:19.465227", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.460358", "stderr": "", "stderr_lines": [], "stdout": "1.03", "stdout_lines": ["1.03"]}
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.004793", "end": "2025-12-16 11:30:19.466446", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.461653", "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.005650", "end": "2025-12-16 11:30:19.480486", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.474836", "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.004538", "end": "2025-12-16 11:29:54.647135", "msg": "", "rc": 0, "start": "2025-12-16 11:29:54.642597", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005304", "end": "2025-12-16 11:29:48.561700", "msg": "", "rc": 0, "start": "2025-12-16 11:29:48.556396", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.010275", "end": "2025-12-16 11:30:20.210227", "msg": "", "rc": 0, "start": "2025-12-16 11:30:20.199952", "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.015430", "end": "2025-12-16 11:30:20.237556", "msg": "", "rc": 0, "start": "2025-12-16 11:30:20.222126", "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.005540", "end": "2025-12-16 11:30:20.421412", "msg": "", "rc": 0, "start": "2025-12-16 11:30:20.415872", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.005053", "end": "2025-12-16 11:29:51.766149", "msg": "", "rc": 0, "start": "2025-12-16 11:29:51.761096", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.004047", "end": "2025-12-16 11:29:58.053764", "msg": "", "rc": 0, "start": "2025-12-16 11:29:58.049717", "stderr": "", "stderr_lines": [], "stdout": "0.67", "stdout_lines": ["0.67"]}
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.006063", "end": "2025-12-16 08:30:20.773000", "msg": "", "rc": 0, "start": "2025-12-16 08:30:20.766937", "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.005331", "end": "2025-12-16 11:30:20.894130", "msg": "", "rc": 0, "start": "2025-12-16 11:30:20.888799", "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.024030", "end": "2025-12-16 11:30:20.809400", "msg": "", "rc": 0, "start": "2025-12-16 11:30:20.785370", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.008760", "end": "2025-12-16 11:30:21.359294", "msg": "", "rc": 0, "start": "2025-12-16 11:30:21.350534", "stderr": "", "stderr_lines": [], "stdout": "1.23", "stdout_lines": ["1.23"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:11 up 2 days, 1:02, 1 user, load average: 0.39, 0.33, 0.23\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.36\nCPU Temp: 44.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:11 up 20 days, 22:21, 1 user, load average: 0.52, 0.70, 0.55\nDisk Usage: 23%\nMemory Usage: 87.9%\nCPU Load: 0.52\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:11 up 20 days, 22:41, 1 user, load average: 1.03, 0.93, 0.91\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 1.03\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:11 up 20 days, 23:54, 1 user, load average: 0.69, 0.75, 0.70\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.63\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:11 up 21 days, 40 min, 1 user, load average: 0.09, 0.02, 0.01\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: 11:30:13 up 14 days, 56 min, 1 user, load average: 0.21, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 18.4%\nCPU Load: 0.28\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:12 up 193 days, 3:03, 1 user, load average: 0.35, 0.30, 0.26\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.38\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:12 up 193 days, 3:03, 1 user, load average: 0.23, 0.25, 0.20\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.19\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:29:46 up 9 days, 23:19, 0 user, load average: 0.11, 0.18, 0.25\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:29:40 up 16 days, 19:31, 0 user, load average: 0.10, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30:12 up 2 days, 1:01, 1 user, load average: 0.34, 0.13, 0.04\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.36\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:29:44 up 19 days, 14:24, 0 user, load average: 0.55, 0.49, 0.49\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.47\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:29:50 up 16 days, 45 min, 0 user, load average: 0.53, 0.32, 0.25\nDisk Usage: 75%\nMemory Usage: 53.1%\nCPU Load: 0.67\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:30AM up 20 days, 22:20, 1 user, load averages: 0.17, 0.20, 0.18\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: 11:30:13 up 2 days, 1:01, 1 user, load average: 0.06, 0.11, 0.08\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: 11:30:13 up 12:50, 1 user, load average: 1.26, 1.18, 1.11\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.23\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-16T16:30:22.246899+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `29e9afdfbdc4460e9e7cfe1e0df194dd` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:35:00.002773+00:00 |
| **Fin** | 2025-12-16T16:35:21.627805+00:00 |
| **Durée** | 21.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: [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.003118", "end": "2025-12-16 11:35:10.920191", "msg": "", "rc": 0, "start": "2025-12-16 11:35:10.917073", "stderr": "", "stderr_lines": [], "stdout": " 11:35:10 up 20 days, 22:26, 1 user, load average: 0.48, 0.60, 0.55", "stdout_lines": [" 11:35:10 up 20 days, 22:26, 1 user, load average: 0.48, 0.60, 0.55"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003957", "end": "2025-12-16 11:35:10.929177", "msg": "", "rc": 0, "start": "2025-12-16 11:35:10.925220", "stderr": "", "stderr_lines": [], "stdout": " 11:35:10 up 21 days, 45 min, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 11:35:10 up 21 days, 45 min, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004088", "end": "2025-12-16 11:35:10.949133", "msg": "", "rc": 0, "start": "2025-12-16 11:35:10.945045", "stderr": "", "stderr_lines": [], "stdout": " 11:35:10 up 20 days, 23:59, 1 user, load average: 0.58, 0.63, 0.66", "stdout_lines": [" 11:35:10 up 20 days, 23:59, 1 user, load average: 0.58, 0.63, 0.66"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002847", "end": "2025-12-16 11:35:10.956294", "msg": "", "rc": 0, "start": "2025-12-16 11:35:10.953447", "stderr": "", "stderr_lines": [], "stdout": " 11:35:10 up 2 days, 1:07, 1 user, load average: 0.12, 0.24, 0.22", "stdout_lines": [" 11:35:10 up 2 days, 1:07, 1 user, load average: 0.12, 0.24, 0.22"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003572", "end": "2025-12-16 11:34:46.081875", "msg": "", "rc": 0, "start": "2025-12-16 11:34:46.078303", "stderr": "", "stderr_lines": [], "stdout": " 11:34:46 up 9 days, 23:24, 0 user, load average: 0.29, 0.23, 0.25", "stdout_lines": [" 11:34:46 up 9 days, 23:24, 0 user, load average: 0.29, 0.23, 0.25"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008380", "end": "2025-12-16 11:35:11.601899", "msg": "", "rc": 0, "start": "2025-12-16 11:35:11.593519", "stderr": "", "stderr_lines": [], "stdout": " 11:35:11 up 193 days, 3:08, 1 user, load average: 0.31, 0.20, 0.18", "stdout_lines": [" 11:35:11 up 193 days, 3:08, 1 user, load average: 0.31, 0.20, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009325", "end": "2025-12-16 11:35:11.628274", "msg": "", "rc": 0, "start": "2025-12-16 11:35:11.618949", "stderr": "", "stderr_lines": [], "stdout": " 11:35:11 up 193 days, 3:08, 1 user, load average: 0.24, 0.28, 0.27", "stdout_lines": [" 11:35:11 up 193 days, 3:08, 1 user, load average: 0.24, 0.28, 0.27"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003429", "end": "2025-12-16 11:34:40.427411", "msg": "", "rc": 0, "start": "2025-12-16 11:34:40.423982", "stderr": "", "stderr_lines": [], "stdout": " 11:34:40 up 16 days, 19:36, 0 user, load average: 0.05, 0.05, 0.00", "stdout_lines": [" 11:34:40 up 16 days, 19:36, 0 user, load average: 0.05, 0.05, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004378", "end": "2025-12-16 11:35:11.932950", "msg": "", "rc": 0, "start": "2025-12-16 11:35:10.928572", "stderr": "", "stderr_lines": [], "stdout": " 11:35:10 up 20 days, 22:46, 1 user, load average: 1.26, 1.04, 0.96", "stdout_lines": [" 11:35:10 up 20 days, 22:46, 1 user, load average: 1.26, 1.04, 0.96"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004780", "end": "2025-12-16 11:35:12.087320", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.082540", "stderr": "", "stderr_lines": [], "stdout": " 11:35:12 up 2 days, 1:06, 1 user, load average: 0.01, 0.07, 0.02", "stdout_lines": [" 11:35:12 up 2 days, 1:06, 1 user, load average: 0.01, 0.07, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003391", "end": "2025-12-16 11:34:43.348121", "msg": "", "rc": 0, "start": "2025-12-16 11:34:43.344730", "stderr": "", "stderr_lines": [], "stdout": " 11:34:43 up 19 days, 14:29, 0 user, load average: 0.66, 0.48, 0.47", "stdout_lines": [" 11:34:43 up 19 days, 14:29, 0 user, load average: 0.66, 0.48, 0.47"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004618", "end": "2025-12-16 08:35:12.347897", "msg": "", "rc": 0, "start": "2025-12-16 08:35:12.343279", "stderr": "", "stderr_lines": [], "stdout": " 8:35AM up 20 days, 22:24, 1 user, load averages: 0.17, 0.17, 0.16", "stdout_lines": [" 8:35AM up 20 days, 22:24, 1 user, load averages: 0.17, 0.17, 0.16"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002966", "end": "2025-12-16 11:34:49.698962", "msg": "", "rc": 0, "start": "2025-12-16 11:34:49.695996", "stderr": "", "stderr_lines": [], "stdout": " 11:34:49 up 16 days, 50 min, 0 user, load average: 0.25, 0.35, 0.28", "stdout_lines": [" 11:34:49 up 16 days, 50 min, 0 user, load average: 0.25, 0.35, 0.28"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019463", "end": "2025-12-16 11:35:12.294169", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.274706", "stderr": "", "stderr_lines": [], "stdout": " 11:35:12 up 14 days, 1:01, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 11:35:12 up 14 days, 1:01, 1 user, load average: 0.22, 0.14, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003740", "end": "2025-12-16 11:35:12.503074", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.499334", "stderr": "", "stderr_lines": [], "stdout": " 11:35:12 up 2 days, 1:06, 1 user, load average: 0.15, 0.12, 0.09", "stdout_lines": [" 11:35:12 up 2 days, 1:06, 1 user, load average: 0.15, 0.12, 0.09"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007891", "end": "2025-12-16 11:35:12.934158", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.926267", "stderr": "", "stderr_lines": [], "stdout": " 11:35:12 up 12:55, 1 user, load average: 1.34, 1.21, 1.12", "stdout_lines": [" 11:35:12 up 12:55, 1 user, load average: 1.34, 1.21, 1.12"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004427", "end": "2025-12-16 11:35:12.903127", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.898700", "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.004144", "end": "2025-12-16 11:35:12.921943", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.917799", "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.004947", "end": "2025-12-16 11:35:12.944388", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.939441", "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.005203", "end": "2025-12-16 11:35:12.960435", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.955232", "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.006095", "end": "2025-12-16 11:35:12.982630", "msg": "", "rc": 0, "start": "2025-12-16 11:35:12.976535", "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.004797", "end": "2025-12-16 11:34:48.100087", "msg": "", "rc": 0, "start": "2025-12-16 11:34:48.095290", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005686", "end": "2025-12-16 11:34:42.019050", "msg": "", "rc": 0, "start": "2025-12-16 11:34:42.013364", "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.010869", "end": "2025-12-16 11:35:13.655002", "msg": "", "rc": 0, "start": "2025-12-16 11:35:13.644133", "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.012463", "end": "2025-12-16 11:35:13.671106", "msg": "", "rc": 0, "start": "2025-12-16 11:35:13.658643", "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.005701", "end": "2025-12-16 11:35:13.868837", "msg": "", "rc": 0, "start": "2025-12-16 11:35:13.863136", "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.005177", "end": "2025-12-16 11:34:45.175410", "msg": "", "rc": 0, "start": "2025-12-16 11:34:45.170233", "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.005375", "end": "2025-12-16 08:35:14.126790", "msg": "", "rc": 0, "start": "2025-12-16 08:35:14.121415", "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.005581", "end": "2025-12-16 11:34:51.462034", "msg": "", "rc": 0, "start": "2025-12-16 11:34:51.456453", "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.005469", "end": "2025-12-16 11:35:14.292657", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.287188", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.022105", "end": "2025-12-16 11:35:14.814625", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.792520", "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.025738", "end": "2025-12-16 11:35:14.287089", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.261351", "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.004533", "end": "2025-12-16 11:35:14.792262", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.787729", "stderr": "", "stderr_lines": [], "stdout": "87.8%", "stdout_lines": ["87.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.004109", "end": "2025-12-16 11:35:14.815923", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.811814", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004720", "end": "2025-12-16 11:35:14.819319", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.814599", "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.005161", "end": "2025-12-16 11:35:14.844631", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.839470", "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.005465", "end": "2025-12-16 11:35:14.860864", "msg": "", "rc": 0, "start": "2025-12-16 11:35:14.855399", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.003785", "end": "2025-12-16 11:34:49.981806", "msg": "", "rc": 0, "start": "2025-12-16 11:34:49.978021", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.004441", "end": "2025-12-16 11:34:43.885070", "msg": "", "rc": 0, "start": "2025-12-16 11:34:43.880629", "stderr": "", "stderr_lines": [], "stdout": "72.6%", "stdout_lines": ["72.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.010919", "end": "2025-12-16 11:35:15.495460", "msg": "", "rc": 0, "start": "2025-12-16 11:35:15.484541", "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.011842", "end": "2025-12-16 11:35:15.539618", "msg": "", "rc": 0, "start": "2025-12-16 11:35:15.527776", "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.005969", "end": "2025-12-16 11:35:15.747524", "msg": "", "rc": 0, "start": "2025-12-16 11:35:15.741555", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004203", "end": "2025-12-16 11:34:47.053554", "msg": "", "rc": 0, "start": "2025-12-16 11:34:47.049351", "stderr": "", "stderr_lines": [], "stdout": "27.4%", "stdout_lines": ["27.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.003616", "end": "2025-12-16 11:34:53.271970", "msg": "", "rc": 0, "start": "2025-12-16 11:34:53.268354", "stderr": "", "stderr_lines": [], "stdout": "55.8%", "stdout_lines": ["55.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.005493", "end": "2025-12-16 08:35:16.007150", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:35:16.001657", "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.005391", "end": "2025-12-16 11:35:16.171931", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.166540", "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.008754", "end": "2025-12-16 11:35:16.762416", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.753662", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025691", "end": "2025-12-16 11:35:16.188941", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.163250", "stderr": "", "stderr_lines": [], "stdout": "18.6%", "stdout_lines": ["18.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.005035", "end": "2025-12-16 11:35:16.729514", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.724479", "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.004897", "end": "2025-12-16 11:35:16.741447", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.736550", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005613", "end": "2025-12-16 11:35:16.739938", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.734325", "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.003193", "end": "2025-12-16 11:35:16.762775", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.759582", "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.006449", "end": "2025-12-16 11:35:16.784668", "msg": "", "rc": 0, "start": "2025-12-16 11:35:16.778219", "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.002810", "end": "2025-12-16 11:34:51.896563", "msg": "", "rc": 0, "start": "2025-12-16 11:34:51.893753", "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.003181", "end": "2025-12-16 11:34:45.816334", "msg": "", "rc": 0, "start": "2025-12-16 11:34:45.813153", "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.011879", "end": "2025-12-16 11:35:17.421179", "msg": "", "rc": 0, "start": "2025-12-16 11:35:17.409300", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.012943", "end": "2025-12-16 11:35:17.446104", "msg": "", "rc": 0, "start": "2025-12-16 11:35:17.433161", "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.003054", "end": "2025-12-16 11:35:17.670032", "msg": "", "rc": 0, "start": "2025-12-16 11:35:17.666978", "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.002836", "end": "2025-12-16 11:34:48.980508", "msg": "", "rc": 0, "start": "2025-12-16 11:34:48.977672", "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.004124", "end": "2025-12-16 08:35:17.904676", "msg": "", "rc": 0, "start": "2025-12-16 08:35:17.900552", "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.002800", "end": "2025-12-16 11:34:55.202600", "msg": "", "rc": 0, "start": "2025-12-16 11:34:55.199800", "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.003039", "end": "2025-12-16 11:35:18.092961", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.089922", "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.004247", "end": "2025-12-16 11:35:18.739419", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.735172", "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.028654", "end": "2025-12-16 11:35:18.111865", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.083211", "stderr": "", "stderr_lines": [], "stdout": "35.6°C", "stdout_lines": ["35.6°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.003952", "end": "2025-12-16 11:35:18.639167", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.635215", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.004323", "end": "2025-12-16 11:35:18.650795", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.646472", "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.004703", "end": "2025-12-16 11:35:18.663221", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.658518", "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.005310", "end": "2025-12-16 11:35:18.692553", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.687243", "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.006575", "end": "2025-12-16 11:35:18.721463", "msg": "", "rc": 0, "start": "2025-12-16 11:35:18.714888", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.004153", "end": "2025-12-16 11:34:53.843119", "msg": "", "rc": 0, "start": "2025-12-16 11:34:53.838966", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.005277", "end": "2025-12-16 11:34:47.753996", "msg": "", "rc": 0, "start": "2025-12-16 11:34:47.748719", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.010057", "end": "2025-12-16 11:35:19.390413", "msg": "", "rc": 0, "start": "2025-12-16 11:35:19.380356", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
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.011716", "end": "2025-12-16 11:35:19.436959", "msg": "", "rc": 0, "start": "2025-12-16 11:35:19.425243", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005572", "end": "2025-12-16 11:35:19.604317", "msg": "", "rc": 0, "start": "2025-12-16 11:35:19.598745", "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.004937", "end": "2025-12-16 11:34:50.908288", "msg": "", "rc": 0, "start": "2025-12-16 11:34:50.903351", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
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.005921", "end": "2025-12-16 08:35:19.898880", "msg": "", "rc": 0, "start": "2025-12-16 08:35:19.892959", "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.004908", "end": "2025-12-16 11:34:57.201903", "msg": "", "rc": 0, "start": "2025-12-16 11:34:57.196995", "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.005289", "end": "2025-12-16 11:35:20.034360", "msg": "", "rc": 0, "start": "2025-12-16 11:35:20.029071", "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.009030", "end": "2025-12-16 11:35:20.768111", "msg": "", "rc": 0, "start": "2025-12-16 11:35:20.759081", "stderr": "", "stderr_lines": [], "stdout": "1.67", "stdout_lines": ["1.67"]}
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.024170", "end": "2025-12-16 11:35:20.026518", "msg": "", "rc": 0, "start": "2025-12-16 11:35:20.002348", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:10 up 20 days, 22:26, 1 user, load average: 0.48, 0.60, 0.55\nDisk Usage: 23%\nMemory Usage: 87.8%\nCPU Load: 0.48\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:10 up 2 days, 1:07, 1 user, load average: 0.12, 0.24, 0.22\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.19\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:10 up 20 days, 22:46, 1 user, load average: 1.26, 1.04, 0.96\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 1.14\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:10 up 20 days, 23:59, 1 user, load average: 0.58, 0.63, 0.66\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.53\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:10 up 21 days, 45 min, 1 user, load average: 0.00, 0.01, 0.00\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: 11:35:12 up 14 days, 1:01, 1 user, load average: 0.22, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 18.6%\nCPU Load: 0.26\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:11 up 193 days, 3:08, 1 user, load average: 0.24, 0.28, 0.27\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.20\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:11 up 193 days, 3:08, 1 user, load average: 0.31, 0.20, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.34\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:34:46 up 9 days, 23:24, 0 user, load average: 0.29, 0.23, 0.25\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:34:40 up 16 days, 19:36, 0 user, load average: 0.05, 0.05, 0.00\nDisk Usage: 24%\nMemory Usage: 72.6%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:12 up 2 days, 1:06, 1 user, load average: 0.01, 0.07, 0.02\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:34:43 up 19 days, 14:29, 0 user, load average: 0.66, 0.48, 0.47\nDisk Usage: 28%\nMemory Usage: 27.4%\nCPU Load: 0.56\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:34:49 up 16 days, 50 min, 0 user, load average: 0.25, 0.35, 0.28\nDisk Usage: 75%\nMemory Usage: 55.8%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:35AM up 20 days, 22:24, 1 user, load averages: 0.17, 0.17, 0.16\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: 11:35:12 up 2 days, 1:06, 1 user, load average: 0.15, 0.12, 0.09\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35:12 up 12:55, 1 user, load average: 1.34, 1.21, 1.12\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.67\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-16T16:35:21.665769+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `30ff3f90a8b84c73a999fffcda6f28f8` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:40:00.002845+00:00 |
| **Fin** | 2025-12-16T16:40:22.081411+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: [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: [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.003821", "end": "2025-12-16 11:40:11.659097", "msg": "", "rc": 0, "start": "2025-12-16 11:40:11.655276", "stderr": "", "stderr_lines": [], "stdout": " 11:40:11 up 21 days, 50 min, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:40:11 up 21 days, 50 min, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002986", "end": "2025-12-16 11:40:11.675471", "msg": "", "rc": 0, "start": "2025-12-16 11:40:11.672485", "stderr": "", "stderr_lines": [], "stdout": " 11:40:11 up 2 days, 1:12, 1 user, load average: 0.16, 0.14, 0.17", "stdout_lines": [" 11:40:11 up 2 days, 1:12, 1 user, load average: 0.16, 0.14, 0.17"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009300", "end": "2025-12-16 11:40:12.364002", "msg": "", "rc": 0, "start": "2025-12-16 11:40:12.354702", "stderr": "", "stderr_lines": [], "stdout": " 11:40:12 up 193 days, 3:13, 1 user, load average: 0.30, 0.26, 0.26", "stdout_lines": [" 11:40:12 up 193 days, 3:13, 1 user, load average: 0.30, 0.26, 0.26"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003735", "end": "2025-12-16 11:40:12.645283", "msg": "", "rc": 0, "start": "2025-12-16 11:40:11.641548", "stderr": "", "stderr_lines": [], "stdout": " 11:40:11 up 20 days, 22:31, 1 user, load average: 0.59, 0.59, 0.55", "stdout_lines": [" 11:40:11 up 20 days, 22:31, 1 user, load average: 0.59, 0.59, 0.55"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004173", "end": "2025-12-16 11:40:12.662706", "msg": "", "rc": 0, "start": "2025-12-16 11:40:11.658533", "stderr": "", "stderr_lines": [], "stdout": " 11:40:11 up 20 days, 22:51, 1 user, load average: 0.51, 0.81, 0.89", "stdout_lines": [" 11:40:11 up 20 days, 22:51, 1 user, load average: 0.51, 0.81, 0.89"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004941", "end": "2025-12-16 11:40:12.676471", "msg": "", "rc": 0, "start": "2025-12-16 11:40:11.671530", "stderr": "", "stderr_lines": [], "stdout": " 11:40:11 up 21 days, 4 min, 1 user, load average: 0.70, 0.59, 0.62", "stdout_lines": [" 11:40:11 up 21 days, 4 min, 1 user, load average: 0.70, 0.59, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003035", "end": "2025-12-16 11:39:47.766533", "msg": "", "rc": 0, "start": "2025-12-16 11:39:47.763498", "stderr": "", "stderr_lines": [], "stdout": " 11:39:47 up 9 days, 23:29, 0 user, load average: 0.09, 0.14, 0.19", "stdout_lines": [" 11:39:47 up 9 days, 23:29, 0 user, load average: 0.09, 0.14, 0.19"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008624", "end": "2025-12-16 11:40:13.061900", "msg": "", "rc": 0, "start": "2025-12-16 11:40:13.053276", "stderr": "", "stderr_lines": [], "stdout": " 11:40:13 up 193 days, 3:13, 1 user, load average: 0.12, 0.16, 0.17", "stdout_lines": [" 11:40:13 up 193 days, 3:13, 1 user, load average: 0.12, 0.16, 0.17"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004761", "end": "2025-12-16 11:40:13.149847", "msg": "", "rc": 0, "start": "2025-12-16 11:40:13.145086", "stderr": "", "stderr_lines": [], "stdout": " 11:40:13 up 2 days, 1:11, 1 user, load average: 0.05, 0.03, 0.00", "stdout_lines": [" 11:40:13 up 2 days, 1:11, 1 user, load average: 0.05, 0.03, 0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019581", "end": "2025-12-16 11:40:13.038157", "msg": "", "rc": 0, "start": "2025-12-16 11:40:13.018576", "stderr": "", "stderr_lines": [], "stdout": " 11:40:13 up 14 days, 1:06, 1 user, load average: 0.22, 0.13, 0.10", "stdout_lines": [" 11:40:13 up 14 days, 1:06, 1 user, load average: 0.22, 0.13, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003798", "end": "2025-12-16 11:39:41.694774", "msg": "", "rc": 0, "start": "2025-12-16 11:39:41.690976", "stderr": "", "stderr_lines": [], "stdout": " 11:39:41 up 16 days, 19:41, 0 user, load average: 0.06, 0.03, 0.00", "stdout_lines": [" 11:39:41 up 16 days, 19:41, 0 user, load average: 0.06, 0.03, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006437", "end": "2025-12-16 11:40:14.326446", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.320009", "stderr": "", "stderr_lines": [], "stdout": " 11:40:14 up 13:00, 1 user, load average: 1.42, 1.21, 1.14", "stdout_lines": [" 11:40:14 up 13:00, 1 user, load average: 1.42, 1.21, 1.14"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002912", "end": "2025-12-16 11:39:50.844958", "msg": "", "rc": 0, "start": "2025-12-16 11:39:50.842046", "stderr": "", "stderr_lines": [], "stdout": " 11:39:50 up 16 days, 55 min, 0 user, load average: 0.29, 0.39, 0.31", "stdout_lines": [" 11:39:50 up 16 days, 55 min, 0 user, load average: 0.29, 0.39, 0.31"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004467", "end": "2025-12-16 08:40:13.573013", "msg": "", "rc": 0, "start": "2025-12-16 08:40:13.568546", "stderr": "", "stderr_lines": [], "stdout": " 8:40AM up 20 days, 22:30, 1 user, load averages: 0.21, 0.19, 0.17", "stdout_lines": [" 8:40AM up 20 days, 22:30, 1 user, load averages: 0.21, 0.19, 0.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003854", "end": "2025-12-16 11:40:13.599169", "msg": "", "rc": 0, "start": "2025-12-16 11:40:13.595315", "stderr": "", "stderr_lines": [], "stdout": " 11:40:13 up 2 days, 1:11, 1 user, load average: 0.06, 0.08, 0.08", "stdout_lines": [" 11:40:13 up 2 days, 1:11, 1 user, load average: 0.06, 0.08, 0.08"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003129", "end": "2025-12-16 11:39:44.753862", "msg": "", "rc": 0, "start": "2025-12-16 11:39:44.750733", "stderr": "", "stderr_lines": [], "stdout": " 11:39:44 up 19 days, 14:34, 0 user, load average: 0.35, 0.36, 0.42", "stdout_lines": [" 11:39:44 up 19 days, 14:34, 0 user, load average: 0.35, 0.36, 0.42"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004669", "end": "2025-12-16 11:40:14.007853", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.003184", "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.004157", "end": "2025-12-16 11:40:14.021889", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.017732", "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.004415", "end": "2025-12-16 11:40:14.052987", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.048572", "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.004959", "end": "2025-12-16 11:40:14.052491", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.047532", "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.005769", "end": "2025-12-16 11:40:14.071784", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.066015", "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.005182", "end": "2025-12-16 11:39:49.194558", "msg": "", "rc": 0, "start": "2025-12-16 11:39:49.189376", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005850", "end": "2025-12-16 11:39:43.102481", "msg": "", "rc": 0, "start": "2025-12-16 11:39:43.096631", "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.011048", "end": "2025-12-16 11:40:14.760122", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.749074", "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.011557", "end": "2025-12-16 11:40:14.810489", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.798932", "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.006351", "end": "2025-12-16 11:40:14.978106", "msg": "", "rc": 0, "start": "2025-12-16 11:40:14.971755", "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.005152", "end": "2025-12-16 11:39:46.277820", "msg": "", "rc": 0, "start": "2025-12-16 11:39:46.272668", "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.005559", "end": "2025-12-16 08:40:15.277665", "msg": "", "rc": 0, "start": "2025-12-16 08:40:15.272106", "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.006186", "end": "2025-12-16 11:39:52.610509", "msg": "", "rc": 0, "start": "2025-12-16 11:39:52.604323", "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.005563", "end": "2025-12-16 11:40:15.399442", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.393879", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020655", "end": "2025-12-16 11:40:16.304336", "msg": "", "rc": 0, "start": "2025-12-16 11:40:16.283681", "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.025230", "end": "2025-12-16 11:40:15.390440", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.365210", "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.004382", "end": "2025-12-16 11:40:15.900851", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.896469", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.005011", "end": "2025-12-16 11:40:15.917777", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.912766", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004107", "end": "2025-12-16 11:40:15.930346", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.926239", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004948", "end": "2025-12-16 11:40:15.949376", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.944428", "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.005748", "end": "2025-12-16 11:40:15.958688", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.952940", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004494", "end": "2025-12-16 11:39:51.113043", "msg": "", "rc": 0, "start": "2025-12-16 11:39:51.108549", "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.004586", "end": "2025-12-16 11:39:45.013751", "msg": "", "rc": 0, "start": "2025-12-16 11:39:45.009165", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011001", "end": "2025-12-16 11:40:16.595214", "msg": "", "rc": 0, "start": "2025-12-16 11:40:16.584213", "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.012009", "end": "2025-12-16 11:40:16.618011", "msg": "", "rc": 0, "start": "2025-12-16 11:40:16.606002", "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.005903", "end": "2025-12-16 11:40:16.915939", "msg": "", "rc": 0, "start": "2025-12-16 11:40:16.910036", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.005273", "end": "2025-12-16 11:39:48.207311", "msg": "", "rc": 0, "start": "2025-12-16 11:39:48.202038", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.003714", "end": "2025-12-16 11:39:54.378886", "msg": "", "rc": 0, "start": "2025-12-16 11:39:54.375172", "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.005689", "end": "2025-12-16 08:40:17.084026", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:40:17.078337", "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.005468", "end": "2025-12-16 11:40:17.351935", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.346467", "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.009964", "end": "2025-12-16 11:40:18.335865", "msg": "", "rc": 0, "start": "2025-12-16 11:40:18.325901", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025972", "end": "2025-12-16 11:40:17.281010", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.255038", "stderr": "", "stderr_lines": [], "stdout": "18.6%", "stdout_lines": ["18.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.005300", "end": "2025-12-16 11:40:17.806579", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.801279", "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.004943", "end": "2025-12-16 11:40:17.824735", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.819792", "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.006233", "end": "2025-12-16 11:40:17.840011", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.833778", "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.003133", "end": "2025-12-16 11:40:17.845953", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.842820", "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.006436", "end": "2025-12-16 11:40:17.880283", "msg": "", "rc": 0, "start": "2025-12-16 11:40:17.873847", "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.002651", "end": "2025-12-16 11:39:52.995019", "msg": "", "rc": 0, "start": "2025-12-16 11:39:52.992368", "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.003247", "end": "2025-12-16 11:39:46.918158", "msg": "", "rc": 0, "start": "2025-12-16 11:39:46.914911", "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.011638", "end": "2025-12-16 11:40:18.519119", "msg": "", "rc": 0, "start": "2025-12-16 11:40:18.507481", "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.012995", "end": "2025-12-16 11:40:18.525001", "msg": "", "rc": 0, "start": "2025-12-16 11:40:18.512006", "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.003331", "end": "2025-12-16 11:40:18.757185", "msg": "", "rc": 0, "start": "2025-12-16 11:40:18.753854", "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.003212", "end": "2025-12-16 11:39:50.092874", "msg": "", "rc": 0, "start": "2025-12-16 11:39:50.089662", "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.004082", "end": "2025-12-16 08:40:18.976303", "msg": "", "rc": 0, "start": "2025-12-16 08:40:18.972221", "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.003596", "end": "2025-12-16 11:39:56.303487", "msg": "", "rc": 0, "start": "2025-12-16 11:39:56.299891", "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.002917", "end": "2025-12-16 11:40:19.188082", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.185165", "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.004296", "end": "2025-12-16 11:40:20.269554", "msg": "", "rc": 0, "start": "2025-12-16 11:40:20.265258", "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.028662", "end": "2025-12-16 11:40:19.197303", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.168641", "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.004341", "end": "2025-12-16 11:40:19.717379", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.713038", "stderr": "", "stderr_lines": [], "stdout": "0.66", "stdout_lines": ["0.66"]}
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.003951", "end": "2025-12-16 11:40:19.735478", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.731527", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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-16 11:40:19.750598", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.745829", "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.005111", "end": "2025-12-16 11:40:19.772377", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.767266", "stderr": "", "stderr_lines": [], "stdout": "0.73", "stdout_lines": ["0.73"]}
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.005535", "end": "2025-12-16 11:40:19.778166", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.772631", "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.004387", "end": "2025-12-16 11:39:54.904229", "msg": "", "rc": 0, "start": "2025-12-16 11:39:54.899842", "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.005168", "end": "2025-12-16 11:39:48.822207", "msg": "", "rc": 0, "start": "2025-12-16 11:39:48.817039", "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.010040", "end": "2025-12-16 11:40:20.490263", "msg": "", "rc": 0, "start": "2025-12-16 11:40:20.480223", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.011149", "end": "2025-12-16 11:40:20.495415", "msg": "", "rc": 0, "start": "2025-12-16 11:40:20.484266", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.005773", "end": "2025-12-16 11:40:20.681175", "msg": "", "rc": 0, "start": "2025-12-16 11:40:20.675402", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.004801", "end": "2025-12-16 11:39:52.011673", "msg": "", "rc": 0, "start": "2025-12-16 11:39:52.006872", "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.006302", "end": "2025-12-16 08:40:20.954926", "msg": "", "rc": 0, "start": "2025-12-16 08:40:20.948624", "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.004402", "end": "2025-12-16 11:39:58.304648", "msg": "", "rc": 0, "start": "2025-12-16 11:39:58.300246", "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.005268", "end": "2025-12-16 11:40:21.101949", "msg": "", "rc": 0, "start": "2025-12-16 11:40:21.096681", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.007094", "end": "2025-12-16 11:40:21.245981", "msg": "", "rc": 0, "start": "2025-12-16 11:40:21.238887", "stderr": "", "stderr_lines": [], "stdout": "1.55", "stdout_lines": ["1.55"]}
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.024456", "end": "2025-12-16 11:40:21.099387", "msg": "", "rc": 0, "start": "2025-12-16 11:40:21.074931", "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: 11:40:11 up 2 days, 1:12, 1 user, load average: 0.16, 0.14, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.15\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:11 up 20 days, 22:31, 1 user, load average: 0.59, 0.59, 0.55\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.66\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:11 up 20 days, 22:51, 1 user, load average: 0.51, 0.81, 0.89\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.47\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:11 up 21 days, 4 min, 1 user, load average: 0.70, 0.59, 0.62\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.73\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:11 up 21 days, 50 min, 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: 11:40:13 up 14 days, 1:06, 1 user, load average: 0.22, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 18.6%\nCPU Load: 0.26\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:12 up 193 days, 3:13, 1 user, load average: 0.30, 0.26, 0.26\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.33\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:13 up 193 days, 3:13, 1 user, load average: 0.12, 0.16, 0.17\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.18\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:39:47 up 9 days, 23:29, 0 user, load average: 0.09, 0.14, 0.19\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:39:41 up 16 days, 19:41, 0 user, load average: 0.06, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:13 up 2 days, 1:11, 1 user, load average: 0.05, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:39:44 up 19 days, 14:34, 0 user, load average: 0.35, 0.36, 0.42\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:39:50 up 16 days, 55 min, 0 user, load average: 0.29, 0.39, 0.31\nDisk Usage: 75%\nMemory Usage: 54.9%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:40AM up 20 days, 22:30, 1 user, load averages: 0.21, 0.19, 0.17\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: 11:40:13 up 2 days, 1:11, 1 user, load average: 0.06, 0.08, 0.08\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40:14 up 13:00, 1 user, load average: 1.42, 1.21, 1.14\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.55\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-16T16:40:22.120490+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `770d33aa1c724f4eb670ffa02a50e513` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:45:00.001371+00:00 |
| **Fin** | 2025-12-16T16:45:22.721217+00:00 |
| **Durée** | 22.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: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp.nas.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.003127", "end": "2025-12-16 11:45:12.228942", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.225815", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 20 days, 22:36, 1 user, load average: 0.45, 0.55, 0.54", "stdout_lines": [" 11:45:12 up 20 days, 22:36, 1 user, load average: 0.45, 0.55, 0.54"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003705", "end": "2025-12-16 11:45:12.240272", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.236567", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 21 days, 55 min, 1 user, load average: 0.05, 0.03, 0.00", "stdout_lines": [" 11:45:12 up 21 days, 55 min, 1 user, load average: 0.05, 0.03, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003453", "end": "2025-12-16 11:45:12.243336", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.239883", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 20 days, 22:56, 1 user, load average: 0.57, 0.66, 0.80", "stdout_lines": [" 11:45:12 up 20 days, 22:56, 1 user, load average: 0.57, 0.66, 0.80"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002815", "end": "2025-12-16 11:45:12.262295", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.259480", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 2 days, 1:17, 1 user, load average: 0.23, 0.15, 0.17", "stdout_lines": [" 11:45:12 up 2 days, 1:17, 1 user, load average: 0.23, 0.15, 0.17"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002812", "end": "2025-12-16 11:44:47.376589", "msg": "", "rc": 0, "start": "2025-12-16 11:44:47.373777", "stderr": "", "stderr_lines": [], "stdout": " 11:44:47 up 9 days, 23:34, 0 user, load average: 0.02, 0.08, 0.15", "stdout_lines": [" 11:44:47 up 9 days, 23:34, 0 user, load average: 0.02, 0.08, 0.15"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008533", "end": "2025-12-16 11:45:12.902796", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.894263", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 193 days, 3:18, 1 user, load average: 0.05, 0.12, 0.15", "stdout_lines": [" 11:45:12 up 193 days, 3:18, 1 user, load average: 0.05, 0.12, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009373", "end": "2025-12-16 11:45:12.942570", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.933197", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 193 days, 3:18, 1 user, load average: 0.17, 0.24, 0.26", "stdout_lines": [" 11:45:12 up 193 days, 3:18, 1 user, load average: 0.17, 0.24, 0.26"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003233", "end": "2025-12-16 11:44:41.715682", "msg": "", "rc": 0, "start": "2025-12-16 11:44:41.712449", "stderr": "", "stderr_lines": [], "stdout": " 11:44:41 up 16 days, 19:46, 0 user, load average: 0.10, 0.06, 0.01", "stdout_lines": [" 11:44:41 up 16 days, 19:46, 0 user, load average: 0.10, 0.06, 0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004634", "end": "2025-12-16 11:45:13.261405", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.256771", "stderr": "", "stderr_lines": [], "stdout": " 11:45:12 up 21 days, 9 min, 1 user, load average: 0.70, 0.55, 0.59", "stdout_lines": [" 11:45:12 up 21 days, 9 min, 1 user, load average: 0.70, 0.55, 0.59"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004806", "end": "2025-12-16 11:45:13.398557", "msg": "", "rc": 0, "start": "2025-12-16 11:45:13.393751", "stderr": "", "stderr_lines": [], "stdout": " 11:45:13 up 2 days, 1:16, 1 user, load average: 0.24, 0.08, 0.02", "stdout_lines": [" 11:45:13 up 2 days, 1:16, 1 user, load average: 0.24, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003497", "end": "2025-12-16 11:44:44.654607", "msg": "", "rc": 0, "start": "2025-12-16 11:44:44.651110", "stderr": "", "stderr_lines": [], "stdout": " 11:44:44 up 19 days, 14:39, 0 user, load average: 0.40, 0.42, 0.44", "stdout_lines": [" 11:44:44 up 19 days, 14:39, 0 user, load average: 0.40, 0.42, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002692", "end": "2025-12-16 11:44:50.964770", "msg": "", "rc": 0, "start": "2025-12-16 11:44:50.962078", "stderr": "", "stderr_lines": [], "stdout": " 11:44:50 up 16 days, 1:00, 0 user, load average: 0.16, 0.28, 0.28", "stdout_lines": [" 11:44:50 up 16 days, 1:00, 0 user, load average: 0.16, 0.28, 0.28"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004281", "end": "2025-12-16 08:45:13.689111", "msg": "", "rc": 0, "start": "2025-12-16 08:45:13.684830", "stderr": "", "stderr_lines": [], "stdout": " 8:45AM up 20 days, 22:35, 1 user, load averages: 0.33, 0.24, 0.18", "stdout_lines": [" 8:45AM up 20 days, 22:35, 1 user, load averages: 0.33, 0.24, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019374", "end": "2025-12-16 11:45:13.603720", "msg": "", "rc": 0, "start": "2025-12-16 11:45:13.584346", "stderr": "", "stderr_lines": [], "stdout": " 11:45:13 up 14 days, 1:11, 1 user, load average: 0.07, 0.11, 0.09", "stdout_lines": [" 11:45:13 up 14 days, 1:11, 1 user, load average: 0.07, 0.11, 0.09"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003887", "end": "2025-12-16 11:45:13.822460", "msg": "", "rc": 0, "start": "2025-12-16 11:45:13.818573", "stderr": "", "stderr_lines": [], "stdout": " 11:45:13 up 2 days, 1:16, 1 user, load average: 0.01, 0.03, 0.06", "stdout_lines": [" 11:45:13 up 2 days, 1:16, 1 user, load average: 0.01, 0.03, 0.06"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008271", "end": "2025-12-16 11:45:14.028752", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.020481", "stderr": "", "stderr_lines": [], "stdout": " 11:45:14 up 13:06, 1 user, load average: 1.36, 1.20, 1.13", "stdout_lines": [" 11:45:14 up 13:06, 1 user, load average: 1.36, 1.20, 1.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004429", "end": "2025-12-16 11:45:14.264092", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.259663", "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.004126", "end": "2025-12-16 11:45:14.274690", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.270564", "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.004985", "end": "2025-12-16 11:45:14.281710", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.276725", "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.005965", "end": "2025-12-16 11:45:14.310979", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.305014", "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.004843", "end": "2025-12-16 11:45:14.312303", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.307460", "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.005057", "end": "2025-12-16 11:44:49.439984", "msg": "", "rc": 0, "start": "2025-12-16 11:44:49.434927", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006040", "end": "2025-12-16 11:44:43.352526", "msg": "", "rc": 0, "start": "2025-12-16 11:44:43.346486", "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.010790", "end": "2025-12-16 11:45:15.004161", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.993371", "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.012120", "end": "2025-12-16 11:45:15.047012", "msg": "", "rc": 0, "start": "2025-12-16 11:45:15.034892", "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.005776", "end": "2025-12-16 11:45:15.230383", "msg": "", "rc": 0, "start": "2025-12-16 11:45:15.224607", "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.005381", "end": "2025-12-16 11:44:46.517765", "msg": "", "rc": 0, "start": "2025-12-16 11:44:46.512384", "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.004877", "end": "2025-12-16 11:44:52.781086", "msg": "", "rc": 0, "start": "2025-12-16 11:44:52.776209", "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.005737", "end": "2025-12-16 08:45:15.507343", "msg": "", "rc": 0, "start": "2025-12-16 08:45:15.501606", "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.005269", "end": "2025-12-16 11:45:15.649141", "msg": "", "rc": 0, "start": "2025-12-16 11:45:15.643872", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018730", "end": "2025-12-16 11:45:15.970535", "msg": "", "rc": 0, "start": "2025-12-16 11:45:15.951805", "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.025055", "end": "2025-12-16 11:45:15.648941", "msg": "", "rc": 0, "start": "2025-12-16 11:45:15.623886", "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.004491", "end": "2025-12-16 11:45:16.175105", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.170614", "stderr": "", "stderr_lines": [], "stdout": "87.6%", "stdout_lines": ["87.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.004196", "end": "2025-12-16 11:45:16.184044", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.179848", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004970", "end": "2025-12-16 11:45:16.195898", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.190928", "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.005207", "end": "2025-12-16 11:45:16.213155", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.207948", "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.005617", "end": "2025-12-16 11:45:16.235288", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.229671", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.003684", "end": "2025-12-16 11:44:51.338155", "msg": "", "rc": 0, "start": "2025-12-16 11:44:51.334471", "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.004492", "end": "2025-12-16 11:44:45.262047", "msg": "", "rc": 0, "start": "2025-12-16 11:44:45.257555", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011772", "end": "2025-12-16 11:45:16.854637", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.842865", "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.011943", "end": "2025-12-16 11:45:16.903059", "msg": "", "rc": 0, "start": "2025-12-16 11:45:16.891116", "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.006052", "end": "2025-12-16 11:45:17.127592", "msg": "", "rc": 0, "start": "2025-12-16 11:45:17.121540", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004024", "end": "2025-12-16 11:44:48.426369", "msg": "", "rc": 0, "start": "2025-12-16 11:44:48.422345", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.003997", "end": "2025-12-16 11:44:54.646283", "msg": "", "rc": 0, "start": "2025-12-16 11:44:54.642286", "stderr": "", "stderr_lines": [], "stdout": "54.5%", "stdout_lines": ["54.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.005246", "end": "2025-12-16 08:45:17.360995", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:45:17.355749", "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.005402", "end": "2025-12-16 11:45:17.558654", "msg": "", "rc": 0, "start": "2025-12-16 11:45:17.553252", "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.010025", "end": "2025-12-16 11:45:17.865128", "msg": "", "rc": 0, "start": "2025-12-16 11:45:17.855103", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025877", "end": "2025-12-16 11:45:17.564135", "msg": "", "rc": 0, "start": "2025-12-16 11:45:17.538258", "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.005160", "end": "2025-12-16 11:45:18.081711", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.076551", "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.004786", "end": "2025-12-16 11:45:18.094669", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.089883", "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.005484", "end": "2025-12-16 11:45:18.107110", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.101626", "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.003453", "end": "2025-12-16 11:45:18.127314", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.123861", "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.006763", "end": "2025-12-16 11:45:18.149983", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.143220", "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.002755", "end": "2025-12-16 11:44:53.250276", "msg": "", "rc": 0, "start": "2025-12-16 11:44:53.247521", "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.002855", "end": "2025-12-16 11:44:47.182720", "msg": "", "rc": 0, "start": "2025-12-16 11:44:47.179865", "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.011865", "end": "2025-12-16 11:45:18.757079", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.745214", "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.012985", "end": "2025-12-16 11:45:18.813002", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.800017", "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.003111", "end": "2025-12-16 11:45:19.030758", "msg": "", "rc": 0, "start": "2025-12-16 11:45:19.027647", "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-16 11:44:50.338771", "msg": "", "rc": 0, "start": "2025-12-16 11:44:50.335890", "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.002455", "end": "2025-12-16 11:44:56.533525", "msg": "", "rc": 0, "start": "2025-12-16 11:44:56.531070", "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.004327", "end": "2025-12-16 08:45:19.274372", "msg": "", "rc": 0, "start": "2025-12-16 08:45:19.270045", "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.003027", "end": "2025-12-16 11:45:19.452959", "msg": "", "rc": 0, "start": "2025-12-16 11:45:19.449932", "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.004117", "end": "2025-12-16 11:45:19.828785", "msg": "", "rc": 0, "start": "2025-12-16 11:45:19.824668", "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.028255", "end": "2025-12-16 11:45:19.473405", "msg": "", "rc": 0, "start": "2025-12-16 11:45:19.445150", "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.004235", "end": "2025-12-16 11:45:19.978005", "msg": "", "rc": 0, "start": "2025-12-16 11:45:19.973770", "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.004698", "end": "2025-12-16 11:45:20.010900", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.006202", "stderr": "", "stderr_lines": [], "stdout": "0.77", "stdout_lines": ["0.77"]}
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.004020", "end": "2025-12-16 11:45:20.020667", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.016647", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.004934", "end": "2025-12-16 11:45:20.035775", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.030841", "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.005333", "end": "2025-12-16 11:45:20.053233", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.047900", "stderr": "", "stderr_lines": [], "stdout": "0.73", "stdout_lines": ["0.73"]}
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-16 11:44:55.185813", "msg": "", "rc": 0, "start": "2025-12-16 11:44:55.181671", "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.004869", "end": "2025-12-16 11:44:49.087261", "msg": "", "rc": 0, "start": "2025-12-16 11:44:49.082392", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.010251", "end": "2025-12-16 11:45:20.759609", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.749358", "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.011337", "end": "2025-12-16 11:45:20.814785", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.803448", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.005631", "end": "2025-12-16 11:45:20.970290", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.964659", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004635", "end": "2025-12-16 11:44:52.253790", "msg": "", "rc": 0, "start": "2025-12-16 11:44:52.249155", "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.004038", "end": "2025-12-16 11:44:58.529984", "msg": "", "rc": 0, "start": "2025-12-16 11:44:58.525946", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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.006597", "end": "2025-12-16 08:45:21.277305", "msg": "", "rc": 0, "start": "2025-12-16 08:45:21.270708", "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.005312", "end": "2025-12-16 11:45:21.396212", "msg": "", "rc": 0, "start": "2025-12-16 11:45:21.390900", "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.007033", "end": "2025-12-16 11:45:21.843962", "msg": "", "rc": 0, "start": "2025-12-16 11:45:21.836929", "stderr": "", "stderr_lines": [], "stdout": "1.41", "stdout_lines": ["1.41"]}
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.024426", "end": "2025-12-16 11:45:21.364779", "msg": "", "rc": 0, "start": "2025-12-16 11:45:21.340353", "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: 11:45:12 up 2 days, 1:17, 1 user, load average: 0.23, 0.15, 0.17\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.29\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:12 up 20 days, 22:36, 1 user, load average: 0.45, 0.55, 0.54\nDisk Usage: 23%\nMemory Usage: 87.6%\nCPU Load: 0.46\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:12 up 20 days, 22:56, 1 user, load average: 0.57, 0.66, 0.80\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.77\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:12 up 21 days, 9 min, 1 user, load average: 0.70, 0.55, 0.59\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.73\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:12 up 21 days, 55 min, 1 user, load average: 0.05, 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: 11:45:13 up 14 days, 1:11, 1 user, load average: 0.07, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 19.0%\nCPU Load: 0.21\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:12 up 193 days, 3:18, 1 user, load average: 0.17, 0.24, 0.26\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.22\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:12 up 193 days, 3:18, 1 user, load average: 0.05, 0.12, 0.15\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.04\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:44:47 up 9 days, 23:34, 0 user, load average: 0.02, 0.08, 0.15\nDisk Usage: 47%\nMemory Usage: 71.2%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:44:41 up 16 days, 19:46, 0 user, load average: 0.10, 0.06, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45:13 up 2 days, 1:16, 1 user, load average: 0.24, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:44:44 up 19 days, 14:39, 0 user, load average: 0.40, 0.42, 0.44\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:44:50 up 16 days, 1:00, 0 user, load average: 0.16, 0.28, 0.28\nDisk Usage: 75%\nMemory Usage: 54.5%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:45AM up 20 days, 22:35, 1 user, load averages: 0.33, 0.24, 0.18\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: 11:45:13 up 2 days, 1:16, 1 user, load average: 0.01, 0.03, 0.06\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: 11:45:14 up 13:06, 1 user, load average: 1.36, 1.20, 1.13\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.41\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-16T16:45:22.757517+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `2e7f7e9b6b1d47918991ed74508ccc2b` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:50:00.000837+00:00 |
| **Fin** | 2025-12-16T16:50:21.990252+00:00 |
| **Durée** | 22.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: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003147", "end": "2025-12-16 11:50:11.030873", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.027726", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 20 days, 22:41, 1 user, load average: 0.52, 0.50, 0.53", "stdout_lines": [" 11:50:11 up 20 days, 22:41, 1 user, load average: 0.52, 0.50, 0.53"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003380", "end": "2025-12-16 11:50:11.042382", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.039002", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 20 days, 23:01, 1 user, load average: 0.51, 0.76, 0.82", "stdout_lines": [" 11:50:11 up 20 days, 23:01, 1 user, load average: 0.51, 0.76, 0.82"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003768", "end": "2025-12-16 11:50:11.048045", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.044277", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 21 days, 1:00, 1 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 11:50:11 up 21 days, 1:00, 1 user, load average: 0.01, 0.02, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003045", "end": "2025-12-16 11:50:11.067725", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.064680", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 2 days, 1:22, 1 user, load average: 0.08, 0.09, 0.14", "stdout_lines": [" 11:50:11 up 2 days, 1:22, 1 user, load average: 0.08, 0.09, 0.14"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004215", "end": "2025-12-16 11:50:11.064976", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.060761", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 21 days, 14 min, 1 user, load average: 0.87, 0.62, 0.59", "stdout_lines": [" 11:50:11 up 21 days, 14 min, 1 user, load average: 0.87, 0.62, 0.59"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003259", "end": "2025-12-16 11:49:46.278995", "msg": "", "rc": 0, "start": "2025-12-16 11:49:46.275736", "stderr": "", "stderr_lines": [], "stdout": " 11:49:46 up 9 days, 23:39, 0 user, load average: 0.04, 0.11, 0.15", "stdout_lines": [" 11:49:46 up 9 days, 23:39, 0 user, load average: 0.04, 0.11, 0.15"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003641", "end": "2025-12-16 11:49:40.183957", "msg": "", "rc": 0, "start": "2025-12-16 11:49:40.180316", "stderr": "", "stderr_lines": [], "stdout": " 11:49:40 up 16 days, 19:51, 0 user, load average: 0.07, 0.04, 0.00", "stdout_lines": [" 11:49:40 up 16 days, 19:51, 0 user, load average: 0.07, 0.04, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008601", "end": "2025-12-16 11:50:11.765585", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.756984", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 193 days, 3:23, 1 user, load average: 0.11, 0.13, 0.15", "stdout_lines": [" 11:50:11 up 193 days, 3:23, 1 user, load average: 0.11, 0.13, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009422", "end": "2025-12-16 11:50:11.778101", "msg": "", "rc": 0, "start": "2025-12-16 11:50:11.768679", "stderr": "", "stderr_lines": [], "stdout": " 11:50:11 up 193 days, 3:23, 1 user, load average: 0.24, 0.23, 0.25", "stdout_lines": [" 11:50:11 up 193 days, 3:23, 1 user, load average: 0.24, 0.23, 0.25"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004787", "end": "2025-12-16 11:50:12.040170", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.035383", "stderr": "", "stderr_lines": [], "stdout": " 11:50:12 up 2 days, 1:21, 1 user, load average: 0.01, 0.05, 0.01", "stdout_lines": [" 11:50:12 up 2 days, 1:21, 1 user, load average: 0.01, 0.05, 0.01"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004473", "end": "2025-12-16 08:50:12.232211", "msg": "", "rc": 0, "start": "2025-12-16 08:50:12.227738", "stderr": "", "stderr_lines": [], "stdout": " 8:50AM up 20 days, 22:39, 1 user, load averages: 0.23, 0.27, 0.20", "stdout_lines": [" 8:50AM up 20 days, 22:39, 1 user, load averages: 0.23, 0.27, 0.20"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003761", "end": "2025-12-16 11:49:49.542808", "msg": "", "rc": 0, "start": "2025-12-16 11:49:49.539047", "stderr": "", "stderr_lines": [], "stdout": " 11:49:49 up 16 days, 1:05, 0 user, load average: 0.32, 0.41, 0.34", "stdout_lines": [" 11:49:49 up 16 days, 1:05, 0 user, load average: 0.32, 0.41, 0.34"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003376", "end": "2025-12-16 11:49:43.383416", "msg": "", "rc": 0, "start": "2025-12-16 11:49:43.380040", "stderr": "", "stderr_lines": [], "stdout": " 11:49:43 up 19 days, 14:44, 0 user, load average: 0.78, 0.56, 0.48", "stdout_lines": [" 11:49:43 up 19 days, 14:44, 0 user, load average: 0.78, 0.56, 0.48"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003758", "end": "2025-12-16 11:50:12.469620", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.465862", "stderr": "", "stderr_lines": [], "stdout": " 11:50:12 up 2 days, 1:21, 1 user, load average: 0.56, 0.26, 0.13", "stdout_lines": [" 11:50:12 up 2 days, 1:21, 1 user, load average: 0.56, 0.26, 0.13"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006874", "end": "2025-12-16 11:50:12.994471", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.987597", "stderr": "", "stderr_lines": [], "stdout": " 11:50:12 up 13:11, 1 user, load average: 1.08, 1.12, 1.11", "stdout_lines": [" 11:50:12 up 13:11, 1 user, load average: 1.08, 1.12, 1.11"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019235", "end": "2025-12-16 11:50:12.447986", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.428751", "stderr": "", "stderr_lines": [], "stdout": " 11:50:12 up 14 days, 1:16, 1 user, load average: 0.22, 0.15, 0.10", "stdout_lines": [" 11:50:12 up 14 days, 1:16, 1 user, load average: 0.22, 0.15, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004350", "end": "2025-12-16 11:50:12.981601", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.977251", "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.004560", "end": "2025-12-16 11:50:12.994721", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.990161", "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.004088", "end": "2025-12-16 11:50:12.999406", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.995318", "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.004765", "end": "2025-12-16 11:50:13.025127", "msg": "", "rc": 0, "start": "2025-12-16 11:50:13.020362", "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.005954", "end": "2025-12-16 11:50:13.059154", "msg": "", "rc": 0, "start": "2025-12-16 11:50:13.053200", "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.005107", "end": "2025-12-16 11:49:48.133155", "msg": "", "rc": 0, "start": "2025-12-16 11:49:48.128048", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005630", "end": "2025-12-16 11:49:42.095752", "msg": "", "rc": 0, "start": "2025-12-16 11:49:42.090122", "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.010761", "end": "2025-12-16 11:50:13.707369", "msg": "", "rc": 0, "start": "2025-12-16 11:50:13.696608", "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.011713", "end": "2025-12-16 11:50:13.738235", "msg": "", "rc": 0, "start": "2025-12-16 11:50:13.726522", "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.006039", "end": "2025-12-16 11:50:13.916674", "msg": "", "rc": 0, "start": "2025-12-16 11:50:13.910635", "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.005377", "end": "2025-12-16 11:49:45.261435", "msg": "", "rc": 0, "start": "2025-12-16 11:49:45.256058", "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.005405", "end": "2025-12-16 08:50:14.201411", "msg": "", "rc": 0, "start": "2025-12-16 08:50:14.196006", "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.004907", "end": "2025-12-16 11:49:51.496821", "msg": "", "rc": 0, "start": "2025-12-16 11:49:51.491914", "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.005923", "end": "2025-12-16 11:50:14.342439", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.336516", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020284", "end": "2025-12-16 11:50:14.976694", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.956410", "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.024863", "end": "2025-12-16 11:50:14.354152", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.329289", "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.004352", "end": "2025-12-16 11:50:14.874209", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.869857", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.004136", "end": "2025-12-16 11:50:14.900565", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.896429", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005117", "end": "2025-12-16 11:50:14.915967", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.910850", "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.005074", "end": "2025-12-16 11:50:14.921879", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.916805", "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.006072", "end": "2025-12-16 11:50:14.937316", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.931244", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.003655", "end": "2025-12-16 11:49:50.064301", "msg": "", "rc": 0, "start": "2025-12-16 11:49:50.060646", "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.004427", "end": "2025-12-16 11:49:43.967474", "msg": "", "rc": 0, "start": "2025-12-16 11:49:43.963047", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.010984", "end": "2025-12-16 11:50:15.579933", "msg": "", "rc": 0, "start": "2025-12-16 11:50:15.568949", "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.011995", "end": "2025-12-16 11:50:15.619273", "msg": "", "rc": 0, "start": "2025-12-16 11:50:15.607278", "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.007050", "end": "2025-12-16 11:50:15.857382", "msg": "", "rc": 0, "start": "2025-12-16 11:50:15.850332", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.004310", "end": "2025-12-16 11:49:47.134496", "msg": "", "rc": 0, "start": "2025-12-16 11:49:47.130186", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.003988", "end": "2025-12-16 11:49:53.385406", "msg": "", "rc": 0, "start": "2025-12-16 11:49:53.381418", "stderr": "", "stderr_lines": [], "stdout": "50.0%", "stdout_lines": ["50.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.005143", "end": "2025-12-16 08:50:16.124405", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:50:16.119262", "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.005444", "end": "2025-12-16 11:50:16.287736", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.282292", "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.009426", "end": "2025-12-16 11:50:16.915917", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.906491", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025892", "end": "2025-12-16 11:50:16.272196", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.246304", "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.005094", "end": "2025-12-16 11:50:16.793678", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.788584", "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.005022", "end": "2025-12-16 11:50:16.822115", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.817093", "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.003091", "end": "2025-12-16 11:50:16.839385", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.836294", "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.006507", "end": "2025-12-16 11:50:16.840550", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.834043", "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.007294", "end": "2025-12-16 11:50:16.848177", "msg": "", "rc": 0, "start": "2025-12-16 11:50:16.840883", "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.002442", "end": "2025-12-16 11:49:51.968332", "msg": "", "rc": 0, "start": "2025-12-16 11:49:51.965890", "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.003324", "end": "2025-12-16 11:49:45.878756", "msg": "", "rc": 0, "start": "2025-12-16 11:49:45.875432", "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.011871", "end": "2025-12-16 11:50:17.495992", "msg": "", "rc": 0, "start": "2025-12-16 11:50:17.484121", "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.013023", "end": "2025-12-16 11:50:17.528152", "msg": "", "rc": 0, "start": "2025-12-16 11:50:17.515129", "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.003211", "end": "2025-12-16 11:50:17.768025", "msg": "", "rc": 0, "start": "2025-12-16 11:50:17.764814", "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.002702", "end": "2025-12-16 11:49:49.076021", "msg": "", "rc": 0, "start": "2025-12-16 11:49:49.073319", "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.002638", "end": "2025-12-16 11:49:55.291930", "msg": "", "rc": 0, "start": "2025-12-16 11:49:55.289292", "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.004265", "end": "2025-12-16 08:50:18.008069", "msg": "", "rc": 0, "start": "2025-12-16 08:50:18.003804", "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.002887", "end": "2025-12-16 11:50:18.193614", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.190727", "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.005404", "end": "2025-12-16 11:50:18.954429", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.949025", "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.028416", "end": "2025-12-16 11:50:18.182993", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.154577", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°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.004274", "end": "2025-12-16 11:50:18.705239", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.700965", "stderr": "", "stderr_lines": [], "stdout": "0.75", "stdout_lines": ["0.75"]}
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-16 11:50:18.713727", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.709726", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.004947", "end": "2025-12-16 11:50:18.736620", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.731673", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.004970", "end": "2025-12-16 11:50:18.766515", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.761545", "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.005405", "end": "2025-12-16 11:50:18.773181", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.767776", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.004471", "end": "2025-12-16 11:49:53.903522", "msg": "", "rc": 0, "start": "2025-12-16 11:49:53.899051", "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.005089", "end": "2025-12-16 11:49:47.834529", "msg": "", "rc": 0, "start": "2025-12-16 11:49:47.829440", "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.010360", "end": "2025-12-16 11:50:19.536365", "msg": "", "rc": 0, "start": "2025-12-16 11:50:19.526005", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.011155", "end": "2025-12-16 11:50:19.560572", "msg": "", "rc": 0, "start": "2025-12-16 11:50:19.549417", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005693", "end": "2025-12-16 11:50:19.724248", "msg": "", "rc": 0, "start": "2025-12-16 11:50:19.718555", "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.005637", "end": "2025-12-16 11:49:51.013550", "msg": "", "rc": 0, "start": "2025-12-16 11:49:51.007913", "stderr": "", "stderr_lines": [], "stdout": "0.72", "stdout_lines": ["0.72"]}
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.004147", "end": "2025-12-16 11:49:57.318697", "msg": "", "rc": 0, "start": "2025-12-16 11:49:57.314550", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.006051", "end": "2025-12-16 08:50:20.030134", "msg": "", "rc": 0, "start": "2025-12-16 08:50:20.024083", "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.005370", "end": "2025-12-16 11:50:20.147435", "msg": "", "rc": 0, "start": "2025-12-16 11:50:20.142065", "stderr": "", "stderr_lines": [], "stdout": "0.72", "stdout_lines": ["0.72"]}
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.024184", "end": "2025-12-16 11:50:20.098725", "msg": "", "rc": 0, "start": "2025-12-16 11:50:20.074541", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.007553", "end": "2025-12-16 11:50:21.037190", "msg": "", "rc": 0, "start": "2025-12-16 11:50:21.029637", "stderr": "", "stderr_lines": [], "stdout": "1.38", "stdout_lines": ["1.38"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 2 days, 1:22, 1 user, load average: 0.08, 0.09, 0.14\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.07\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 20 days, 22:41, 1 user, load average: 0.52, 0.50, 0.53\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.75\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 20 days, 23:01, 1 user, load average: 0.51, 0.76, 0.82\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.51\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 21 days, 14 min, 1 user, load average: 0.87, 0.62, 0.59\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.80\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 21 days, 1:00, 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: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:12 up 14 days, 1:16, 1 user, load average: 0.22, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.1%\nCPU Load: 0.42\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 193 days, 3:23, 1 user, load average: 0.24, 0.23, 0.25\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.27\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:11 up 193 days, 3:23, 1 user, load average: 0.11, 0.13, 0.15\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.18\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:49:46 up 9 days, 23:39, 0 user, load average: 0.04, 0.11, 0.15\nDisk Usage: 47%\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: 11:49:40 up 16 days, 19:51, 0 user, load average: 0.07, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:12 up 2 days, 1:21, 1 user, load average: 0.01, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:49:43 up 19 days, 14:44, 0 user, load average: 0.78, 0.56, 0.48\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.72\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:49:49 up 16 days, 1:05, 0 user, load average: 0.32, 0.41, 0.34\nDisk Usage: 75%\nMemory Usage: 50.0%\nCPU Load: 0.50\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:50AM up 20 days, 22:39, 1 user, load averages: 0.23, 0.27, 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: 11:50:12 up 2 days, 1:21, 1 user, load average: 0.56, 0.26, 0.13\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.72\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50:12 up 13:11, 1 user, load average: 1.08, 1.12, 1.11\nDisk Usage: 1%\nMemory Usage: 20.4%\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-16T16:50:22.034596+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `8ab39e3cb99e45a7b78cb702b6fd3dea` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T16:55:00.001898+00:00 |
| **Fin** | 2025-12-16T16:55:22.194314+00:00 |
| **Durée** | 22.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: [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: [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.003527", "end": "2025-12-16 11:55:11.760342", "msg": "", "rc": 0, "start": "2025-12-16 11:55:11.756815", "stderr": "", "stderr_lines": [], "stdout": " 11:55:11 up 20 days, 23:06, 1 user, load average: 0.74, 0.75, 0.81", "stdout_lines": [" 11:55:11 up 20 days, 23:06, 1 user, load average: 0.74, 0.75, 0.81"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003715", "end": "2025-12-16 11:55:11.769110", "msg": "", "rc": 0, "start": "2025-12-16 11:55:11.765395", "stderr": "", "stderr_lines": [], "stdout": " 11:55:11 up 21 days, 1:05, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 11:55:11 up 21 days, 1:05, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003146", "end": "2025-12-16 11:55:11.797068", "msg": "", "rc": 0, "start": "2025-12-16 11:55:11.793922", "stderr": "", "stderr_lines": [], "stdout": " 11:55:11 up 2 days, 1:27, 1 user, load average: 0.22, 0.17, 0.16", "stdout_lines": [" 11:55:11 up 2 days, 1:27, 1 user, load average: 0.22, 0.17, 0.16"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004091", "end": "2025-12-16 11:55:11.803540", "msg": "", "rc": 0, "start": "2025-12-16 11:55:11.799449", "stderr": "", "stderr_lines": [], "stdout": " 11:55:11 up 21 days, 19 min, 1 user, load average: 0.54, 0.61, 0.60", "stdout_lines": [" 11:55:11 up 21 days, 19 min, 1 user, load average: 0.54, 0.61, 0.60"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002790", "end": "2025-12-16 11:54:46.972021", "msg": "", "rc": 0, "start": "2025-12-16 11:54:46.969231", "stderr": "", "stderr_lines": [], "stdout": " 11:54:46 up 9 days, 23:44, 0 user, load average: 0.04, 0.06, 0.11", "stdout_lines": [" 11:54:46 up 9 days, 23:44, 0 user, load average: 0.04, 0.06, 0.11"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008463", "end": "2025-12-16 11:55:12.497895", "msg": "", "rc": 0, "start": "2025-12-16 11:55:12.489432", "stderr": "", "stderr_lines": [], "stdout": " 11:55:12 up 193 days, 3:28, 1 user, load average: 0.16, 0.14, 0.15", "stdout_lines": [" 11:55:12 up 193 days, 3:28, 1 user, load average: 0.16, 0.14, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009208", "end": "2025-12-16 11:55:12.529302", "msg": "", "rc": 0, "start": "2025-12-16 11:55:12.520094", "stderr": "", "stderr_lines": [], "stdout": " 11:55:12 up 193 days, 3:28, 1 user, load average: 0.32, 0.25, 0.26", "stdout_lines": [" 11:55:12 up 193 days, 3:28, 1 user, load average: 0.32, 0.25, 0.26"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004291", "end": "2025-12-16 11:55:12.754419", "msg": "", "rc": 0, "start": "2025-12-16 11:55:11.750128", "stderr": "", "stderr_lines": [], "stdout": " 11:55:11 up 20 days, 22:46, 1 user, load average: 0.51, 0.49, 0.52", "stdout_lines": [" 11:55:11 up 20 days, 22:46, 1 user, load average: 0.51, 0.49, 0.52"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007579", "end": "2025-12-16 11:54:41.382410", "msg": "", "rc": 0, "start": "2025-12-16 11:54:41.374831", "stderr": "", "stderr_lines": [], "stdout": " 11:54:41 up 16 days, 19:56, 0 user, load average: 0.02, 0.03, 0.00", "stdout_lines": [" 11:54:41 up 16 days, 19:56, 0 user, load average: 0.02, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004654", "end": "2025-12-16 11:55:12.992560", "msg": "", "rc": 0, "start": "2025-12-16 11:55:12.987906", "stderr": "", "stderr_lines": [], "stdout": " 11:55:12 up 2 days, 1:26, 1 user, load average: 0.05, 0.07, 0.01", "stdout_lines": [" 11:55:12 up 2 days, 1:26, 1 user, load average: 0.05, 0.07, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003362", "end": "2025-12-16 11:54:44.253947", "msg": "", "rc": 0, "start": "2025-12-16 11:54:44.250585", "stderr": "", "stderr_lines": [], "stdout": " 11:54:44 up 19 days, 14:49, 0 user, load average: 0.81, 0.59, 0.50", "stdout_lines": [" 11:54:44 up 19 days, 14:49, 0 user, load average: 0.81, 0.59, 0.50"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002984", "end": "2025-12-16 11:54:50.495813", "msg": "", "rc": 0, "start": "2025-12-16 11:54:50.492829", "stderr": "", "stderr_lines": [], "stdout": " 11:54:50 up 16 days, 1:10, 0 user, load average: 0.48, 0.48, 0.39", "stdout_lines": [" 11:54:50 up 16 days, 1:10, 0 user, load average: 0.48, 0.48, 0.39"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019488", "end": "2025-12-16 11:55:13.168210", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.148722", "stderr": "", "stderr_lines": [], "stdout": " 11:55:13 up 14 days, 1:21, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 11:55:13 up 14 days, 1:21, 1 user, load average: 0.22, 0.14, 0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004628", "end": "2025-12-16 08:55:13.354081", "msg": "", "rc": 0, "start": "2025-12-16 08:55:13.349453", "stderr": "", "stderr_lines": [], "stdout": " 8:55AM up 20 days, 22:45, 1 user, load averages: 0.22, 0.24, 0.20", "stdout_lines": [" 8:55AM up 20 days, 22:45, 1 user, load averages: 0.22, 0.24, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003771", "end": "2025-12-16 11:55:13.429654", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.425883", "stderr": "", "stderr_lines": [], "stdout": " 11:55:13 up 2 days, 1:26, 1 user, load average: 0.02, 0.19, 0.15", "stdout_lines": [" 11:55:13 up 2 days, 1:26, 1 user, load average: 0.02, 0.19, 0.15"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007706", "end": "2025-12-16 11:55:14.333003", "msg": "", "rc": 0, "start": "2025-12-16 11:55:14.325297", "stderr": "", "stderr_lines": [], "stdout": " 11:55:14 up 13:16, 1 user, load average: 1.15, 1.11, 1.10", "stdout_lines": [" 11:55:14 up 13:16, 1 user, load average: 1.15, 1.11, 1.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004393", "end": "2025-12-16 11:55:13.847067", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.842674", "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.004101", "end": "2025-12-16 11:55:13.865499", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.861398", "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.004861", "end": "2025-12-16 11:55:13.872782", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.867921", "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.004635", "end": "2025-12-16 11:55:13.883018", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.878383", "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.005941", "end": "2025-12-16 11:55:13.932996", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.927055", "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.005504", "end": "2025-12-16 11:54:49.016197", "msg": "", "rc": 0, "start": "2025-12-16 11:54:49.010693", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006603", "end": "2025-12-16 11:54:42.977399", "msg": "", "rc": 0, "start": "2025-12-16 11:54:42.970796", "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.010679", "end": "2025-12-16 11:55:14.583763", "msg": "", "rc": 0, "start": "2025-12-16 11:55:14.573084", "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.011522", "end": "2025-12-16 11:55:14.611454", "msg": "", "rc": 0, "start": "2025-12-16 11:55:14.599932", "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.005948", "end": "2025-12-16 11:55:14.799919", "msg": "", "rc": 0, "start": "2025-12-16 11:55:14.793971", "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.005581", "end": "2025-12-16 11:54:46.176547", "msg": "", "rc": 0, "start": "2025-12-16 11:54:46.170966", "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.005794", "end": "2025-12-16 08:55:15.084613", "msg": "", "rc": 0, "start": "2025-12-16 08:55:15.078819", "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.005126", "end": "2025-12-16 11:54:52.381132", "msg": "", "rc": 0, "start": "2025-12-16 11:54:52.376006", "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.006329", "end": "2025-12-16 11:55:15.259896", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.253567", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019988", "end": "2025-12-16 11:55:16.304154", "msg": "", "rc": 0, "start": "2025-12-16 11:55:16.284166", "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.025119", "end": "2025-12-16 11:55:15.233587", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.208468", "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.004397", "end": "2025-12-16 11:55:15.771062", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.766665", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.004122", "end": "2025-12-16 11:55:15.775339", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.771217", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005110", "end": "2025-12-16 11:55:15.803887", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.798777", "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.005494", "end": "2025-12-16 11:55:15.821467", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.815973", "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.005505", "end": "2025-12-16 11:55:15.831609", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.826104", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004026", "end": "2025-12-16 11:54:50.980911", "msg": "", "rc": 0, "start": "2025-12-16 11:54:50.976885", "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.004669", "end": "2025-12-16 11:54:44.881424", "msg": "", "rc": 0, "start": "2025-12-16 11:54:44.876755", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011291", "end": "2025-12-16 11:55:16.493384", "msg": "", "rc": 0, "start": "2025-12-16 11:55:16.482093", "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.012055", "end": "2025-12-16 11:55:16.511943", "msg": "", "rc": 0, "start": "2025-12-16 11:55:16.499888", "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.005883", "end": "2025-12-16 11:55:16.788854", "msg": "", "rc": 0, "start": "2025-12-16 11:55:16.782971", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004164", "end": "2025-12-16 11:54:48.063202", "msg": "", "rc": 0, "start": "2025-12-16 11:54:48.059038", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005583", "end": "2025-12-16 08:55:16.980324", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 08:55:16.974741", "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.003841", "end": "2025-12-16 11:54:54.289901", "msg": "", "rc": 0, "start": "2025-12-16 11:54:54.286060", "stderr": "", "stderr_lines": [], "stdout": "51.2%", "stdout_lines": ["51.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.006381", "end": "2025-12-16 11:55:17.229449", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.223068", "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.009825", "end": "2025-12-16 11:55:18.245439", "msg": "", "rc": 0, "start": "2025-12-16 11:55:18.235614", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025883", "end": "2025-12-16 11:55:17.181172", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.155289", "stderr": "", "stderr_lines": [], "stdout": "18.9%", "stdout_lines": ["18.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.005336", "end": "2025-12-16 11:55:17.713820", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.708484", "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.005229", "end": "2025-12-16 11:55:17.722492", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.717263", "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.004995", "end": "2025-12-16 11:55:17.733127", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.728132", "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.003281", "end": "2025-12-16 11:55:17.752058", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.748777", "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.006271", "end": "2025-12-16 11:55:17.774887", "msg": "", "rc": 0, "start": "2025-12-16 11:55:17.768616", "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.002447", "end": "2025-12-16 11:54:52.912981", "msg": "", "rc": 0, "start": "2025-12-16 11:54:52.910534", "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.003283", "end": "2025-12-16 11:54:46.824240", "msg": "", "rc": 0, "start": "2025-12-16 11:54:46.820957", "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.011835", "end": "2025-12-16 11:55:18.448605", "msg": "", "rc": 0, "start": "2025-12-16 11:55:18.436770", "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.013339", "end": "2025-12-16 11:55:18.483592", "msg": "", "rc": 0, "start": "2025-12-16 11:55:18.470253", "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.003257", "end": "2025-12-16 11:55:18.674953", "msg": "", "rc": 0, "start": "2025-12-16 11:55:18.671696", "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-16 11:54:49.981392", "msg": "", "rc": 0, "start": "2025-12-16 11:54:49.978352", "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.003013", "end": "2025-12-16 11:54:56.232059", "msg": "", "rc": 0, "start": "2025-12-16 11:54:56.229046", "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.004300", "end": "2025-12-16 08:55:18.948225", "msg": "", "rc": 0, "start": "2025-12-16 08:55:18.943925", "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.002962", "end": "2025-12-16 11:55:19.120679", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.117717", "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.003926", "end": "2025-12-16 11:55:19.183340", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.179414", "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.028679", "end": "2025-12-16 11:55:19.140972", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.112293", "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.004355", "end": "2025-12-16 11:55:19.676739", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.672384", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.003965", "end": "2025-12-16 11:55:19.690423", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.686458", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.005082", "end": "2025-12-16 11:55:19.697803", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.692721", "stderr": "", "stderr_lines": [], "stdout": "0.92", "stdout_lines": ["0.92"]}
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.005079", "end": "2025-12-16 11:55:19.714708", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.709629", "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.005385", "end": "2025-12-16 11:55:19.735257", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.729872", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
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.004644", "end": "2025-12-16 11:54:54.826041", "msg": "", "rc": 0, "start": "2025-12-16 11:54:54.821397", "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.005126", "end": "2025-12-16 11:54:48.751426", "msg": "", "rc": 0, "start": "2025-12-16 11:54:48.746300", "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.010272", "end": "2025-12-16 11:55:20.428103", "msg": "", "rc": 0, "start": "2025-12-16 11:55:20.417831", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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.011156", "end": "2025-12-16 11:55:20.502830", "msg": "", "rc": 0, "start": "2025-12-16 11:55:20.491674", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005515", "end": "2025-12-16 11:55:20.621040", "msg": "", "rc": 0, "start": "2025-12-16 11:55:20.615525", "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.005353", "end": "2025-12-16 11:54:51.918758", "msg": "", "rc": 0, "start": "2025-12-16 11:54:51.913405", "stderr": "", "stderr_lines": [], "stdout": "0.76", "stdout_lines": ["0.76"]}
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.005167", "end": "2025-12-16 11:54:58.232004", "msg": "", "rc": 0, "start": "2025-12-16 11:54:58.226837", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.006060", "end": "2025-12-16 08:55:20.987018", "msg": "", "rc": 0, "start": "2025-12-16 08:55:20.980958", "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.005384", "end": "2025-12-16 11:55:21.063346", "msg": "", "rc": 0, "start": "2025-12-16 11:55:21.057962", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.008168", "end": "2025-12-16 11:55:21.203163", "msg": "", "rc": 0, "start": "2025-12-16 11:55:21.194995", "stderr": "", "stderr_lines": [], "stdout": "1.46", "stdout_lines": ["1.46"]}
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.024009", "end": "2025-12-16 11:55:21.058899", "msg": "", "rc": 0, "start": "2025-12-16 11:55:21.034890", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:11 up 2 days, 1:27, 1 user, load average: 0.22, 0.17, 0.16\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.28\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:11 up 20 days, 22:46, 1 user, load average: 0.51, 0.49, 0.52\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.51\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:11 up 20 days, 23:06, 1 user, load average: 0.74, 0.75, 0.81\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.92\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:11 up 21 days, 19 min, 1 user, load average: 0.54, 0.61, 0.60\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.57\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:11 up 21 days, 1:05, 1 user, load average: 0.00, 0.00, 0.00\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: 11:55:13 up 14 days, 1:21, 1 user, load average: 0.22, 0.14, 0.10\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: 11:55:12 up 193 days, 3:28, 1 user, load average: 0.32, 0.25, 0.26\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.27\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:12 up 193 days, 3:28, 1 user, load average: 0.16, 0.14, 0.15\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.21\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:54:46 up 9 days, 23:44, 0 user, load average: 0.04, 0.06, 0.11\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:54:41 up 16 days, 19:56, 0 user, load average: 0.02, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:12 up 2 days, 1:26, 1 user, load average: 0.05, 0.07, 0.01\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:54:44 up 19 days, 14:49, 0 user, load average: 0.81, 0.59, 0.50\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.76\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:54:50 up 16 days, 1:10, 0 user, load average: 0.48, 0.48, 0.39\nDisk Usage: 75%\nMemory Usage: 51.2%\nCPU Load: 0.55\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 8:55AM up 20 days, 22:45, 1 user, load averages: 0.22, 0.24, 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: 11:55:13 up 2 days, 1:26, 1 user, load average: 0.02, 0.19, 0.15\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55:14 up 13:16, 1 user, load average: 1.15, 1.11, 1.10\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T16:55:22.233788+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `824da87551944871a9713c945180b6de` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:00:00.002971+00:00 |
| **Fin** | 2025-12-16T17:00:23.547953+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: [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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003714", "end": "2025-12-16 12:00:11.659917", "msg": "", "rc": 0, "start": "2025-12-16 12:00:11.656203", "stderr": "", "stderr_lines": [], "stdout": " 12:00:11 up 21 days, 1:10, 1 user, load average: 0.10, 0.06, 0.02", "stdout_lines": [" 12:00:11 up 21 days, 1:10, 1 user, load average: 0.10, 0.06, 0.02"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003910", "end": "2025-12-16 12:00:11.675675", "msg": "", "rc": 0, "start": "2025-12-16 12:00:11.671765", "stderr": "", "stderr_lines": [], "stdout": " 12:00:11 up 20 days, 23:11, 1 user, load average: 1.04, 0.91, 0.86", "stdout_lines": [" 12:00:11 up 20 days, 23:11, 1 user, load average: 1.04, 0.91, 0.86"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002817", "end": "2025-12-16 12:00:11.687146", "msg": "", "rc": 0, "start": "2025-12-16 12:00:11.684329", "stderr": "", "stderr_lines": [], "stdout": " 12:00:11 up 2 days, 1:32, 1 user, load average: 0.18, 0.15, 0.16", "stdout_lines": [" 12:00:11 up 2 days, 1:32, 1 user, load average: 0.18, 0.15, 0.16"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004240", "end": "2025-12-16 12:00:11.678631", "msg": "", "rc": 0, "start": "2025-12-16 12:00:11.674391", "stderr": "", "stderr_lines": [], "stdout": " 12:00:11 up 21 days, 24 min, 1 user, load average: 1.13, 0.67, 0.61", "stdout_lines": [" 12:00:11 up 21 days, 24 min, 1 user, load average: 1.13, 0.67, 0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002785", "end": "2025-12-16 11:59:46.851601", "msg": "", "rc": 0, "start": "2025-12-16 11:59:46.848816", "stderr": "", "stderr_lines": [], "stdout": " 11:59:46 up 9 days, 23:49, 0 user, load average: 0.49, 0.31, 0.18", "stdout_lines": [" 11:59:46 up 9 days, 23:49, 0 user, load average: 0.49, 0.31, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008597", "end": "2025-12-16 12:00:12.371505", "msg": "", "rc": 0, "start": "2025-12-16 12:00:12.362908", "stderr": "", "stderr_lines": [], "stdout": " 12:00:12 up 193 days, 3:33, 1 user, load average: 0.10, 0.12, 0.13", "stdout_lines": [" 12:00:12 up 193 days, 3:33, 1 user, load average: 0.10, 0.12, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009501", "end": "2025-12-16 12:00:12.402996", "msg": "", "rc": 0, "start": "2025-12-16 12:00:12.393495", "stderr": "", "stderr_lines": [], "stdout": " 12:00:12 up 193 days, 3:33, 1 user, load average: 0.28, 0.21, 0.23", "stdout_lines": [" 12:00:12 up 193 days, 3:33, 1 user, load average: 0.28, 0.21, 0.23"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003673", "end": "2025-12-16 12:00:12.645166", "msg": "", "rc": 0, "start": "2025-12-16 12:00:11.641493", "stderr": "", "stderr_lines": [], "stdout": " 12:00:11 up 20 days, 22:51, 1 user, load average: 0.82, 0.65, 0.58", "stdout_lines": [" 12:00:11 up 20 days, 22:51, 1 user, load average: 0.82, 0.65, 0.58"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003601", "end": "2025-12-16 11:59:41.218226", "msg": "", "rc": 0, "start": "2025-12-16 11:59:41.214625", "stderr": "", "stderr_lines": [], "stdout": " 11:59:41 up 16 days, 20:01, 0 user, load average: 0.05, 0.04, 0.00", "stdout_lines": [" 11:59:41 up 16 days, 20:01, 0 user, load average: 0.05, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004709", "end": "2025-12-16 12:00:12.896849", "msg": "", "rc": 0, "start": "2025-12-16 12:00:12.892140", "stderr": "", "stderr_lines": [], "stdout": " 12:00:12 up 2 days, 1:31, 1 user, load average: 0.09, 0.06, 0.01", "stdout_lines": [" 12:00:12 up 2 days, 1:31, 1 user, load average: 0.09, 0.06, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003840", "end": "2025-12-16 11:59:44.174469", "msg": "", "rc": 0, "start": "2025-12-16 11:59:44.170629", "stderr": "", "stderr_lines": [], "stdout": " 11:59:44 up 19 days, 14:54, 0 user, load average: 0.47, 0.51, 0.48", "stdout_lines": [" 11:59:44 up 19 days, 14:54, 0 user, load average: 0.47, 0.51, 0.48"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002878", "end": "2025-12-16 11:59:50.373297", "msg": "", "rc": 0, "start": "2025-12-16 11:59:50.370419", "stderr": "", "stderr_lines": [], "stdout": " 11:59:50 up 16 days, 1:15, 0 user, load average: 0.25, 0.31, 0.33", "stdout_lines": [" 11:59:50 up 16 days, 1:15, 0 user, load average: 0.25, 0.31, 0.33"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004988", "end": "2025-12-16 09:00:13.166723", "msg": "", "rc": 0, "start": "2025-12-16 09:00:13.161735", "stderr": "", "stderr_lines": [], "stdout": " 9:00AM up 20 days, 22:50, 1 user, load averages: 0.37, 0.22, 0.18", "stdout_lines": [" 9:00AM up 20 days, 22:50, 1 user, load averages: 0.37, 0.22, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019594", "end": "2025-12-16 12:00:13.054255", "msg": "", "rc": 0, "start": "2025-12-16 12:00:13.034661", "stderr": "", "stderr_lines": [], "stdout": " 12:00:13 up 14 days, 1:26, 1 user, load average: 0.23, 0.15, 0.10", "stdout_lines": [" 12:00:13 up 14 days, 1:26, 1 user, load average: 0.23, 0.15, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007807", "end": "2025-12-16 12:00:13.551874", "msg": "", "rc": 0, "start": "2025-12-16 12:00:13.544067", "stderr": "", "stderr_lines": [], "stdout": " 12:00:13 up 13:21, 1 user, load average: 1.12, 1.14, 1.11", "stdout_lines": [" 12:00:13 up 13:21, 1 user, load average: 1.12, 1.14, 1.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004859", "end": "2025-12-16 12:00:14.342761", "msg": "", "rc": 0, "start": "2025-12-16 12:00:13.337902", "stderr": "", "stderr_lines": [], "stdout": " 12:00:13 up 2 days, 1:31, 1 user, load average: 0.04, 0.09, 0.11", "stdout_lines": [" 12:00:13 up 2 days, 1:31, 1 user, load average: 0.04, 0.09, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004555", "end": "2025-12-16 12:00:14.776550", "msg": "", "rc": 0, "start": "2025-12-16 12:00:14.771995", "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.004082", "end": "2025-12-16 12:00:14.795487", "msg": "", "rc": 0, "start": "2025-12-16 12:00:14.791405", "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.004619", "end": "2025-12-16 12:00:14.815429", "msg": "", "rc": 0, "start": "2025-12-16 12:00:14.810810", "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.004328", "end": "2025-12-16 12:00:14.835413", "msg": "", "rc": 0, "start": "2025-12-16 12:00:14.831085", "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.006258", "end": "2025-12-16 12:00:14.853968", "msg": "", "rc": 0, "start": "2025-12-16 12:00:14.847710", "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.005814", "end": "2025-12-16 11:59:49.975824", "msg": "", "rc": 0, "start": "2025-12-16 11:59:49.970010", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005923", "end": "2025-12-16 11:59:43.902861", "msg": "", "rc": 0, "start": "2025-12-16 11:59:43.896938", "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.010585", "end": "2025-12-16 12:00:15.579853", "msg": "", "rc": 0, "start": "2025-12-16 12:00:15.569268", "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.011914", "end": "2025-12-16 12:00:15.617068", "msg": "", "rc": 0, "start": "2025-12-16 12:00:15.605154", "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.005684", "end": "2025-12-16 12:00:15.785958", "msg": "", "rc": 0, "start": "2025-12-16 12:00:15.780274", "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.005349", "end": "2025-12-16 11:59:47.110633", "msg": "", "rc": 0, "start": "2025-12-16 11:59:47.105284", "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.004916", "end": "2025-12-16 11:59:53.366324", "msg": "", "rc": 0, "start": "2025-12-16 11:59:53.361408", "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.005600", "end": "2025-12-16 09:00:16.097357", "msg": "", "rc": 0, "start": "2025-12-16 09:00:16.091757", "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.005308", "end": "2025-12-16 12:00:16.221621", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.216313", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.022363", "end": "2025-12-16 12:00:16.631494", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.609131", "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.025227", "end": "2025-12-16 12:00:16.257702", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.232475", "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.004384", "end": "2025-12-16 12:00:16.795593", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.791209", "stderr": "", "stderr_lines": [], "stdout": "87.8%", "stdout_lines": ["87.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.004301", "end": "2025-12-16 12:00:16.821483", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.817182", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005147", "end": "2025-12-16 12:00:16.836218", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.831071", "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.004559", "end": "2025-12-16 12:00:16.850862", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.846303", "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.005890", "end": "2025-12-16 12:00:16.884068", "msg": "", "rc": 0, "start": "2025-12-16 12:00:16.878178", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.004070", "end": "2025-12-16 11:59:52.008513", "msg": "", "rc": 0, "start": "2025-12-16 11:59:52.004443", "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.004733", "end": "2025-12-16 11:59:45.917272", "msg": "", "rc": 0, "start": "2025-12-16 11:59:45.912539", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011115", "end": "2025-12-16 12:00:17.524443", "msg": "", "rc": 0, "start": "2025-12-16 12:00:17.513328", "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.011973", "end": "2025-12-16 12:00:17.536585", "msg": "", "rc": 0, "start": "2025-12-16 12:00:17.524612", "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.006012", "end": "2025-12-16 12:00:17.832173", "msg": "", "rc": 0, "start": "2025-12-16 12:00:17.826161", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.003929", "end": "2025-12-16 11:59:49.115994", "msg": "", "rc": 0, "start": "2025-12-16 11:59:49.112065", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005531", "end": "2025-12-16 09:00:18.040639", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:00:18.035108", "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.003433", "end": "2025-12-16 11:59:55.355897", "msg": "", "rc": 0, "start": "2025-12-16 11:59:55.352464", "stderr": "", "stderr_lines": [], "stdout": "49.9%", "stdout_lines": ["49.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.006779", "end": "2025-12-16 12:00:18.283970", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.277191", "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.010248", "end": "2025-12-16 12:00:18.677479", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.667231", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025743", "end": "2025-12-16 12:00:18.205655", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.179912", "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.005074", "end": "2025-12-16 12:00:18.746598", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.741524", "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.004840", "end": "2025-12-16 12:00:18.749538", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.744698", "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.005632", "end": "2025-12-16 12:00:18.762047", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.756415", "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.002929", "end": "2025-12-16 12:00:18.795883", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.792954", "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.006317", "end": "2025-12-16 12:00:18.813084", "msg": "", "rc": 0, "start": "2025-12-16 12:00:18.806767", "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.002742", "end": "2025-12-16 11:59:53.936575", "msg": "", "rc": 0, "start": "2025-12-16 11:59:53.933833", "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.003216", "end": "2025-12-16 11:59:47.825590", "msg": "", "rc": 0, "start": "2025-12-16 11:59:47.822374", "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.011722", "end": "2025-12-16 12:00:19.440747", "msg": "", "rc": 0, "start": "2025-12-16 12:00:19.429025", "stderr": "", "stderr_lines": [], "stdout": "33.6°C", "stdout_lines": ["33.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.012937", "end": "2025-12-16 12:00:19.472230", "msg": "", "rc": 0, "start": "2025-12-16 12:00:19.459293", "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.003204", "end": "2025-12-16 12:00:19.736150", "msg": "", "rc": 0, "start": "2025-12-16 12:00:19.732946", "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.002929", "end": "2025-12-16 11:59:51.000990", "msg": "", "rc": 0, "start": "2025-12-16 11:59:50.998061", "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.002805", "end": "2025-12-16 11:59:57.215419", "msg": "", "rc": 0, "start": "2025-12-16 11:59:57.212614", "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.004260", "end": "2025-12-16 09:00:19.958101", "msg": "", "rc": 0, "start": "2025-12-16 09:00:19.953841", "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.004403", "end": "2025-12-16 12:00:20.607325", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.602922", "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.002918", "end": "2025-12-16 12:00:20.185020", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.182102", "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.028666", "end": "2025-12-16 12:00:20.142666", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.114000", "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.004179", "end": "2025-12-16 12:00:20.670829", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.666650", "stderr": "", "stderr_lines": [], "stdout": "0.85", "stdout_lines": ["0.85"]}
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.003963", "end": "2025-12-16 12:00:20.684979", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.681016", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.004505", "end": "2025-12-16 12:00:20.684598", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.680093", "stderr": "", "stderr_lines": [], "stdout": "0.96", "stdout_lines": ["0.96"]}
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.005108", "end": "2025-12-16 12:00:20.711888", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.706780", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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-16 12:00:20.721353", "msg": "", "rc": 0, "start": "2025-12-16 12:00:20.715828", "stderr": "", "stderr_lines": [], "stdout": "1.10", "stdout_lines": ["1.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.005325", "end": "2025-12-16 11:59:55.888832", "msg": "", "rc": 0, "start": "2025-12-16 11:59:55.883507", "stderr": "", "stderr_lines": [], "stdout": "0.66", "stdout_lines": ["0.66"]}
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.004855", "end": "2025-12-16 11:59:49.773876", "msg": "", "rc": 0, "start": "2025-12-16 11:59:49.769021", "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.010143", "end": "2025-12-16 12:00:21.468510", "msg": "", "rc": 0, "start": "2025-12-16 12:00:21.458367", "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.011236", "end": "2025-12-16 12:00:21.487906", "msg": "", "rc": 0, "start": "2025-12-16 12:00:21.476670", "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.005548", "end": "2025-12-16 12:00:21.732126", "msg": "", "rc": 0, "start": "2025-12-16 12:00:21.726578", "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.005077", "end": "2025-12-16 11:59:52.983767", "msg": "", "rc": 0, "start": "2025-12-16 11:59:52.978690", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.006040", "end": "2025-12-16 09:00:21.970174", "msg": "", "rc": 0, "start": "2025-12-16 09:00:21.964134", "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.004746", "end": "2025-12-16 11:59:59.357792", "msg": "", "rc": 0, "start": "2025-12-16 11:59:59.353046", "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.007861", "end": "2025-12-16 12:00:22.662246", "msg": "", "rc": 0, "start": "2025-12-16 12:00:22.654385", "stderr": "", "stderr_lines": [], "stdout": "1.11", "stdout_lines": ["1.11"]}
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-16 12:00:22.161819", "msg": "", "rc": 0, "start": "2025-12-16 12:00:22.156476", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.024282", "end": "2025-12-16 12:00:22.084214", "msg": "", "rc": 0, "start": "2025-12-16 12:00:22.059932", "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: 12:00:11 up 2 days, 1:32, 1 user, load average: 0.18, 0.15, 0.16\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.25\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:11 up 20 days, 22:51, 1 user, load average: 0.82, 0.65, 0.58\nDisk Usage: 23%\nMemory Usage: 87.8%\nCPU Load: 0.85\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:11 up 20 days, 23:11, 1 user, load average: 1.04, 0.91, 0.86\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.96\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:11 up 21 days, 24 min, 1 user, load average: 1.13, 0.67, 0.61\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 1.10\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:11 up 21 days, 1:10, 1 user, load average: 0.10, 0.06, 0.02\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:13 up 14 days, 1:26, 1 user, load average: 0.23, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.28\nCPU Temp: 36.9°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:12 up 193 days, 3:33, 1 user, load average: 0.28, 0.21, 0.23\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.32\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:12 up 193 days, 3:33, 1 user, load average: 0.10, 0.12, 0.13\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.08\nCPU Temp: 33.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:59:46 up 9 days, 23:49, 0 user, load average: 0.49, 0.31, 0.18\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.66\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:59:41 up 16 days, 20:01, 0 user, load average: 0.05, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:12 up 2 days, 1:31, 1 user, load average: 0.09, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:59:44 up 19 days, 14:54, 0 user, load average: 0.47, 0.51, 0.48\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.47\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:59:50 up 16 days, 1:15, 0 user, load average: 0.25, 0.31, 0.33\nDisk Usage: 75%\nMemory Usage: 49.9%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:00AM up 20 days, 22:50, 1 user, load averages: 0.37, 0.22, 0.18\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: 12:00:13 up 2 days, 1:31, 1 user, load average: 0.04, 0.09, 0.11\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00:13 up 13:21, 1 user, load average: 1.12, 1.14, 1.11\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.11\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-16T17:00:23.588865+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `355d32595d3d482196540f010fd9e186` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:05:00.003987+00:00 |
| **Fin** | 2025-12-16T17:05:22.696293+00:00 |
| **Durée** | 22.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: [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.003090", "end": "2025-12-16 12:05:11.900302", "msg": "", "rc": 0, "start": "2025-12-16 12:05:11.897212", "stderr": "", "stderr_lines": [], "stdout": " 12:05:11 up 20 days, 22:56, 1 user, load average: 0.69, 0.62, 0.58", "stdout_lines": [" 12:05:11 up 20 days, 22:56, 1 user, load average: 0.69, 0.62, 0.58"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003782", "end": "2025-12-16 12:05:11.912514", "msg": "", "rc": 0, "start": "2025-12-16 12:05:11.908732", "stderr": "", "stderr_lines": [], "stdout": " 12:05:11 up 20 days, 23:16, 1 user, load average: 0.55, 0.84, 0.86", "stdout_lines": [" 12:05:11 up 20 days, 23:16, 1 user, load average: 0.55, 0.84, 0.86"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003826", "end": "2025-12-16 12:05:11.917580", "msg": "", "rc": 0, "start": "2025-12-16 12:05:11.913754", "stderr": "", "stderr_lines": [], "stdout": " 12:05:11 up 21 days, 1:15, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 12:05:11 up 21 days, 1:15, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003811", "end": "2025-12-16 12:05:11.935740", "msg": "", "rc": 0, "start": "2025-12-16 12:05:11.931929", "stderr": "", "stderr_lines": [], "stdout": " 12:05:11 up 21 days, 29 min, 1 user, load average: 0.76, 0.69, 0.64", "stdout_lines": [" 12:05:11 up 21 days, 29 min, 1 user, load average: 0.76, 0.69, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003259", "end": "2025-12-16 12:05:11.945392", "msg": "", "rc": 0, "start": "2025-12-16 12:05:11.942133", "stderr": "", "stderr_lines": [], "stdout": " 12:05:11 up 2 days, 1:37, 1 user, load average: 0.25, 0.19, 0.17", "stdout_lines": [" 12:05:11 up 2 days, 1:37, 1 user, load average: 0.25, 0.19, 0.17"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002703", "end": "2025-12-16 12:04:47.042433", "msg": "", "rc": 0, "start": "2025-12-16 12:04:47.039730", "stderr": "", "stderr_lines": [], "stdout": " 12:04:47 up 9 days, 23:54, 0 user, load average: 0.10, 0.32, 0.24", "stdout_lines": [" 12:04:47 up 9 days, 23:54, 0 user, load average: 0.10, 0.32, 0.24"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004140", "end": "2025-12-16 12:04:40.977146", "msg": "", "rc": 0, "start": "2025-12-16 12:04:40.973006", "stderr": "", "stderr_lines": [], "stdout": " 12:04:40 up 16 days, 20:06, 0 user, load average: 0.10, 0.06, 0.01", "stdout_lines": [" 12:04:40 up 16 days, 20:06, 0 user, load average: 0.10, 0.06, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009297", "end": "2025-12-16 12:05:12.585375", "msg": "", "rc": 0, "start": "2025-12-16 12:05:12.576078", "stderr": "", "stderr_lines": [], "stdout": " 12:05:12 up 193 days, 3:38, 1 user, load average: 0.22, 0.14, 0.12", "stdout_lines": [" 12:05:12 up 193 days, 3:38, 1 user, load average: 0.22, 0.14, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009326", "end": "2025-12-16 12:05:12.630823", "msg": "", "rc": 0, "start": "2025-12-16 12:05:12.621497", "stderr": "", "stderr_lines": [], "stdout": " 12:05:12 up 193 days, 3:38, 1 user, load average: 0.39, 0.23, 0.22", "stdout_lines": [" 12:05:12 up 193 days, 3:38, 1 user, load average: 0.39, 0.23, 0.22"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004736", "end": "2025-12-16 12:05:12.827382", "msg": "", "rc": 0, "start": "2025-12-16 12:05:12.822646", "stderr": "", "stderr_lines": [], "stdout": " 12:05:12 up 2 days, 1:36, 1 user, load average: 0.45, 0.18, 0.05", "stdout_lines": [" 12:05:12 up 2 days, 1:36, 1 user, load average: 0.45, 0.18, 0.05"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003312", "end": "2025-12-16 12:04:44.137028", "msg": "", "rc": 0, "start": "2025-12-16 12:04:44.133716", "stderr": "", "stderr_lines": [], "stdout": " 12:04:44 up 19 days, 14:59, 0 user, load average: 0.34, 0.54, 0.52", "stdout_lines": [" 12:04:44 up 19 days, 14:59, 0 user, load average: 0.34, 0.54, 0.52"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002697", "end": "2025-12-16 12:04:50.372655", "msg": "", "rc": 0, "start": "2025-12-16 12:04:50.369958", "stderr": "", "stderr_lines": [], "stdout": " 12:04:50 up 16 days, 1:20, 0 user, load average: 0.53, 0.52, 0.42", "stdout_lines": [" 12:04:50 up 16 days, 1:20, 0 user, load average: 0.53, 0.52, 0.42"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004232", "end": "2025-12-16 09:05:13.104502", "msg": "", "rc": 0, "start": "2025-12-16 09:05:13.100270", "stderr": "", "stderr_lines": [], "stdout": " 9:05AM up 20 days, 22:55, 1 user, load averages: 0.17, 0.19, 0.17", "stdout_lines": [" 9:05AM up 20 days, 22:55, 1 user, load averages: 0.17, 0.19, 0.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003682", "end": "2025-12-16 12:05:13.268607", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.264925", "stderr": "", "stderr_lines": [], "stdout": " 12:05:13 up 2 days, 1:36, 1 user, load average: 0.00, 0.03, 0.07", "stdout_lines": [" 12:05:13 up 2 days, 1:36, 1 user, load average: 0.00, 0.03, 0.07"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007607", "end": "2025-12-16 12:05:13.881408", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.873801", "stderr": "", "stderr_lines": [], "stdout": " 12:05:13 up 13:26, 1 user, load average: 1.62, 1.25, 1.14", "stdout_lines": [" 12:05:13 up 13:26, 1 user, load average: 1.62, 1.25, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019638", "end": "2025-12-16 12:05:13.281573", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.261935", "stderr": "", "stderr_lines": [], "stdout": " 12:05:13 up 14 days, 1:31, 1 user, load average: 0.23, 0.17, 0.11", "stdout_lines": [" 12:05:13 up 14 days, 1:31, 1 user, load average: 0.23, 0.17, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004381", "end": "2025-12-16 12:05:13.808148", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.803767", "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-16 12:05:13.820490", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.816193", "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.004924", "end": "2025-12-16 12:05:13.829196", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.824272", "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.004418", "end": "2025-12-16 12:05:13.862171", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.857753", "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.005511", "end": "2025-12-16 12:05:13.874557", "msg": "", "rc": 0, "start": "2025-12-16 12:05:13.869046", "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.005645", "end": "2025-12-16 12:04:48.979503", "msg": "", "rc": 0, "start": "2025-12-16 12:04:48.973858", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005419", "end": "2025-12-16 12:04:42.890541", "msg": "", "rc": 0, "start": "2025-12-16 12:04:42.885122", "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.010698", "end": "2025-12-16 12:05:14.542530", "msg": "", "rc": 0, "start": "2025-12-16 12:05:14.531832", "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.011791", "end": "2025-12-16 12:05:14.595837", "msg": "", "rc": 0, "start": "2025-12-16 12:05:14.584046", "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.006094", "end": "2025-12-16 12:05:14.787522", "msg": "", "rc": 0, "start": "2025-12-16 12:05:14.781428", "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.004937", "end": "2025-12-16 12:04:46.073852", "msg": "", "rc": 0, "start": "2025-12-16 12:04:46.068915", "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.004896", "end": "2025-12-16 12:04:52.333608", "msg": "", "rc": 0, "start": "2025-12-16 12:04:52.328712", "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.005611", "end": "2025-12-16 09:05:15.057021", "msg": "", "rc": 0, "start": "2025-12-16 09:05:15.051410", "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.005489", "end": "2025-12-16 12:05:15.225118", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.219629", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019127", "end": "2025-12-16 12:05:15.874618", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.855491", "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.025039", "end": "2025-12-16 12:05:15.204140", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.179101", "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.004590", "end": "2025-12-16 12:05:15.735499", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.730909", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.004144", "end": "2025-12-16 12:05:15.738255", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.734111", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004655", "end": "2025-12-16 12:05:15.741127", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.736472", "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.005201", "end": "2025-12-16 12:05:15.775027", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.769826", "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.005976", "end": "2025-12-16 12:05:15.804052", "msg": "", "rc": 0, "start": "2025-12-16 12:05:15.798076", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.003425", "end": "2025-12-16 12:04:50.898081", "msg": "", "rc": 0, "start": "2025-12-16 12:04:50.894656", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.005312", "end": "2025-12-16 12:04:44.843099", "msg": "", "rc": 0, "start": "2025-12-16 12:04:44.837787", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011064", "end": "2025-12-16 12:05:16.427631", "msg": "", "rc": 0, "start": "2025-12-16 12:05:16.416567", "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.012085", "end": "2025-12-16 12:05:16.475005", "msg": "", "rc": 0, "start": "2025-12-16 12:05:16.462920", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005821", "end": "2025-12-16 12:05:16.697084", "msg": "", "rc": 0, "start": "2025-12-16 12:05:16.691263", "stderr": "", "stderr_lines": [], "stdout": "35.0%", "stdout_lines": ["35.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.006790", "end": "2025-12-16 12:04:48.030680", "msg": "", "rc": 0, "start": "2025-12-16 12:04:48.023890", "stderr": "", "stderr_lines": [], "stdout": "26.7%", "stdout_lines": ["26.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.003781", "end": "2025-12-16 12:04:54.205707", "msg": "", "rc": 0, "start": "2025-12-16 12:04:54.201926", "stderr": "", "stderr_lines": [], "stdout": "50.9%", "stdout_lines": ["50.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.005619", "end": "2025-12-16 09:05:16.935143", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:05:16.929524", "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.005394", "end": "2025-12-16 12:05:17.112749", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.107355", "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.009400", "end": "2025-12-16 12:05:17.930485", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.921085", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.026000", "end": "2025-12-16 12:05:17.114604", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.088604", "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.005767", "end": "2025-12-16 12:05:17.650603", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.644836", "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.004846", "end": "2025-12-16 12:05:17.662100", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.657254", "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.005842", "end": "2025-12-16 12:05:17.658847", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.653005", "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.002646", "end": "2025-12-16 12:05:17.683792", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.681146", "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.007298", "end": "2025-12-16 12:05:17.711285", "msg": "", "rc": 0, "start": "2025-12-16 12:05:17.703987", "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.003079", "end": "2025-12-16 12:04:52.828509", "msg": "", "rc": 0, "start": "2025-12-16 12:04:52.825430", "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.005984", "end": "2025-12-16 12:04:46.760760", "msg": "", "rc": 0, "start": "2025-12-16 12:04:46.754776", "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.011924", "end": "2025-12-16 12:05:18.327855", "msg": "", "rc": 0, "start": "2025-12-16 12:05:18.315931", "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.013078", "end": "2025-12-16 12:05:18.364776", "msg": "", "rc": 0, "start": "2025-12-16 12:05:18.351698", "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.003370", "end": "2025-12-16 12:05:18.603398", "msg": "", "rc": 0, "start": "2025-12-16 12:05:18.600028", "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.002599", "end": "2025-12-16 12:04:56.101681", "msg": "", "rc": 0, "start": "2025-12-16 12:04:56.099082", "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.004445", "end": "2025-12-16 09:05:18.826567", "msg": "", "rc": 0, "start": "2025-12-16 09:05:18.822122", "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.003062", "end": "2025-12-16 12:04:49.954766", "msg": "", "rc": 0, "start": "2025-12-16 12:04:49.951704", "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.003092", "end": "2025-12-16 12:05:19.027239", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.024147", "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.005298", "end": "2025-12-16 12:05:19.877260", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.871962", "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.028308", "end": "2025-12-16 12:05:19.037808", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.009500", "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.004267", "end": "2025-12-16 12:05:19.545908", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.541641", "stderr": "", "stderr_lines": [], "stdout": "0.74", "stdout_lines": ["0.74"]}
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.004727", "end": "2025-12-16 12:05:19.563564", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.558837", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.003973", "end": "2025-12-16 12:05:19.587108", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.583135", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.004595", "end": "2025-12-16 12:05:19.606695", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.602100", "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.005252", "end": "2025-12-16 12:05:19.617972", "msg": "", "rc": 0, "start": "2025-12-16 12:05:19.612720", "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.004080", "end": "2025-12-16 12:04:54.715124", "msg": "", "rc": 0, "start": "2025-12-16 12:04:54.711044", "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.005051", "end": "2025-12-16 12:04:48.624311", "msg": "", "rc": 0, "start": "2025-12-16 12:04:48.619260", "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.010149", "end": "2025-12-16 12:05:20.342857", "msg": "", "rc": 0, "start": "2025-12-16 12:05:20.332708", "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.011240", "end": "2025-12-16 12:05:20.361120", "msg": "", "rc": 0, "start": "2025-12-16 12:05:20.349880", "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.005532", "end": "2025-12-16 12:05:20.535284", "msg": "", "rc": 0, "start": "2025-12-16 12:05:20.529752", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.004824", "end": "2025-12-16 12:04:51.805697", "msg": "", "rc": 0, "start": "2025-12-16 12:04:51.800873", "stderr": "", "stderr_lines": [], "stdout": "0.44", "stdout_lines": ["0.44"]}
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.005971", "end": "2025-12-16 09:05:20.821675", "msg": "", "rc": 0, "start": "2025-12-16 09:05:20.815704", "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.004285", "end": "2025-12-16 12:04:58.126517", "msg": "", "rc": 0, "start": "2025-12-16 12:04:58.122232", "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.005191", "end": "2025-12-16 12:05:20.965849", "msg": "", "rc": 0, "start": "2025-12-16 12:05:20.960658", "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.008076", "end": "2025-12-16 12:05:21.829401", "msg": "", "rc": 0, "start": "2025-12-16 12:05:21.821325", "stderr": "", "stderr_lines": [], "stdout": "1.89", "stdout_lines": ["1.89"]}
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.023871", "end": "2025-12-16 12:05:20.931178", "msg": "", "rc": 0, "start": "2025-12-16 12:05:20.907307", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:11 up 2 days, 1:37, 1 user, load average: 0.25, 0.19, 0.17\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.23\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:11 up 20 days, 22:56, 1 user, load average: 0.69, 0.62, 0.58\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.74\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:11 up 20 days, 23:16, 1 user, load average: 0.55, 0.84, 0.86\nDisk Usage: 14%\nMemory Usage: 48.8%\nCPU Load: 0.50\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:11 up 21 days, 29 min, 1 user, load average: 0.76, 0.69, 0.64\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.78\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:11 up 21 days, 1:15, 1 user, load average: 0.00, 0.02, 0.00\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: 12:05:13 up 14 days, 1:31, 1 user, load average: 0.23, 0.17, 0.11\nDisk Usage: 21%\nMemory Usage: 19.0%\nCPU Load: 0.27\nCPU Temp: 36.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:12 up 193 days, 3:38, 1 user, load average: 0.39, 0.23, 0.22\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.48\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:12 up 193 days, 3:38, 1 user, load average: 0.22, 0.14, 0.12\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.27\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:04:47 up 9 days, 23:54, 0 user, load average: 0.10, 0.32, 0.24\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:04:40 up 16 days, 20:06, 0 user, load average: 0.10, 0.06, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:12 up 2 days, 1:36, 1 user, load average: 0.45, 0.18, 0.05\nDisk Usage: 1%\nMemory Usage: 35.0%\nCPU Load: 0.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:04:44 up 19 days, 14:59, 0 user, load average: 0.34, 0.54, 0.52\nDisk Usage: 28%\nMemory Usage: 26.7%\nCPU Load: 0.44\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:04:50 up 16 days, 1:20, 0 user, load average: 0.53, 0.52, 0.42\nDisk Usage: 75%\nMemory Usage: 50.9%\nCPU Load: 0.61\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:05AM up 20 days, 22:55, 1 user, load averages: 0.17, 0.19, 0.17\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: 12:05:13 up 2 days, 1:36, 1 user, load average: 0.00, 0.03, 0.07\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05:13 up 13:26, 1 user, load average: 1.62, 1.25, 1.14\nDisk Usage: 1%\nMemory Usage: 20.2%\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-16T17:05:22.734540+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `bde9f19130a542e1b0ff50d0b30fe39e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:10:00.002023+00:00 |
| **Fin** | 2025-12-16T17:10:21.797095+00:00 |
| **Durée** | 21.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: [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: [hp3.i5.home]
ok: [ali2v.xeon.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: [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.003178", "end": "2025-12-16 12:10:11.594805", "msg": "", "rc": 0, "start": "2025-12-16 12:10:11.591627", "stderr": "", "stderr_lines": [], "stdout": " 12:10:11 up 20 days, 23:01, 1 user, load average: 0.60, 0.57, 0.56", "stdout_lines": [" 12:10:11 up 20 days, 23:01, 1 user, load average: 0.60, 0.57, 0.56"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003529", "end": "2025-12-16 12:10:11.608295", "msg": "", "rc": 0, "start": "2025-12-16 12:10:11.604766", "stderr": "", "stderr_lines": [], "stdout": " 12:10:11 up 21 days, 1:20, 1 user, load average: 0.03, 0.03, 0.00", "stdout_lines": [" 12:10:11 up 21 days, 1:20, 1 user, load average: 0.03, 0.03, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003368", "end": "2025-12-16 12:10:11.612404", "msg": "", "rc": 0, "start": "2025-12-16 12:10:11.609036", "stderr": "", "stderr_lines": [], "stdout": " 12:10:11 up 20 days, 23:21, 1 user, load average: 0.68, 0.65, 0.76", "stdout_lines": [" 12:10:11 up 20 days, 23:21, 1 user, load average: 0.68, 0.65, 0.76"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004076", "end": "2025-12-16 12:10:11.626723", "msg": "", "rc": 0, "start": "2025-12-16 12:10:11.622647", "stderr": "", "stderr_lines": [], "stdout": " 12:10:11 up 21 days, 34 min, 1 user, load average: 0.36, 0.52, 0.58", "stdout_lines": [" 12:10:11 up 21 days, 34 min, 1 user, load average: 0.36, 0.52, 0.58"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002848", "end": "2025-12-16 12:10:11.634994", "msg": "", "rc": 0, "start": "2025-12-16 12:10:11.632146", "stderr": "", "stderr_lines": [], "stdout": " 12:10:11 up 2 days, 1:42, 1 user, load average: 0.33, 0.17, 0.16", "stdout_lines": [" 12:10:11 up 2 days, 1:42, 1 user, load average: 0.33, 0.17, 0.16"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003133", "end": "2025-12-16 12:09:46.777259", "msg": "", "rc": 0, "start": "2025-12-16 12:09:46.774126", "stderr": "", "stderr_lines": [], "stdout": " 12:09:46 up 9 days, 23:59, 0 user, load average: 0.03, 0.16, 0.18", "stdout_lines": [" 12:09:46 up 9 days, 23:59, 0 user, load average: 0.03, 0.16, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003259", "end": "2025-12-16 12:09:40.667023", "msg": "", "rc": 0, "start": "2025-12-16 12:09:40.663764", "stderr": "", "stderr_lines": [], "stdout": " 12:09:40 up 16 days, 20:11, 0 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 12:09:40 up 16 days, 20:11, 0 user, load average: 0.01, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008599", "end": "2025-12-16 12:10:12.298032", "msg": "", "rc": 0, "start": "2025-12-16 12:10:12.289433", "stderr": "", "stderr_lines": [], "stdout": " 12:10:12 up 193 days, 3:43, 1 user, load average: 0.31, 0.25, 0.17", "stdout_lines": [" 12:10:12 up 193 days, 3:43, 1 user, load average: 0.31, 0.25, 0.17"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009737", "end": "2025-12-16 12:10:12.341916", "msg": "", "rc": 0, "start": "2025-12-16 12:10:12.332179", "stderr": "", "stderr_lines": [], "stdout": " 12:10:12 up 193 days, 3:43, 1 user, load average: 0.26, 0.20, 0.19", "stdout_lines": [" 12:10:12 up 193 days, 3:43, 1 user, load average: 0.26, 0.20, 0.19"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004682", "end": "2025-12-16 12:10:12.575480", "msg": "", "rc": 0, "start": "2025-12-16 12:10:12.570798", "stderr": "", "stderr_lines": [], "stdout": " 12:10:12 up 2 days, 1:41, 1 user, load average: 0.01, 0.08, 0.03", "stdout_lines": [" 12:10:12 up 2 days, 1:41, 1 user, load average: 0.01, 0.08, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003272", "end": "2025-12-16 12:09:43.831234", "msg": "", "rc": 0, "start": "2025-12-16 12:09:43.827962", "stderr": "", "stderr_lines": [], "stdout": " 12:09:43 up 19 days, 15:04, 0 user, load average: 0.30, 0.44, 0.49", "stdout_lines": [" 12:09:43 up 19 days, 15:04, 0 user, load average: 0.30, 0.44, 0.49"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002666", "end": "2025-12-16 12:09:50.063054", "msg": "", "rc": 0, "start": "2025-12-16 12:09:50.060388", "stderr": "", "stderr_lines": [], "stdout": " 12:09:50 up 16 days, 1:25, 0 user, load average: 0.31, 0.47, 0.43", "stdout_lines": [" 12:09:50 up 16 days, 1:25, 0 user, load average: 0.31, 0.47, 0.43"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004371", "end": "2025-12-16 09:10:12.803435", "msg": "", "rc": 0, "start": "2025-12-16 09:10:12.799064", "stderr": "", "stderr_lines": [], "stdout": " 9:10AM up 20 days, 23 hrs, 1 user, load averages: 0.12, 0.17, 0.16", "stdout_lines": [" 9:10AM up 20 days, 23 hrs, 1 user, load averages: 0.12, 0.17, 0.16"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003799", "end": "2025-12-16 12:10:13.021646", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.017847", "stderr": "", "stderr_lines": [], "stdout": " 12:10:13 up 2 days, 1:41, 1 user, load average: 0.07, 0.02, 0.05", "stdout_lines": [" 12:10:13 up 2 days, 1:41, 1 user, load average: 0.07, 0.02, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009138", "end": "2025-12-16 12:10:13.921097", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.911959", "stderr": "", "stderr_lines": [], "stdout": " 12:10:13 up 13:32, 1 user, load average: 1.25, 1.20, 1.15", "stdout_lines": [" 12:10:13 up 13:32, 1 user, load average: 1.25, 1.20, 1.15"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019282", "end": "2025-12-16 12:10:12.987333", "msg": "", "rc": 0, "start": "2025-12-16 12:10:12.968051", "stderr": "", "stderr_lines": [], "stdout": " 12:10:12 up 14 days, 1:36, 1 user, load average: 0.18, 0.14, 0.10", "stdout_lines": [" 12:10:12 up 14 days, 1:36, 1 user, load average: 0.18, 0.14, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004135", "end": "2025-12-16 12:10:13.520887", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.516752", "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.004386", "end": "2025-12-16 12:10:13.535544", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.531158", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004852", "end": "2025-12-16 12:10:13.546222", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.541370", "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.004725", "end": "2025-12-16 12:10:13.556986", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.552261", "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.005599", "end": "2025-12-16 12:10:13.564979", "msg": "", "rc": 0, "start": "2025-12-16 12:10:13.559380", "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.005616", "end": "2025-12-16 12:09:48.720020", "msg": "", "rc": 0, "start": "2025-12-16 12:09:48.714404", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005742", "end": "2025-12-16 12:09:42.582282", "msg": "", "rc": 0, "start": "2025-12-16 12:09:42.576540", "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.010571", "end": "2025-12-16 12:10:14.299470", "msg": "", "rc": 0, "start": "2025-12-16 12:10:14.288899", "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.012192", "end": "2025-12-16 12:10:14.319245", "msg": "", "rc": 0, "start": "2025-12-16 12:10:14.307053", "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.005778", "end": "2025-12-16 12:10:14.517558", "msg": "", "rc": 0, "start": "2025-12-16 12:10:14.511780", "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.005291", "end": "2025-12-16 12:09:45.788424", "msg": "", "rc": 0, "start": "2025-12-16 12:09:45.783133", "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.005592", "end": "2025-12-16 12:09:52.060703", "msg": "", "rc": 0, "start": "2025-12-16 12:09:52.055111", "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.006320", "end": "2025-12-16 09:10:14.786622", "msg": "", "rc": 0, "start": "2025-12-16 09:10:14.780302", "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.005555", "end": "2025-12-16 12:10:14.933698", "msg": "", "rc": 0, "start": "2025-12-16 12:10:14.928143", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.011374", "end": "2025-12-16 12:10:15.960108", "msg": "", "rc": 0, "start": "2025-12-16 12:10:15.948734", "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.025333", "end": "2025-12-16 12:10:14.910153", "msg": "", "rc": 0, "start": "2025-12-16 12:10:14.884820", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
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.004130", "end": "2025-12-16 12:10:15.430621", "msg": "", "rc": 0, "start": "2025-12-16 12:10:15.426491", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.1%"]}
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.004488", "end": "2025-12-16 12:10:15.433331", "msg": "", "rc": 0, "start": "2025-12-16 12:10:15.428843", "stderr": "", "stderr_lines": [], "stdout": "87.8%", "stdout_lines": ["87.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.004750", "end": "2025-12-16 12:10:15.461452", "msg": "", "rc": 0, "start": "2025-12-16 12:10:15.456702", "stderr": "", "stderr_lines": [], "stdout": "48.7%", "stdout_lines": ["48.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.005108", "end": "2025-12-16 12:10:15.475767", "msg": "", "rc": 0, "start": "2025-12-16 12:10:15.470659", "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.005717", "end": "2025-12-16 12:10:15.488298", "msg": "", "rc": 0, "start": "2025-12-16 12:10:15.482581", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.003618", "end": "2025-12-16 12:09:50.588973", "msg": "", "rc": 0, "start": "2025-12-16 12:09:50.585355", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.004365", "end": "2025-12-16 12:09:44.491604", "msg": "", "rc": 0, "start": "2025-12-16 12:09:44.487239", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.010991", "end": "2025-12-16 12:10:16.125226", "msg": "", "rc": 0, "start": "2025-12-16 12:10:16.114235", "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.012043", "end": "2025-12-16 12:10:16.158308", "msg": "", "rc": 0, "start": "2025-12-16 12:10:16.146265", "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.005866", "end": "2025-12-16 12:10:16.407799", "msg": "", "rc": 0, "start": "2025-12-16 12:10:16.401933", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004063", "end": "2025-12-16 12:09:47.661384", "msg": "", "rc": 0, "start": "2025-12-16 12:09:47.657321", "stderr": "", "stderr_lines": [], "stdout": "27.7%", "stdout_lines": ["27.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.004075", "end": "2025-12-16 12:09:53.890840", "msg": "", "rc": 0, "start": "2025-12-16 12:09:53.886765", "stderr": "", "stderr_lines": [], "stdout": "53.3%", "stdout_lines": ["53.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.005332", "end": "2025-12-16 09:10:16.617276", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:10:16.611944", "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.005470", "end": "2025-12-16 12:10:16.827793", "msg": "", "rc": 0, "start": "2025-12-16 12:10:16.822323", "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.011020", "end": "2025-12-16 12:10:16.887079", "msg": "", "rc": 0, "start": "2025-12-16 12:10:16.876059", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.026171", "end": "2025-12-16 12:10:16.833311", "msg": "", "rc": 0, "start": "2025-12-16 12:10:16.807140", "stderr": "", "stderr_lines": [], "stdout": "19.2%", "stdout_lines": ["19.2%"]}
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.005334", "end": "2025-12-16 12:10:17.361618", "msg": "", "rc": 0, "start": "2025-12-16 12:10:17.356284", "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.004903", "end": "2025-12-16 12:10:17.392111", "msg": "", "rc": 0, "start": "2025-12-16 12:10:17.387208", "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.005883", "end": "2025-12-16 12:10:17.412771", "msg": "", "rc": 0, "start": "2025-12-16 12:10:17.406888", "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.003031", "end": "2025-12-16 12:10:17.420659", "msg": "", "rc": 0, "start": "2025-12-16 12:10:17.417628", "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.006844", "end": "2025-12-16 12:10:17.444890", "msg": "", "rc": 0, "start": "2025-12-16 12:10:17.438046", "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.002752", "end": "2025-12-16 12:09:52.546536", "msg": "", "rc": 0, "start": "2025-12-16 12:09:52.543784", "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.003402", "end": "2025-12-16 12:09:46.503752", "msg": "", "rc": 0, "start": "2025-12-16 12:09:46.500350", "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-16 12:10:18.090582", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.078648", "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.012972", "end": "2025-12-16 12:10:18.112729", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.099757", "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.003359", "end": "2025-12-16 12:10:18.365453", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.362094", "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.004491", "end": "2025-12-16 09:10:18.586787", "msg": "", "rc": 0, "start": "2025-12-16 09:10:18.582296", "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.002781", "end": "2025-12-16 12:09:55.889842", "msg": "", "rc": 0, "start": "2025-12-16 12:09:55.887061", "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.003052", "end": "2025-12-16 12:09:49.732636", "msg": "", "rc": 0, "start": "2025-12-16 12:09:49.729584", "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.002987", "end": "2025-12-16 12:10:18.800739", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.797752", "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.028452", "end": "2025-12-16 12:10:18.771325", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.742873", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°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.005640", "end": "2025-12-16 12:10:18.980337", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.974697", "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.004272", "end": "2025-12-16 12:10:19.323514", "msg": "", "rc": 0, "start": "2025-12-16 12:10:19.319242", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.004008", "end": "2025-12-16 12:10:19.333701", "msg": "", "rc": 0, "start": "2025-12-16 12:10:19.329693", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
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.005427", "end": "2025-12-16 12:10:19.352702", "msg": "", "rc": 0, "start": "2025-12-16 12:10:19.347275", "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.005147", "end": "2025-12-16 12:10:19.366258", "msg": "", "rc": 0, "start": "2025-12-16 12:10:19.361111", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.007161", "end": "2025-12-16 12:10:19.390454", "msg": "", "rc": 0, "start": "2025-12-16 12:10:19.383293", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.004190", "end": "2025-12-16 12:09:54.459917", "msg": "", "rc": 0, "start": "2025-12-16 12:09:54.455727", "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.005514", "end": "2025-12-16 12:09:48.414484", "msg": "", "rc": 0, "start": "2025-12-16 12:09:48.408970", "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.010491", "end": "2025-12-16 12:10:20.108605", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.098114", "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.011105", "end": "2025-12-16 12:10:20.153155", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.142050", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
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.005649", "end": "2025-12-16 12:10:20.271811", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.266162", "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.005321", "end": "2025-12-16 12:09:51.603400", "msg": "", "rc": 0, "start": "2025-12-16 12:09:51.598079", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.003973", "end": "2025-12-16 12:09:57.860237", "msg": "", "rc": 0, "start": "2025-12-16 12:09:57.856264", "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.006520", "end": "2025-12-16 09:10:20.603852", "msg": "", "rc": 0, "start": "2025-12-16 09:10:20.597332", "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.005289", "end": "2025-12-16 12:10:20.687967", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.682678", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.007423", "end": "2025-12-16 12:10:20.935149", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.927726", "stderr": "", "stderr_lines": [], "stdout": "1.23", "stdout_lines": ["1.23"]}
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.024100", "end": "2025-12-16 12:10:20.706443", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.682343", "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: 12:10:11 up 2 days, 1:42, 1 user, load average: 0.33, 0.17, 0.16\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.30\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:11 up 20 days, 23:01, 1 user, load average: 0.60, 0.57, 0.56\nDisk Usage: 23%\nMemory Usage: 87.8%\nCPU Load: 0.50\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:11 up 20 days, 23:21, 1 user, load average: 0.68, 0.65, 0.76\nDisk Usage: 14%\nMemory Usage: 48.7%\nCPU Load: 0.70\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:11 up 21 days, 34 min, 1 user, load average: 0.36, 0.52, 0.58\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.42\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:11 up 21 days, 1:20, 1 user, load average: 0.03, 0.03, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:12 up 14 days, 1:36, 1 user, load average: 0.18, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.2%\nCPU Load: 0.31\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:12 up 193 days, 3:43, 1 user, load average: 0.26, 0.20, 0.19\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.30\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:12 up 193 days, 3:43, 1 user, load average: 0.31, 0.25, 0.17\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.28\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:09:46 up 9 days, 23:59, 0 user, load average: 0.03, 0.16, 0.18\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:09:40 up 16 days, 20:11, 0 user, load average: 0.01, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:12 up 2 days, 1:41, 1 user, load average: 0.01, 0.08, 0.03\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:09:43 up 19 days, 15:04, 0 user, load average: 0.30, 0.44, 0.49\nDisk Usage: 28%\nMemory Usage: 27.7%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:09:50 up 16 days, 1:25, 0 user, load average: 0.31, 0.47, 0.43\nDisk Usage: 75%\nMemory Usage: 53.3%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:10AM up 20 days, 23 hrs, 1 user, load averages: 0.12, 0.17, 0.16\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: 12:10:13 up 2 days, 1:41, 1 user, load average: 0.07, 0.02, 0.05\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10:13 up 13:32, 1 user, load average: 1.25, 1.20, 1.15\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.23\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-16T17:10:21.837721+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `aab0c973c6164cf6b14974586c3dae02` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:15:00.001044+00:00 |
| **Fin** | 2025-12-16T17:15:22.739849+00:00 |
| **Durée** | 22.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: [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: [hp.truenas.home] => {"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.003223", "end": "2025-12-16 12:15:11.354538", "msg": "", "rc": 0, "start": "2025-12-16 12:15:11.351315", "stderr": "", "stderr_lines": [], "stdout": " 12:15:11 up 20 days, 23:06, 1 user, load average: 0.66, 0.55, 0.55", "stdout_lines": [" 12:15:11 up 20 days, 23:06, 1 user, load average: 0.66, 0.55, 0.55"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004026", "end": "2025-12-16 12:15:11.369644", "msg": "", "rc": 0, "start": "2025-12-16 12:15:11.365618", "stderr": "", "stderr_lines": [], "stdout": " 12:15:11 up 21 days, 1:25, 1 user, load average: 0.14, 0.06, 0.02", "stdout_lines": [" 12:15:11 up 21 days, 1:25, 1 user, load average: 0.14, 0.06, 0.02"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003158", "end": "2025-12-16 12:15:11.380646", "msg": "", "rc": 0, "start": "2025-12-16 12:15:11.377488", "stderr": "", "stderr_lines": [], "stdout": " 12:15:11 up 20 days, 23:26, 1 user, load average: 0.49, 0.63, 0.72", "stdout_lines": [" 12:15:11 up 20 days, 23:26, 1 user, load average: 0.49, 0.63, 0.72"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002934", "end": "2025-12-16 12:15:11.393953", "msg": "", "rc": 0, "start": "2025-12-16 12:15:11.391019", "stderr": "", "stderr_lines": [], "stdout": " 12:15:11 up 2 days, 1:47, 1 user, load average: 0.31, 0.23, 0.19", "stdout_lines": [" 12:15:11 up 2 days, 1:47, 1 user, load average: 0.31, 0.23, 0.19"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004031", "end": "2025-12-16 12:15:11.392938", "msg": "", "rc": 0, "start": "2025-12-16 12:15:11.388907", "stderr": "", "stderr_lines": [], "stdout": " 12:15:11 up 21 days, 39 min, 1 user, load average: 0.59, 0.61, 0.60", "stdout_lines": [" 12:15:11 up 21 days, 39 min, 1 user, load average: 0.59, 0.61, 0.60"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002841", "end": "2025-12-16 12:14:46.500110", "msg": "", "rc": 0, "start": "2025-12-16 12:14:46.497269", "stderr": "", "stderr_lines": [], "stdout": " 12:14:46 up 10 days, 4 min, 0 user, load average: 0.16, 0.15, 0.17", "stdout_lines": [" 12:14:46 up 10 days, 4 min, 0 user, load average: 0.16, 0.15, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003529", "end": "2025-12-16 12:14:40.400834", "msg": "", "rc": 0, "start": "2025-12-16 12:14:40.397305", "stderr": "", "stderr_lines": [], "stdout": " 12:14:40 up 16 days, 20:16, 0 user, load average: 0.02, 0.07, 0.02", "stdout_lines": [" 12:14:40 up 16 days, 20:16, 0 user, load average: 0.02, 0.07, 0.02"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008826", "end": "2025-12-16 12:15:12.029554", "msg": "", "rc": 0, "start": "2025-12-16 12:15:12.020728", "stderr": "", "stderr_lines": [], "stdout": " 12:15:12 up 193 days, 3:48, 1 user, load average: 0.16, 0.17, 0.16", "stdout_lines": [" 12:15:12 up 193 days, 3:48, 1 user, load average: 0.16, 0.17, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009314", "end": "2025-12-16 12:15:12.068521", "msg": "", "rc": 0, "start": "2025-12-16 12:15:12.059207", "stderr": "", "stderr_lines": [], "stdout": " 12:15:12 up 193 days, 3:48, 1 user, load average: 0.19, 0.18, 0.18", "stdout_lines": [" 12:15:12 up 193 days, 3:48, 1 user, load average: 0.19, 0.18, 0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004842", "end": "2025-12-16 12:15:12.295031", "msg": "", "rc": 0, "start": "2025-12-16 12:15:12.290189", "stderr": "", "stderr_lines": [], "stdout": " 12:15:12 up 2 days, 1:46, 1 user, load average: 0.06, 0.04, 0.02", "stdout_lines": [" 12:15:12 up 2 days, 1:46, 1 user, load average: 0.06, 0.04, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003087", "end": "2025-12-16 12:14:43.551395", "msg": "", "rc": 0, "start": "2025-12-16 12:14:43.548308", "stderr": "", "stderr_lines": [], "stdout": " 12:14:43 up 19 days, 15:09, 0 user, load average: 0.50, 0.47, 0.48", "stdout_lines": [" 12:14:43 up 19 days, 15:09, 0 user, load average: 0.50, 0.47, 0.48"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002683", "end": "2025-12-16 12:14:49.779427", "msg": "", "rc": 0, "start": "2025-12-16 12:14:49.776744", "stderr": "", "stderr_lines": [], "stdout": " 12:14:49 up 16 days, 1:30, 0 user, load average: 0.16, 0.29, 0.36", "stdout_lines": [" 12:14:49 up 16 days, 1:30, 0 user, load average: 0.16, 0.29, 0.36"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004373", "end": "2025-12-16 09:15:12.531784", "msg": "", "rc": 0, "start": "2025-12-16 09:15:12.527411", "stderr": "", "stderr_lines": [], "stdout": " 9:15AM up 20 days, 23:04, 1 user, load averages: 0.15, 0.18, 0.17", "stdout_lines": [" 9:15AM up 20 days, 23:04, 1 user, load averages: 0.15, 0.18, 0.17"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009370", "end": "2025-12-16 12:15:12.961938", "msg": "", "rc": 0, "start": "2025-12-16 12:15:12.952568", "stderr": "", "stderr_lines": [], "stdout": " 12:15:12 up 13:37, 1 user, load average: 1.17, 1.13, 1.12", "stdout_lines": [" 12:15:12 up 13:37, 1 user, load average: 1.17, 1.13, 1.12"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019550", "end": "2025-12-16 12:15:12.729787", "msg": "", "rc": 0, "start": "2025-12-16 12:15:12.710237", "stderr": "", "stderr_lines": [], "stdout": " 12:15:12 up 14 days, 1:41, 1 user, load average: 0.16, 0.13, 0.10", "stdout_lines": [" 12:15:12 up 14 days, 1:41, 1 user, load average: 0.16, 0.13, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005023", "end": "2025-12-16 12:15:13.714149", "msg": "", "rc": 0, "start": "2025-12-16 12:15:12.709126", "stderr": "", "stderr_lines": [], "stdout": " 12:15:12 up 2 days, 1:46, 1 user, load average: 0.08, 0.04, 0.05", "stdout_lines": [" 12:15:12 up 2 days, 1:46, 1 user, load average: 0.08, 0.04, 0.05"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004369", "end": "2025-12-16 12:15:14.123977", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.119608", "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.004691", "end": "2025-12-16 12:15:14.151674", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.146983", "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.004158", "end": "2025-12-16 12:15:14.160639", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.156481", "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.004729", "end": "2025-12-16 12:15:14.178092", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.173363", "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.005525", "end": "2025-12-16 12:15:14.198610", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.193085", "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.005440", "end": "2025-12-16 12:14:49.291850", "msg": "", "rc": 0, "start": "2025-12-16 12:14:49.286410", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005799", "end": "2025-12-16 12:14:43.212274", "msg": "", "rc": 0, "start": "2025-12-16 12:14:43.206475", "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.010658", "end": "2025-12-16 12:15:14.903115", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.892457", "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.011667", "end": "2025-12-16 12:15:14.937678", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.926011", "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.005703", "end": "2025-12-16 12:15:15.098856", "msg": "", "rc": 0, "start": "2025-12-16 12:15:15.093153", "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.005436", "end": "2025-12-16 12:14:46.408283", "msg": "", "rc": 0, "start": "2025-12-16 12:14:46.402847", "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.004364", "end": "2025-12-16 12:14:52.666513", "msg": "", "rc": 0, "start": "2025-12-16 12:14:52.662149", "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.005333", "end": "2025-12-16 09:15:15.399601", "msg": "", "rc": 0, "start": "2025-12-16 09:15:15.394268", "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.005633", "end": "2025-12-16 12:15:15.513570", "msg": "", "rc": 0, "start": "2025-12-16 12:15:15.507937", "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.025123", "end": "2025-12-16 12:15:15.510543", "msg": "", "rc": 0, "start": "2025-12-16 12:15:15.485420", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020322", "end": "2025-12-16 12:15:15.996512", "msg": "", "rc": 0, "start": "2025-12-16 12:15:15.976190", "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.004407", "end": "2025-12-16 12:15:16.065396", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.060989", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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-16 12:15:16.073483", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.068622", "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.004221", "end": "2025-12-16 12:15:16.088785", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.084564", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005297", "end": "2025-12-16 12:15:16.110915", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.105618", "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.010328", "end": "2025-12-16 12:15:16.124453", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.114125", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.004273", "end": "2025-12-16 12:14:51.210897", "msg": "", "rc": 0, "start": "2025-12-16 12:14:51.206624", "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.004608", "end": "2025-12-16 12:14:45.160807", "msg": "", "rc": 0, "start": "2025-12-16 12:14:45.156199", "stderr": "", "stderr_lines": [], "stdout": "72.8%", "stdout_lines": ["72.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.011014", "end": "2025-12-16 12:15:16.735904", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.724890", "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.012038", "end": "2025-12-16 12:15:16.806607", "msg": "", "rc": 0, "start": "2025-12-16 12:15:16.794569", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005994", "end": "2025-12-16 12:15:17.034018", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.028024", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.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.003787", "end": "2025-12-16 12:14:54.495428", "msg": "", "rc": 0, "start": "2025-12-16 12:14:54.491641", "stderr": "", "stderr_lines": [], "stdout": "52.1%", "stdout_lines": ["52.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.004751", "end": "2025-12-16 12:14:48.332617", "msg": "", "rc": 0, "start": "2025-12-16 12:14:48.327866", "stderr": "", "stderr_lines": [], "stdout": "27.7%", "stdout_lines": ["27.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.005392", "end": "2025-12-16 09:15:17.264230", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:15:17.258838", "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.005435", "end": "2025-12-16 12:15:17.456916", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.451481", "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.009107", "end": "2025-12-16 12:15:17.924231", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.915124", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025723", "end": "2025-12-16 12:15:17.447947", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.422224", "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.005178", "end": "2025-12-16 12:15:17.962998", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.957820", "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.004917", "end": "2025-12-16 12:15:17.990446", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.985529", "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.006480", "end": "2025-12-16 12:15:17.999131", "msg": "", "rc": 0, "start": "2025-12-16 12:15:17.992651", "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.002835", "end": "2025-12-16 12:15:18.037699", "msg": "", "rc": 0, "start": "2025-12-16 12:15:18.034864", "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.006740", "end": "2025-12-16 12:15:18.034111", "msg": "", "rc": 0, "start": "2025-12-16 12:15:18.027371", "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.002507", "end": "2025-12-16 12:14:53.143237", "msg": "", "rc": 0, "start": "2025-12-16 12:14:53.140730", "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.003200", "end": "2025-12-16 12:14:47.040730", "msg": "", "rc": 0, "start": "2025-12-16 12:14:47.037530", "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.011734", "end": "2025-12-16 12:15:18.674616", "msg": "", "rc": 0, "start": "2025-12-16 12:15:18.662882", "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.012927", "end": "2025-12-16 12:15:18.700355", "msg": "", "rc": 0, "start": "2025-12-16 12:15:18.687428", "stderr": "", "stderr_lines": [], "stdout": "37.5°C", "stdout_lines": ["37.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.003432", "end": "2025-12-16 12:15:18.942851", "msg": "", "rc": 0, "start": "2025-12-16 12:15:18.939419", "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.003868", "end": "2025-12-16 09:15:19.157693", "msg": "", "rc": 0, "start": "2025-12-16 09:15:19.153825", "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.002695", "end": "2025-12-16 12:14:56.433818", "msg": "", "rc": 0, "start": "2025-12-16 12:14:56.431123", "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.002964", "end": "2025-12-16 12:14:50.276550", "msg": "", "rc": 0, "start": "2025-12-16 12:14:50.273586", "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.003063", "end": "2025-12-16 12:15:19.364954", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.361891", "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.004321", "end": "2025-12-16 12:15:19.914250", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.909929", "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.028718", "end": "2025-12-16 12:15:19.347417", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.318699", "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.004276", "end": "2025-12-16 12:15:19.860113", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.855837", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
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.004025", "end": "2025-12-16 12:15:19.888708", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.884683", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004534", "end": "2025-12-16 12:15:19.897432", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.892898", "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.005104", "end": "2025-12-16 12:15:19.910716", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.905612", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.005928", "end": "2025-12-16 12:15:19.944483", "msg": "", "rc": 0, "start": "2025-12-16 12:15:19.938555", "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.004453", "end": "2025-12-16 12:14:55.064024", "msg": "", "rc": 0, "start": "2025-12-16 12:14:55.059571", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005470", "end": "2025-12-16 12:14:48.977731", "msg": "", "rc": 0, "start": "2025-12-16 12:14:48.972261", "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.010340", "end": "2025-12-16 12:15:20.634874", "msg": "", "rc": 0, "start": "2025-12-16 12:15:20.624534", "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.011262", "end": "2025-12-16 12:15:20.705543", "msg": "", "rc": 0, "start": "2025-12-16 12:15:20.694281", "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.005597", "end": "2025-12-16 12:15:20.876376", "msg": "", "rc": 0, "start": "2025-12-16 12:15:20.870779", "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.006067", "end": "2025-12-16 12:14:52.196730", "msg": "", "rc": 0, "start": "2025-12-16 12:14:52.190663", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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.004644", "end": "2025-12-16 12:14:58.414812", "msg": "", "rc": 0, "start": "2025-12-16 12:14:58.410168", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
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.006167", "end": "2025-12-16 09:15:21.174598", "msg": "", "rc": 0, "start": "2025-12-16 09:15:21.168431", "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-16 12:15:21.296811", "msg": "", "rc": 0, "start": "2025-12-16 12:15:21.291440", "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.024224", "end": "2025-12-16 12:15:21.251812", "msg": "", "rc": 0, "start": "2025-12-16 12:15:21.227588", "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.007455", "end": "2025-12-16 12:15:21.942468", "msg": "", "rc": 0, "start": "2025-12-16 12:15:21.935013", "stderr": "", "stderr_lines": [], "stdout": "1.16", "stdout_lines": ["1.16"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:11 up 20 days, 23:06, 1 user, load average: 0.66, 0.55, 0.55\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.56\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:11 up 2 days, 1:47, 1 user, load average: 0.31, 0.23, 0.19\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.28\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:11 up 20 days, 23:26, 1 user, load average: 0.49, 0.63, 0.72\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.49\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:11 up 21 days, 39 min, 1 user, load average: 0.59, 0.61, 0.60\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.63\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:11 up 21 days, 1:25, 1 user, load average: 0.14, 0.06, 0.02\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:12 up 14 days, 1:41, 1 user, load average: 0.16, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.21\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:12 up 193 days, 3:48, 1 user, load average: 0.19, 0.18, 0.18\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.23\nCPU Temp: 37.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:12 up 193 days, 3:48, 1 user, load average: 0.16, 0.17, 0.16\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.22\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:14:46 up 10 days, 4 min, 0 user, load average: 0.16, 0.15, 0.17\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:14:40 up 16 days, 20:16, 0 user, load average: 0.02, 0.07, 0.02\nDisk Usage: 24%\nMemory Usage: 72.8%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:12 up 2 days, 1:46, 1 user, load average: 0.06, 0.04, 0.02\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:14:43 up 19 days, 15:09, 0 user, load average: 0.50, 0.47, 0.48\nDisk Usage: 28%\nMemory Usage: 27.7%\nCPU Load: 0.58\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:14:49 up 16 days, 1:30, 0 user, load average: 0.16, 0.29, 0.36\nDisk Usage: 75%\nMemory Usage: 52.1%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:15AM up 20 days, 23:04, 1 user, load averages: 0.15, 0.18, 0.17\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: 12:15:12 up 2 days, 1:46, 1 user, load average: 0.08, 0.04, 0.05\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15:12 up 13:37, 1 user, load average: 1.17, 1.13, 1.12\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.16\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-16T17:15:22.776800+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `02af075d32824756afbf68fc3107563b` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:20:00.002964+00:00 |
| **Fin** | 2025-12-16T17:20:22.871898+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: [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: [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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003220", "end": "2025-12-16 12:20:11.854745", "msg": "", "rc": 0, "start": "2025-12-16 12:20:11.851525", "stderr": "", "stderr_lines": [], "stdout": " 12:20:11 up 20 days, 23:31, 1 user, load average: 0.90, 0.75, 0.74", "stdout_lines": [" 12:20:11 up 20 days, 23:31, 1 user, load average: 0.90, 0.75, 0.74"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003714", "end": "2025-12-16 12:20:11.862517", "msg": "", "rc": 0, "start": "2025-12-16 12:20:11.858803", "stderr": "", "stderr_lines": [], "stdout": " 12:20:11 up 21 days, 1:30, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 12:20:11 up 21 days, 1:30, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002863", "end": "2025-12-16 12:20:11.885915", "msg": "", "rc": 0, "start": "2025-12-16 12:20:11.883052", "stderr": "", "stderr_lines": [], "stdout": " 12:20:11 up 2 days, 1:52, 1 user, load average: 0.11, 0.14, 0.16", "stdout_lines": [" 12:20:11 up 2 days, 1:52, 1 user, load average: 0.11, 0.14, 0.16"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004276", "end": "2025-12-16 12:20:11.874857", "msg": "", "rc": 0, "start": "2025-12-16 12:20:11.870581", "stderr": "", "stderr_lines": [], "stdout": " 12:20:11 up 21 days, 44 min, 1 user, load average: 0.56, 0.60, 0.61", "stdout_lines": [" 12:20:11 up 21 days, 44 min, 1 user, load average: 0.56, 0.60, 0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003199", "end": "2025-12-16 12:19:47.028427", "msg": "", "rc": 0, "start": "2025-12-16 12:19:47.025228", "stderr": "", "stderr_lines": [], "stdout": " 12:19:47 up 10 days, 9 min, 0 user, load average: 0.22, 0.20, 0.18", "stdout_lines": [" 12:19:47 up 10 days, 9 min, 0 user, load average: 0.22, 0.20, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008502", "end": "2025-12-16 12:20:12.561136", "msg": "", "rc": 0, "start": "2025-12-16 12:20:12.552634", "stderr": "", "stderr_lines": [], "stdout": " 12:20:12 up 193 days, 3:53, 1 user, load average: 0.02, 0.10, 0.13", "stdout_lines": [" 12:20:12 up 193 days, 3:53, 1 user, load average: 0.02, 0.10, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009242", "end": "2025-12-16 12:20:12.587802", "msg": "", "rc": 0, "start": "2025-12-16 12:20:12.578560", "stderr": "", "stderr_lines": [], "stdout": " 12:20:12 up 193 days, 3:53, 1 user, load average: 0.38, 0.23, 0.19", "stdout_lines": [" 12:20:12 up 193 days, 3:53, 1 user, load average: 0.38, 0.23, 0.19"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004156", "end": "2025-12-16 12:20:12.845005", "msg": "", "rc": 0, "start": "2025-12-16 12:20:11.840849", "stderr": "", "stderr_lines": [], "stdout": " 12:20:11 up 20 days, 23:11, 1 user, load average: 0.44, 0.46, 0.51", "stdout_lines": [" 12:20:11 up 20 days, 23:11, 1 user, load average: 0.44, 0.46, 0.51"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003429", "end": "2025-12-16 12:19:41.377148", "msg": "", "rc": 0, "start": "2025-12-16 12:19:41.373719", "stderr": "", "stderr_lines": [], "stdout": " 12:19:41 up 16 days, 20:21, 0 user, load average: 0.04, 0.04, 0.00", "stdout_lines": [" 12:19:41 up 16 days, 20:21, 0 user, load average: 0.04, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004679", "end": "2025-12-16 12:20:13.070867", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.066188", "stderr": "", "stderr_lines": [], "stdout": " 12:20:13 up 2 days, 1:51, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 12:20:13 up 2 days, 1:51, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003279", "end": "2025-12-16 12:19:44.271584", "msg": "", "rc": 0, "start": "2025-12-16 12:19:44.268305", "stderr": "", "stderr_lines": [], "stdout": " 12:19:44 up 19 days, 15:14, 0 user, load average: 0.67, 0.44, 0.45", "stdout_lines": [" 12:19:44 up 19 days, 15:14, 0 user, load average: 0.67, 0.44, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002882", "end": "2025-12-16 12:19:50.554347", "msg": "", "rc": 0, "start": "2025-12-16 12:19:50.551465", "stderr": "", "stderr_lines": [], "stdout": " 12:19:50 up 16 days, 1:35, 0 user, load average: 1.30, 0.77, 0.53", "stdout_lines": [" 12:19:50 up 16 days, 1:35, 0 user, load average: 1.30, 0.77, 0.53"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004527", "end": "2025-12-16 09:20:13.337115", "msg": "", "rc": 0, "start": "2025-12-16 09:20:13.332588", "stderr": "", "stderr_lines": [], "stdout": " 9:20AM up 20 days, 23:10, 1 user, load averages: 0.11, 0.17, 0.16", "stdout_lines": [" 9:20AM up 20 days, 23:10, 1 user, load averages: 0.11, 0.17, 0.16"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019517", "end": "2025-12-16 12:20:13.261571", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.242054", "stderr": "", "stderr_lines": [], "stdout": " 12:20:13 up 14 days, 1:46, 1 user, load average: 0.22, 0.13, 0.10", "stdout_lines": [" 12:20:13 up 14 days, 1:46, 1 user, load average: 0.22, 0.13, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008728", "end": "2025-12-16 12:20:14.090578", "msg": "", "rc": 0, "start": "2025-12-16 12:20:14.081850", "stderr": "", "stderr_lines": [], "stdout": " 12:20:14 up 13:42, 1 user, load average: 1.22, 1.12, 1.10", "stdout_lines": [" 12:20:14 up 13:42, 1 user, load average: 1.22, 1.12, 1.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003703", "end": "2025-12-16 12:20:13.508017", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.504314", "stderr": "", "stderr_lines": [], "stdout": " 12:20:13 up 2 days, 1:51, 1 user, load average: 0.07, 0.03, 0.03", "stdout_lines": [" 12:20:13 up 2 days, 1:51, 1 user, load average: 0.07, 0.03, 0.03"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004381", "end": "2025-12-16 12:20:13.921133", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.916752", "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.004086", "end": "2025-12-16 12:20:13.929179", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.925093", "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.004734", "end": "2025-12-16 12:20:13.948513", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.943779", "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.004831", "end": "2025-12-16 12:20:13.971607", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.966776", "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.005597", "end": "2025-12-16 12:20:13.987873", "msg": "", "rc": 0, "start": "2025-12-16 12:20:13.982276", "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.005307", "end": "2025-12-16 12:19:49.082505", "msg": "", "rc": 0, "start": "2025-12-16 12:19:49.077198", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005782", "end": "2025-12-16 12:19:42.998395", "msg": "", "rc": 0, "start": "2025-12-16 12:19:42.992613", "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.010804", "end": "2025-12-16 12:20:14.667955", "msg": "", "rc": 0, "start": "2025-12-16 12:20:14.657151", "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.011631", "end": "2025-12-16 12:20:14.686256", "msg": "", "rc": 0, "start": "2025-12-16 12:20:14.674625", "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.005738", "end": "2025-12-16 12:20:14.899184", "msg": "", "rc": 0, "start": "2025-12-16 12:20:14.893446", "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.005039", "end": "2025-12-16 12:19:46.162749", "msg": "", "rc": 0, "start": "2025-12-16 12:19:46.157710", "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.005591", "end": "2025-12-16 09:20:15.139906", "msg": "", "rc": 0, "start": "2025-12-16 09:20:15.134315", "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.004932", "end": "2025-12-16 12:19:52.430908", "msg": "", "rc": 0, "start": "2025-12-16 12:19:52.425976", "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.005664", "end": "2025-12-16 12:20:15.315804", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.310140", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020466", "end": "2025-12-16 12:20:16.051827", "msg": "", "rc": 0, "start": "2025-12-16 12:20:16.031361", "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.025243", "end": "2025-12-16 12:20:15.310220", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.284977", "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.004362", "end": "2025-12-16 12:20:15.837487", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.833125", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.004188", "end": "2025-12-16 12:20:15.839645", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.835457", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004865", "end": "2025-12-16 12:20:15.858730", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.853865", "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.005103", "end": "2025-12-16 12:20:15.879915", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.874812", "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.005936", "end": "2025-12-16 12:20:15.898362", "msg": "", "rc": 0, "start": "2025-12-16 12:20:15.892426", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.003828", "end": "2025-12-16 12:19:50.989945", "msg": "", "rc": 0, "start": "2025-12-16 12:19:50.986117", "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.004124", "end": "2025-12-16 12:19:44.892896", "msg": "", "rc": 0, "start": "2025-12-16 12:19:44.888772", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.010976", "end": "2025-12-16 12:20:16.512556", "msg": "", "rc": 0, "start": "2025-12-16 12:20:16.501580", "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.012048", "end": "2025-12-16 12:20:16.571364", "msg": "", "rc": 0, "start": "2025-12-16 12:20:16.559316", "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.005896", "end": "2025-12-16 12:20:16.814361", "msg": "", "rc": 0, "start": "2025-12-16 12:20:16.808465", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.004139", "end": "2025-12-16 12:19:48.066720", "msg": "", "rc": 0, "start": "2025-12-16 12:19:48.062581", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005204", "end": "2025-12-16 09:20:17.022023", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:20:17.016819", "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.004403", "end": "2025-12-16 12:19:54.302473", "msg": "", "rc": 0, "start": "2025-12-16 12:19:54.298070", "stderr": "", "stderr_lines": [], "stdout": "52.4%", "stdout_lines": ["52.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.005349", "end": "2025-12-16 12:20:17.246710", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.241361", "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.009849", "end": "2025-12-16 12:20:18.047879", "msg": "", "rc": 0, "start": "2025-12-16 12:20:18.038030", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025867", "end": "2025-12-16 12:20:17.224622", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.198755", "stderr": "", "stderr_lines": [], "stdout": "18.9%", "stdout_lines": ["18.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.005352", "end": "2025-12-16 12:20:17.764429", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.759077", "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.004892", "end": "2025-12-16 12:20:17.781461", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.776569", "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.005772", "end": "2025-12-16 12:20:17.784474", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.778702", "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.003439", "end": "2025-12-16 12:20:17.802294", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.798855", "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.007449", "end": "2025-12-16 12:20:17.825236", "msg": "", "rc": 0, "start": "2025-12-16 12:20:17.817787", "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.002515", "end": "2025-12-16 12:19:52.900844", "msg": "", "rc": 0, "start": "2025-12-16 12:19:52.898329", "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.002866", "end": "2025-12-16 12:19:46.830074", "msg": "", "rc": 0, "start": "2025-12-16 12:19:46.827208", "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.011597", "end": "2025-12-16 12:20:18.453410", "msg": "", "rc": 0, "start": "2025-12-16 12:20:18.441813", "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.013237", "end": "2025-12-16 12:20:18.486812", "msg": "", "rc": 0, "start": "2025-12-16 12:20:18.473575", "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.003348", "end": "2025-12-16 12:20:18.692480", "msg": "", "rc": 0, "start": "2025-12-16 12:20:18.689132", "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.003030", "end": "2025-12-16 12:19:49.992405", "msg": "", "rc": 0, "start": "2025-12-16 12:19:49.989375", "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.004172", "end": "2025-12-16 09:20:18.949765", "msg": "", "rc": 0, "start": "2025-12-16 09:20:18.945593", "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.003276", "end": "2025-12-16 12:19:56.217420", "msg": "", "rc": 0, "start": "2025-12-16 12:19:56.214144", "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.002946", "end": "2025-12-16 12:20:19.105491", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.102545", "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.004162", "end": "2025-12-16 12:20:19.996801", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.992639", "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.029079", "end": "2025-12-16 12:20:19.154895", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.125816", "stderr": "", "stderr_lines": [], "stdout": "36.8°C", "stdout_lines": ["36.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.004323", "end": "2025-12-16 12:20:19.663512", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.659189", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.003998", "end": "2025-12-16 12:20:19.693229", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.689231", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.004827", "end": "2025-12-16 12:20:19.697133", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.692306", "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.005167", "end": "2025-12-16 12:20:19.727810", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.722643", "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.005514", "end": "2025-12-16 12:20:19.734238", "msg": "", "rc": 0, "start": "2025-12-16 12:20:19.728724", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.004458", "end": "2025-12-16 12:19:54.830080", "msg": "", "rc": 0, "start": "2025-12-16 12:19:54.825622", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005106", "end": "2025-12-16 12:19:48.745290", "msg": "", "rc": 0, "start": "2025-12-16 12:19:48.740184", "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.010161", "end": "2025-12-16 12:20:20.454631", "msg": "", "rc": 0, "start": "2025-12-16 12:20:20.444470", "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.011147", "end": "2025-12-16 12:20:20.476756", "msg": "", "rc": 0, "start": "2025-12-16 12:20:20.465609", "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.006139", "end": "2025-12-16 12:20:20.647344", "msg": "", "rc": 0, "start": "2025-12-16 12:20:20.641205", "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.005193", "end": "2025-12-16 12:19:51.981994", "msg": "", "rc": 0, "start": "2025-12-16 12:19:51.976801", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.006189", "end": "2025-12-16 09:20:20.941644", "msg": "", "rc": 0, "start": "2025-12-16 09:20:20.935455", "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.005719", "end": "2025-12-16 12:19:58.231148", "msg": "", "rc": 0, "start": "2025-12-16 12:19:58.225429", "stderr": "", "stderr_lines": [], "stdout": "1.20", "stdout_lines": ["1.20"]}
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.005231", "end": "2025-12-16 12:20:21.062662", "msg": "", "rc": 0, "start": "2025-12-16 12:20:21.057431", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.007782", "end": "2025-12-16 12:20:22.069275", "msg": "", "rc": 0, "start": "2025-12-16 12:20:22.061493", "stderr": "", "stderr_lines": [], "stdout": "1.28", "stdout_lines": ["1.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.024339", "end": "2025-12-16 12:20:21.049806", "msg": "", "rc": 0, "start": "2025-12-16 12:20:21.025467", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:11 up 2 days, 1:52, 1 user, load average: 0.11, 0.14, 0.16\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.26\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:11 up 20 days, 23:11, 1 user, load average: 0.44, 0.46, 0.51\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.53\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:11 up 20 days, 23:31, 1 user, load average: 0.90, 0.75, 0.74\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.83\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:11 up 21 days, 44 min, 1 user, load average: 0.56, 0.60, 0.61\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.51\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:11 up 21 days, 1:30, 1 user, load average: 0.00, 0.02, 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: 12:20:13 up 14 days, 1:46, 1 user, load average: 0.22, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 18.9%\nCPU Load: 0.34\nCPU Temp: 36.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:12 up 193 days, 3:53, 1 user, load average: 0.38, 0.23, 0.19\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.41\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:12 up 193 days, 3:53, 1 user, load average: 0.02, 0.10, 0.13\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.10\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:19:47 up 10 days, 9 min, 0 user, load average: 0.22, 0.20, 0.18\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:19:41 up 16 days, 20:21, 0 user, load average: 0.04, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20:13 up 2 days, 1:51, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:19:44 up 19 days, 15:14, 0 user, load average: 0.67, 0.44, 0.45\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.62\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:19:50 up 16 days, 1:35, 0 user, load average: 1.30, 0.77, 0.53\nDisk Usage: 75%\nMemory Usage: 52.4%\nCPU Load: 1.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:20AM up 20 days, 23:10, 1 user, load averages: 0.11, 0.17, 0.16\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: 12:20:13 up 2 days, 1:51, 1 user, load average: 0.07, 0.03, 0.03\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: 12:20:14 up 13:42, 1 user, load average: 1.22, 1.12, 1.10\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T17:20:22.910559+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `3885b51abeec4ec09c00131dfb1b0533` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:25:00.001452+00:00 |
| **Fin** | 2025-12-16T17:25:21.783057+00:00 |
| **Durée** | 21.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: [hp2.i7.home] => {"changed": false, "ping": "pong"}
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: [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: [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.003870", "end": "2025-12-16 12:25:11.525351", "msg": "", "rc": 0, "start": "2025-12-16 12:25:11.521481", "stderr": "", "stderr_lines": [], "stdout": " 12:25:11 up 21 days, 1:35, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 12:25:11 up 21 days, 1:35, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003365", "end": "2025-12-16 12:25:11.526622", "msg": "", "rc": 0, "start": "2025-12-16 12:25:11.523257", "stderr": "", "stderr_lines": [], "stdout": " 12:25:11 up 20 days, 23:36, 1 user, load average: 0.94, 0.76, 0.74", "stdout_lines": [" 12:25:11 up 20 days, 23:36, 1 user, load average: 0.94, 0.76, 0.74"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002832", "end": "2025-12-16 12:25:11.549588", "msg": "", "rc": 0, "start": "2025-12-16 12:25:11.546756", "stderr": "", "stderr_lines": [], "stdout": " 12:25:11 up 2 days, 1:57, 1 user, load average: 1.12, 0.45, 0.27", "stdout_lines": [" 12:25:11 up 2 days, 1:57, 1 user, load average: 1.12, 0.45, 0.27"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004283", "end": "2025-12-16 12:25:11.540026", "msg": "", "rc": 0, "start": "2025-12-16 12:25:11.535743", "stderr": "", "stderr_lines": [], "stdout": " 12:25:11 up 21 days, 49 min, 1 user, load average: 0.59, 0.65, 0.64", "stdout_lines": [" 12:25:11 up 21 days, 49 min, 1 user, load average: 0.59, 0.65, 0.64"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003470", "end": "2025-12-16 12:24:46.659224", "msg": "", "rc": 0, "start": "2025-12-16 12:24:46.655754", "stderr": "", "stderr_lines": [], "stdout": " 12:24:46 up 10 days, 14 min, 0 user, load average: 0.01, 0.11, 0.15", "stdout_lines": [" 12:24:46 up 10 days, 14 min, 0 user, load average: 0.01, 0.11, 0.15"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008288", "end": "2025-12-16 12:25:12.201781", "msg": "", "rc": 0, "start": "2025-12-16 12:25:12.193493", "stderr": "", "stderr_lines": [], "stdout": " 12:25:12 up 193 days, 3:58, 1 user, load average: 0.03, 0.08, 0.11", "stdout_lines": [" 12:25:12 up 193 days, 3:58, 1 user, load average: 0.03, 0.08, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009380", "end": "2025-12-16 12:25:12.231023", "msg": "", "rc": 0, "start": "2025-12-16 12:25:12.221643", "stderr": "", "stderr_lines": [], "stdout": " 12:25:12 up 193 days, 3:58, 1 user, load average: 0.10, 0.22, 0.20", "stdout_lines": [" 12:25:12 up 193 days, 3:58, 1 user, load average: 0.10, 0.22, 0.20"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004092", "end": "2025-12-16 12:25:12.509574", "msg": "", "rc": 0, "start": "2025-12-16 12:25:11.505482", "stderr": "", "stderr_lines": [], "stdout": " 12:25:11 up 20 days, 23:16, 1 user, load average: 0.32, 0.35, 0.45", "stdout_lines": [" 12:25:11 up 20 days, 23:16, 1 user, load average: 0.32, 0.35, 0.45"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003583", "end": "2025-12-16 12:24:41.007803", "msg": "", "rc": 0, "start": "2025-12-16 12:24:41.004220", "stderr": "", "stderr_lines": [], "stdout": " 12:24:41 up 16 days, 20:26, 0 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 12:24:41 up 16 days, 20:26, 0 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004611", "end": "2025-12-16 12:25:12.686039", "msg": "", "rc": 0, "start": "2025-12-16 12:25:12.681428", "stderr": "", "stderr_lines": [], "stdout": " 12:25:12 up 2 days, 1:56, 1 user, load average: 0.08, 0.02, 0.01", "stdout_lines": [" 12:25:12 up 2 days, 1:56, 1 user, load average: 0.08, 0.02, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003258", "end": "2025-12-16 12:24:43.895012", "msg": "", "rc": 0, "start": "2025-12-16 12:24:43.891754", "stderr": "", "stderr_lines": [], "stdout": " 12:24:43 up 19 days, 15:19, 0 user, load average: 0.42, 0.42, 0.45", "stdout_lines": [" 12:24:43 up 19 days, 15:19, 0 user, load average: 0.42, 0.42, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002782", "end": "2025-12-16 12:24:50.203797", "msg": "", "rc": 0, "start": "2025-12-16 12:24:50.201015", "stderr": "", "stderr_lines": [], "stdout": " 12:24:50 up 16 days, 1:40, 0 user, load average: 0.47, 0.52, 0.47", "stdout_lines": [" 12:24:50 up 16 days, 1:40, 0 user, load average: 0.47, 0.52, 0.47"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004210", "end": "2025-12-16 09:25:12.956961", "msg": "", "rc": 0, "start": "2025-12-16 09:25:12.952751", "stderr": "", "stderr_lines": [], "stdout": " 9:25AM up 20 days, 23:15, 1 user, load averages: 0.34, 0.22, 0.18", "stdout_lines": [" 9:25AM up 20 days, 23:15, 1 user, load averages: 0.34, 0.22, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019453", "end": "2025-12-16 12:25:12.905533", "msg": "", "rc": 0, "start": "2025-12-16 12:25:12.886080", "stderr": "", "stderr_lines": [], "stdout": " 12:25:12 up 14 days, 1:51, 1 user, load average: 0.32, 0.17, 0.11", "stdout_lines": [" 12:25:12 up 14 days, 1:51, 1 user, load average: 0.32, 0.17, 0.11"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007198", "end": "2025-12-16 12:25:14.055450", "msg": "", "rc": 0, "start": "2025-12-16 12:25:14.048252", "stderr": "", "stderr_lines": [], "stdout": " 12:25:14 up 13:47, 1 user, load average: 1.81, 1.25, 1.14", "stdout_lines": [" 12:25:14 up 13:47, 1 user, load average: 1.81, 1.25, 1.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003746", "end": "2025-12-16 12:25:13.098708", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.094962", "stderr": "", "stderr_lines": [], "stdout": " 12:25:13 up 2 days, 1:56, 1 user, load average: 0.10, 0.09, 0.04", "stdout_lines": [" 12:25:13 up 2 days, 1:56, 1 user, load average: 0.10, 0.09, 0.04"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004331", "end": "2025-12-16 12:25:13.518397", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.514066", "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.004107", "end": "2025-12-16 12:25:13.537263", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.533156", "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.004676", "end": "2025-12-16 12:25:13.545299", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.540623", "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-16 12:25:13.573159", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.568338", "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.005297", "end": "2025-12-16 12:25:13.589619", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.584322", "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.005074", "end": "2025-12-16 12:24:48.664741", "msg": "", "rc": 0, "start": "2025-12-16 12:24:48.659667", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005089", "end": "2025-12-16 12:24:42.574424", "msg": "", "rc": 0, "start": "2025-12-16 12:24:42.569335", "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.010653", "end": "2025-12-16 12:25:14.248106", "msg": "", "rc": 0, "start": "2025-12-16 12:25:14.237453", "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.011492", "end": "2025-12-16 12:25:14.284791", "msg": "", "rc": 0, "start": "2025-12-16 12:25:14.273299", "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.005613", "end": "2025-12-16 12:25:14.486171", "msg": "", "rc": 0, "start": "2025-12-16 12:25:14.480558", "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.005268", "end": "2025-12-16 12:24:45.758968", "msg": "", "rc": 0, "start": "2025-12-16 12:24:45.753700", "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.005283", "end": "2025-12-16 12:24:52.012864", "msg": "", "rc": 0, "start": "2025-12-16 12:24:52.007581", "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.005748", "end": "2025-12-16 09:25:14.753237", "msg": "", "rc": 0, "start": "2025-12-16 09:25:14.747489", "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.005364", "end": "2025-12-16 12:25:14.904399", "msg": "", "rc": 0, "start": "2025-12-16 12:25:14.899035", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018201", "end": "2025-12-16 12:25:15.534590", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.516389", "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.025142", "end": "2025-12-16 12:25:14.898291", "msg": "", "rc": 0, "start": "2025-12-16 12:25:14.873149", "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.004226", "end": "2025-12-16 12:25:15.427951", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.423725", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.004165", "end": "2025-12-16 12:25:15.439447", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.435282", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004705", "end": "2025-12-16 12:25:15.452878", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.448173", "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.004863", "end": "2025-12-16 12:25:15.474738", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.469875", "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.005351", "end": "2025-12-16 12:25:15.482823", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.477472", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.003554", "end": "2025-12-16 12:24:50.562781", "msg": "", "rc": 0, "start": "2025-12-16 12:24:50.559227", "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.004384", "end": "2025-12-16 12:24:44.468932", "msg": "", "rc": 0, "start": "2025-12-16 12:24:44.464548", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011070", "end": "2025-12-16 12:25:16.105694", "msg": "", "rc": 0, "start": "2025-12-16 12:25:16.094624", "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.012084", "end": "2025-12-16 12:25:16.140401", "msg": "", "rc": 0, "start": "2025-12-16 12:25:16.128317", "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.005824", "end": "2025-12-16 12:25:16.365923", "msg": "", "rc": 0, "start": "2025-12-16 12:25:16.360099", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004317", "end": "2025-12-16 12:24:47.628569", "msg": "", "rc": 0, "start": "2025-12-16 12:24:47.624252", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.004118", "end": "2025-12-16 12:24:53.858703", "msg": "", "rc": 0, "start": "2025-12-16 12:24:53.854585", "stderr": "", "stderr_lines": [], "stdout": "50.8%", "stdout_lines": ["50.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.005043", "end": "2025-12-16 09:25:16.600798", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:25:16.595755", "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.005318", "end": "2025-12-16 12:25:16.788438", "msg": "", "rc": 0, "start": "2025-12-16 12:25:16.783120", "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.008679", "end": "2025-12-16 12:25:16.927678", "msg": "", "rc": 0, "start": "2025-12-16 12:25:16.918999", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025480", "end": "2025-12-16 12:25:16.818489", "msg": "", "rc": 0, "start": "2025-12-16 12:25:16.793009", "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.005313", "end": "2025-12-16 12:25:17.346656", "msg": "", "rc": 0, "start": "2025-12-16 12:25:17.341343", "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.005645", "end": "2025-12-16 12:25:17.360717", "msg": "", "rc": 0, "start": "2025-12-16 12:25:17.355072", "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.004862", "end": "2025-12-16 12:25:17.360399", "msg": "", "rc": 0, "start": "2025-12-16 12:25:17.355537", "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.003344", "end": "2025-12-16 12:25:17.385624", "msg": "", "rc": 0, "start": "2025-12-16 12:25:17.382280", "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.006630", "end": "2025-12-16 12:25:17.393850", "msg": "", "rc": 0, "start": "2025-12-16 12:25:17.387220", "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.002717", "end": "2025-12-16 12:24:52.487235", "msg": "", "rc": 0, "start": "2025-12-16 12:24:52.484518", "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.002946", "end": "2025-12-16 12:24:46.381549", "msg": "", "rc": 0, "start": "2025-12-16 12:24:46.378603", "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.012244", "end": "2025-12-16 12:25:18.028448", "msg": "", "rc": 0, "start": "2025-12-16 12:25:18.016204", "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-16 12:25:18.058284", "msg": "", "rc": 0, "start": "2025-12-16 12:25:18.045302", "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.003534", "end": "2025-12-16 12:25:18.308532", "msg": "", "rc": 0, "start": "2025-12-16 12:25:18.304998", "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.002967", "end": "2025-12-16 12:24:49.558827", "msg": "", "rc": 0, "start": "2025-12-16 12:24:49.555860", "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.002526", "end": "2025-12-16 12:24:55.785114", "msg": "", "rc": 0, "start": "2025-12-16 12:24:55.782588", "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.003884", "end": "2025-12-16 09:25:18.530181", "msg": "", "rc": 0, "start": "2025-12-16 09:25:18.526297", "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.002951", "end": "2025-12-16 12:25:18.743214", "msg": "", "rc": 0, "start": "2025-12-16 12:25:18.740263", "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.004422", "end": "2025-12-16 12:25:18.900286", "msg": "", "rc": 0, "start": "2025-12-16 12:25:18.895864", "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.029176", "end": "2025-12-16 12:25:18.741758", "msg": "", "rc": 0, "start": "2025-12-16 12:25:18.712582", "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.004547", "end": "2025-12-16 12:25:19.265020", "msg": "", "rc": 0, "start": "2025-12-16 12:25:19.260473", "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.003975", "end": "2025-12-16 12:25:19.280587", "msg": "", "rc": 0, "start": "2025-12-16 12:25:19.276612", "stderr": "", "stderr_lines": [], "stdout": "1.11", "stdout_lines": ["1.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.004657", "end": "2025-12-16 12:25:19.285381", "msg": "", "rc": 0, "start": "2025-12-16 12:25:19.280724", "stderr": "", "stderr_lines": [], "stdout": "0.87", "stdout_lines": ["0.87"]}
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.004940", "end": "2025-12-16 12:25:19.303945", "msg": "", "rc": 0, "start": "2025-12-16 12:25:19.299005", "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.006593", "end": "2025-12-16 12:25:19.325014", "msg": "", "rc": 0, "start": "2025-12-16 12:25:19.318421", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
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.004449", "end": "2025-12-16 12:24:54.419718", "msg": "", "rc": 0, "start": "2025-12-16 12:24:54.415269", "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.004973", "end": "2025-12-16 12:24:48.336642", "msg": "", "rc": 0, "start": "2025-12-16 12:24:48.331669", "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.010143", "end": "2025-12-16 12:25:20.050481", "msg": "", "rc": 0, "start": "2025-12-16 12:25:20.040338", "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.011183", "end": "2025-12-16 12:25:20.067799", "msg": "", "rc": 0, "start": "2025-12-16 12:25:20.056616", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
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.005612", "end": "2025-12-16 12:25:20.245751", "msg": "", "rc": 0, "start": "2025-12-16 12:25:20.240139", "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.004956", "end": "2025-12-16 12:24:51.499043", "msg": "", "rc": 0, "start": "2025-12-16 12:24:51.494087", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.006421", "end": "2025-12-16 09:25:20.535268", "msg": "", "rc": 0, "start": "2025-12-16 09:25:20.528847", "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.004235", "end": "2025-12-16 12:24:57.813755", "msg": "", "rc": 0, "start": "2025-12-16 12:24:57.809520", "stderr": "", "stderr_lines": [], "stdout": "0.44", "stdout_lines": ["0.44"]}
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.005244", "end": "2025-12-16 12:25:20.677343", "msg": "", "rc": 0, "start": "2025-12-16 12:25:20.672099", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
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.008221", "end": "2025-12-16 12:25:20.903988", "msg": "", "rc": 0, "start": "2025-12-16 12:25:20.895767", "stderr": "", "stderr_lines": [], "stdout": "1.83", "stdout_lines": ["1.83"]}
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.024574", "end": "2025-12-16 12:25:20.669720", "msg": "", "rc": 0, "start": "2025-12-16 12:25:20.645146", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:11 up 20 days, 23:16, 1 user, load average: 0.32, 0.35, 0.45\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.27\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:11 up 2 days, 1:57, 1 user, load average: 1.12, 0.45, 0.27\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 1.11\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:11 up 20 days, 23:36, 1 user, load average: 0.94, 0.76, 0.74\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.87\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:11 up 21 days, 49 min, 1 user, load average: 0.59, 0.65, 0.64\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 0.54\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:11 up 21 days, 1:35, 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: 12:25:12 up 14 days, 1:51, 1 user, load average: 0.32, 0.17, 0.11\nDisk Usage: 21%\nMemory Usage: 19.8%\nCPU Load: 0.50\nCPU Temp: 36.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:12 up 193 days, 3:58, 1 user, load average: 0.10, 0.22, 0.20\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.09\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:12 up 193 days, 3:58, 1 user, load average: 0.03, 0.08, 0.11\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.11\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:24:46 up 10 days, 14 min, 0 user, load average: 0.01, 0.11, 0.15\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:24:41 up 16 days, 20:26, 0 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:12 up 2 days, 1:56, 1 user, load average: 0.08, 0.02, 0.01\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:24:43 up 19 days, 15:19, 0 user, load average: 0.42, 0.42, 0.45\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.47\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:24:50 up 16 days, 1:40, 0 user, load average: 0.47, 0.52, 0.47\nDisk Usage: 75%\nMemory Usage: 50.8%\nCPU Load: 0.44\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:25AM up 20 days, 23:15, 1 user, load averages: 0.34, 0.22, 0.18\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: 12:25:13 up 2 days, 1:56, 1 user, load average: 0.10, 0.09, 0.04\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25:14 up 13:47, 1 user, load average: 1.81, 1.25, 1.14\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.83\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-16T17:25:21.819338+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `0bc28b8d29c24ee8b44ca0b8b7ecc5d5` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:30:00.001000+00:00 |
| **Fin** | 2025-12-16T17:30:21.988563+00:00 |
| **Durée** | 22.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: [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: [hp.truenas.home] => {"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: [hp2.i7.home]
ok: [hp.nas.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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003083", "end": "2025-12-16 12:30:11.114155", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.111072", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 20 days, 23:21, 1 user, load average: 0.20, 0.30, 0.41", "stdout_lines": [" 12:30:11 up 20 days, 23:21, 1 user, load average: 0.20, 0.30, 0.41"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003481", "end": "2025-12-16 12:30:11.132352", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.128871", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 21 days, 1:40, 1 user, load average: 0.06, 0.03, 0.00", "stdout_lines": [" 12:30:11 up 21 days, 1:40, 1 user, load average: 0.06, 0.03, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002947", "end": "2025-12-16 12:30:11.155499", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.152552", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 2 days, 2:02, 1 user, load average: 0.16, 0.29, 0.25", "stdout_lines": [" 12:30:11 up 2 days, 2:02, 1 user, load average: 0.16, 0.29, 0.25"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008339", "end": "2025-12-16 12:30:11.827368", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.819029", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 193 days, 4:03, 1 user, load average: 0.06, 0.10, 0.10", "stdout_lines": [" 12:30:11 up 193 days, 4:03, 1 user, load average: 0.06, 0.10, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009379", "end": "2025-12-16 12:30:11.877789", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.868410", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 193 days, 4:03, 1 user, load average: 0.19, 0.21, 0.19", "stdout_lines": [" 12:30:11 up 193 days, 4:03, 1 user, load average: 0.19, 0.21, 0.19"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003808", "end": "2025-12-16 12:30:12.123521", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.119713", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 20 days, 23:41, 1 user, load average: 0.64, 0.66, 0.70", "stdout_lines": [" 12:30:11 up 20 days, 23:41, 1 user, load average: 0.64, 0.66, 0.70"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004845", "end": "2025-12-16 12:30:12.145508", "msg": "", "rc": 0, "start": "2025-12-16 12:30:11.140663", "stderr": "", "stderr_lines": [], "stdout": " 12:30:11 up 21 days, 54 min, 1 user, load average: 0.80, 0.62, 0.62", "stdout_lines": [" 12:30:11 up 21 days, 54 min, 1 user, load average: 0.80, 0.62, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002848", "end": "2025-12-16 12:29:46.955120", "msg": "", "rc": 0, "start": "2025-12-16 12:29:46.952272", "stderr": "", "stderr_lines": [], "stdout": " 12:29:46 up 10 days, 19 min, 0 user, load average: 0.37, 0.18, 0.16", "stdout_lines": [" 12:29:46 up 10 days, 19 min, 0 user, load average: 0.37, 0.18, 0.16"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003508", "end": "2025-12-16 12:29:40.916315", "msg": "", "rc": 0, "start": "2025-12-16 12:29:40.912807", "stderr": "", "stderr_lines": [], "stdout": " 12:29:40 up 16 days, 20:31, 0 user, load average: 0.07, 0.07, 0.01", "stdout_lines": [" 12:29:40 up 16 days, 20:31, 0 user, load average: 0.07, 0.07, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004692", "end": "2025-12-16 12:30:12.553329", "msg": "", "rc": 0, "start": "2025-12-16 12:30:12.548637", "stderr": "", "stderr_lines": [], "stdout": " 12:30:12 up 2 days, 2:01, 1 user, load average: 0.19, 0.13, 0.04", "stdout_lines": [" 12:30:12 up 2 days, 2:01, 1 user, load average: 0.19, 0.13, 0.04"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019481", "end": "2025-12-16 12:30:12.516716", "msg": "", "rc": 0, "start": "2025-12-16 12:30:12.497235", "stderr": "", "stderr_lines": [], "stdout": " 12:30:12 up 14 days, 1:56, 1 user, load average: 0.13, 0.14, 0.10", "stdout_lines": [" 12:30:12 up 14 days, 1:56, 1 user, load average: 0.13, 0.14, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003170", "end": "2025-12-16 12:29:43.765682", "msg": "", "rc": 0, "start": "2025-12-16 12:29:43.762512", "stderr": "", "stderr_lines": [], "stdout": " 12:29:43 up 19 days, 15:24, 0 user, load average: 0.40, 0.44, 0.45", "stdout_lines": [" 12:29:43 up 19 days, 15:24, 0 user, load average: 0.40, 0.44, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003400", "end": "2025-12-16 12:29:50.050489", "msg": "", "rc": 0, "start": "2025-12-16 12:29:50.047089", "stderr": "", "stderr_lines": [], "stdout": " 12:29:50 up 16 days, 1:45, 0 user, load average: 0.25, 0.34, 0.39", "stdout_lines": [" 12:29:50 up 16 days, 1:45, 0 user, load average: 0.25, 0.34, 0.39"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004068", "end": "2025-12-16 09:30:12.882952", "msg": "", "rc": 0, "start": "2025-12-16 09:30:12.878884", "stderr": "", "stderr_lines": [], "stdout": " 9:30AM up 20 days, 23:20, 1 user, load averages: 0.31, 0.22, 0.17", "stdout_lines": [" 9:30AM up 20 days, 23:20, 1 user, load averages: 0.31, 0.22, 0.17"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008268", "end": "2025-12-16 12:30:13.253078", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.244810", "stderr": "", "stderr_lines": [], "stdout": " 12:30:13 up 13:52, 1 user, load average: 1.15, 1.14, 1.11", "stdout_lines": [" 12:30:13 up 13:52, 1 user, load average: 1.15, 1.14, 1.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003685", "end": "2025-12-16 12:30:12.982580", "msg": "", "rc": 0, "start": "2025-12-16 12:30:12.978895", "stderr": "", "stderr_lines": [], "stdout": " 12:30:12 up 2 days, 2:01, 1 user, load average: 0.00, 0.02, 0.01", "stdout_lines": [" 12:30:12 up 2 days, 2:01, 1 user, load average: 0.00, 0.02, 0.01"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004771", "end": "2025-12-16 12:30:13.396755", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.391984", "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.004068", "end": "2025-12-16 12:30:13.429102", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.425034", "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.004558", "end": "2025-12-16 12:30:13.430972", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.426414", "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.005588", "end": "2025-12-16 12:30:13.460746", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.455158", "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.004732", "end": "2025-12-16 12:30:13.460107", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.455375", "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.004806", "end": "2025-12-16 12:29:48.555280", "msg": "", "rc": 0, "start": "2025-12-16 12:29:48.550474", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005465", "end": "2025-12-16 12:29:42.485529", "msg": "", "rc": 0, "start": "2025-12-16 12:29:42.480064", "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.010364", "end": "2025-12-16 12:30:14.185553", "msg": "", "rc": 0, "start": "2025-12-16 12:30:14.175189", "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.011656", "end": "2025-12-16 12:30:14.213089", "msg": "", "rc": 0, "start": "2025-12-16 12:30:14.201433", "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.005723", "end": "2025-12-16 12:30:14.370024", "msg": "", "rc": 0, "start": "2025-12-16 12:30:14.364301", "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.011284", "end": "2025-12-16 12:29:45.659864", "msg": "", "rc": 0, "start": "2025-12-16 12:29:45.648580", "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.004963", "end": "2025-12-16 12:29:51.929566", "msg": "", "rc": 0, "start": "2025-12-16 12:29:51.924603", "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.005610", "end": "2025-12-16 09:30:14.678893", "msg": "", "rc": 0, "start": "2025-12-16 09:30:14.673283", "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.005248", "end": "2025-12-16 12:30:14.788657", "msg": "", "rc": 0, "start": "2025-12-16 12:30:14.783409", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019501", "end": "2025-12-16 12:30:15.255120", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.235619", "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.025323", "end": "2025-12-16 12:30:14.787974", "msg": "", "rc": 0, "start": "2025-12-16 12:30:14.762651", "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.004370", "end": "2025-12-16 12:30:15.305290", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.300920", "stderr": "", "stderr_lines": [], "stdout": "87.6%", "stdout_lines": ["87.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.004286", "end": "2025-12-16 12:30:15.322312", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.318026", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004955", "end": "2025-12-16 12:30:15.343998", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.339043", "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.004963", "end": "2025-12-16 12:30:15.371337", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.366374", "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.005359", "end": "2025-12-16 12:30:15.370215", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.364856", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004334", "end": "2025-12-16 12:29:50.465198", "msg": "", "rc": 0, "start": "2025-12-16 12:29:50.460864", "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.004568", "end": "2025-12-16 12:29:44.370607", "msg": "", "rc": 0, "start": "2025-12-16 12:29:44.366039", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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-16 12:30:16.010090", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.999226", "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.011894", "end": "2025-12-16 12:30:16.032270", "msg": "", "rc": 0, "start": "2025-12-16 12:30:16.020376", "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.005788", "end": "2025-12-16 12:30:16.291117", "msg": "", "rc": 0, "start": "2025-12-16 12:30:16.285329", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.004592", "end": "2025-12-16 12:29:47.558977", "msg": "", "rc": 0, "start": "2025-12-16 12:29:47.554385", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.003829", "end": "2025-12-16 12:29:53.757669", "msg": "", "rc": 0, "start": "2025-12-16 12:29:53.753840", "stderr": "", "stderr_lines": [], "stdout": "52.0%", "stdout_lines": ["52.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.005200", "end": "2025-12-16 09:30:16.500965", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:30:16.495765", "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.005393", "end": "2025-12-16 12:30:16.715850", "msg": "", "rc": 0, "start": "2025-12-16 12:30:16.710457", "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.009505", "end": "2025-12-16 12:30:17.231646", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.222141", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.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.025979", "end": "2025-12-16 12:30:16.693556", "msg": "", "rc": 0, "start": "2025-12-16 12:30:16.667577", "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.005120", "end": "2025-12-16 12:30:17.212891", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.207771", "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.005873", "end": "2025-12-16 12:30:17.232253", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.226380", "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.004804", "end": "2025-12-16 12:30:17.232922", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.228118", "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.003113", "end": "2025-12-16 12:30:17.265581", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.262468", "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.007851", "end": "2025-12-16 12:30:17.281664", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.273813", "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.002516", "end": "2025-12-16 12:29:52.349632", "msg": "", "rc": 0, "start": "2025-12-16 12:29:52.347116", "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.003288", "end": "2025-12-16 12:29:46.256585", "msg": "", "rc": 0, "start": "2025-12-16 12:29:46.253297", "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.011983", "end": "2025-12-16 12:30:17.891085", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.879102", "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.012970", "end": "2025-12-16 12:30:17.925221", "msg": "", "rc": 0, "start": "2025-12-16 12:30:17.912251", "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.003190", "end": "2025-12-16 12:30:18.169253", "msg": "", "rc": 0, "start": "2025-12-16 12:30:18.166063", "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.002916", "end": "2025-12-16 12:29:49.424377", "msg": "", "rc": 0, "start": "2025-12-16 12:29:49.421461", "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.002944", "end": "2025-12-16 12:29:55.637829", "msg": "", "rc": 0, "start": "2025-12-16 12:29:55.634885", "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.004312", "end": "2025-12-16 09:30:18.394249", "msg": "", "rc": 0, "start": "2025-12-16 09:30:18.389937", "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.002975", "end": "2025-12-16 12:30:18.587771", "msg": "", "rc": 0, "start": "2025-12-16 12:30:18.584796", "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.004058", "end": "2025-12-16 12:30:19.123932", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.119874", "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.028447", "end": "2025-12-16 12:30:18.590714", "msg": "", "rc": 0, "start": "2025-12-16 12:30:18.562267", "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.004290", "end": "2025-12-16 12:30:19.121555", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.117265", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004212", "end": "2025-12-16 12:30:19.127989", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.123777", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004537", "end": "2025-12-16 12:30:19.148728", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.144191", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
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.004696", "end": "2025-12-16 12:30:19.165819", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.161123", "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.005381", "end": "2025-12-16 12:30:19.181975", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.176594", "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.004380", "end": "2025-12-16 12:29:54.257066", "msg": "", "rc": 0, "start": "2025-12-16 12:29:54.252686", "stderr": "", "stderr_lines": [], "stdout": "0.69", "stdout_lines": ["0.69"]}
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.004936", "end": "2025-12-16 12:29:48.155792", "msg": "", "rc": 0, "start": "2025-12-16 12:29:48.150856", "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.010138", "end": "2025-12-16 12:30:19.890024", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.879886", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.011984", "end": "2025-12-16 12:30:19.912390", "msg": "", "rc": 0, "start": "2025-12-16 12:30:19.900406", "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.005632", "end": "2025-12-16 12:30:20.076211", "msg": "", "rc": 0, "start": "2025-12-16 12:30:20.070579", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005098", "end": "2025-12-16 12:29:51.320690", "msg": "", "rc": 0, "start": "2025-12-16 12:29:51.315592", "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.006008", "end": "2025-12-16 09:30:20.381981", "msg": "", "rc": 0, "start": "2025-12-16 09:30:20.375973", "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.004093", "end": "2025-12-16 12:29:57.665779", "msg": "", "rc": 0, "start": "2025-12-16 12:29:57.661686", "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.006593", "end": "2025-12-16 12:30:21.062694", "msg": "", "rc": 0, "start": "2025-12-16 12:30:21.056101", "stderr": "", "stderr_lines": [], "stdout": "1.22", "stdout_lines": ["1.22"]}
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.005256", "end": "2025-12-16 12:30:20.497851", "msg": "", "rc": 0, "start": "2025-12-16 12:30:20.492595", "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.024289", "end": "2025-12-16 12:30:20.502175", "msg": "", "rc": 0, "start": "2025-12-16 12:30:20.477886", "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: 12:30:11 up 20 days, 23:21, 1 user, load average: 0.20, 0.30, 0.41\nDisk Usage: 23%\nMemory Usage: 87.6%\nCPU Load: 0.65\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:11 up 2 days, 2:02, 1 user, load average: 0.16, 0.29, 0.25\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.31\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:11 up 20 days, 23:41, 1 user, load average: 0.64, 0.66, 0.70\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.54\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:11 up 21 days, 54 min, 1 user, load average: 0.80, 0.62, 0.62\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.82\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:11 up 21 days, 1:40, 1 user, load average: 0.06, 0.03, 0.00\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: 12:30:12 up 14 days, 1:56, 1 user, load average: 0.13, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.20\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:11 up 193 days, 4:03, 1 user, load average: 0.19, 0.21, 0.19\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.18\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:11 up 193 days, 4:03, 1 user, load average: 0.06, 0.10, 0.10\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.06\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:29:46 up 10 days, 19 min, 0 user, load average: 0.37, 0.18, 0.16\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.69\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:29:40 up 16 days, 20:31, 0 user, load average: 0.07, 0.07, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:12 up 2 days, 2:01, 1 user, load average: 0.19, 0.13, 0.04\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:29:43 up 19 days, 15:24, 0 user, load average: 0.40, 0.44, 0.45\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:29:50 up 16 days, 1:45, 0 user, load average: 0.25, 0.34, 0.39\nDisk Usage: 75%\nMemory Usage: 52.0%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:30AM up 20 days, 23:20, 1 user, load averages: 0.31, 0.22, 0.17\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: 12:30:12 up 2 days, 2:01, 1 user, load average: 0.00, 0.02, 0.01\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30:13 up 13:52, 1 user, load average: 1.15, 1.14, 1.11\nDisk Usage: 1%\nMemory Usage: 20.1%\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-16T17:30:22.027750+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `ed7466be19e14955815726e4a4ed5bf9` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:35:00.003594+00:00 |
| **Fin** | 2025-12-16T17:35:23.096109+00:00 |
| **Durée** | 23.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: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.003530", "end": "2025-12-16 12:35:12.130418", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.126888", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 21 days, 1:45, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 12:35:12 up 21 days, 1:45, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003210", "end": "2025-12-16 12:35:12.135338", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.132128", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 20 days, 23:46, 1 user, load average: 0.45, 0.57, 0.64", "stdout_lines": [" 12:35:12 up 20 days, 23:46, 1 user, load average: 0.45, 0.57, 0.64"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003722", "end": "2025-12-16 12:35:12.147088", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.143366", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 21 days, 59 min, 1 user, load average: 0.70, 0.65, 0.64", "stdout_lines": [" 12:35:12 up 21 days, 59 min, 1 user, load average: 0.70, 0.65, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002931", "end": "2025-12-16 12:35:12.159766", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.156835", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 2 days, 2:07, 1 user, load average: 0.07, 0.13, 0.18", "stdout_lines": [" 12:35:12 up 2 days, 2:07, 1 user, load average: 0.07, 0.13, 0.18"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002734", "end": "2025-12-16 12:34:47.234547", "msg": "", "rc": 0, "start": "2025-12-16 12:34:47.231813", "stderr": "", "stderr_lines": [], "stdout": " 12:34:47 up 10 days, 24 min, 0 user, load average: 0.28, 0.22, 0.18", "stdout_lines": [" 12:34:47 up 10 days, 24 min, 0 user, load average: 0.28, 0.22, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008537", "end": "2025-12-16 12:35:12.794650", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.786113", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 193 days, 4:08, 1 user, load average: 0.07, 0.09, 0.09", "stdout_lines": [" 12:35:12 up 193 days, 4:08, 1 user, load average: 0.07, 0.09, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009428", "end": "2025-12-16 12:35:12.838541", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.829113", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 193 days, 4:08, 1 user, load average: 0.24, 0.21, 0.18", "stdout_lines": [" 12:35:12 up 193 days, 4:08, 1 user, load average: 0.24, 0.21, 0.18"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003378", "end": "2025-12-16 12:35:13.118998", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.115620", "stderr": "", "stderr_lines": [], "stdout": " 12:35:12 up 20 days, 23:26, 1 user, load average: 0.50, 0.38, 0.42", "stdout_lines": [" 12:35:12 up 20 days, 23:26, 1 user, load average: 0.50, 0.38, 0.42"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003275", "end": "2025-12-16 12:34:41.559661", "msg": "", "rc": 0, "start": "2025-12-16 12:34:41.556386", "stderr": "", "stderr_lines": [], "stdout": " 12:34:41 up 16 days, 20:36, 0 user, load average: 0.01, 0.04, 0.00", "stdout_lines": [" 12:34:41 up 16 days, 20:36, 0 user, load average: 0.01, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004715", "end": "2025-12-16 12:35:13.288281", "msg": "", "rc": 0, "start": "2025-12-16 12:35:13.283566", "stderr": "", "stderr_lines": [], "stdout": " 12:35:13 up 2 days, 2:06, 1 user, load average: 0.01, 0.06, 0.03", "stdout_lines": [" 12:35:13 up 2 days, 2:06, 1 user, load average: 0.01, 0.06, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003634", "end": "2025-12-16 12:34:44.501825", "msg": "", "rc": 0, "start": "2025-12-16 12:34:44.498191", "stderr": "", "stderr_lines": [], "stdout": " 12:34:44 up 19 days, 15:29, 0 user, load average: 0.48, 0.44, 0.45", "stdout_lines": [" 12:34:44 up 19 days, 15:29, 0 user, load average: 0.48, 0.44, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004501", "end": "2025-12-16 09:35:13.562600", "msg": "", "rc": 0, "start": "2025-12-16 09:35:13.558099", "stderr": "", "stderr_lines": [], "stdout": " 9:35AM up 20 days, 23:25, 1 user, load averages: 0.19, 0.18, 0.16", "stdout_lines": [" 9:35AM up 20 days, 23:25, 1 user, load averages: 0.19, 0.18, 0.16"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002766", "end": "2025-12-16 12:34:50.840189", "msg": "", "rc": 0, "start": "2025-12-16 12:34:50.837423", "stderr": "", "stderr_lines": [], "stdout": " 12:34:50 up 16 days, 1:50, 0 user, load average: 0.25, 0.27, 0.34", "stdout_lines": [" 12:34:50 up 16 days, 1:50, 0 user, load average: 0.25, 0.27, 0.34"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019513", "end": "2025-12-16 12:35:13.507325", "msg": "", "rc": 0, "start": "2025-12-16 12:35:13.487812", "stderr": "", "stderr_lines": [], "stdout": " 12:35:13 up 14 days, 2:01, 1 user, load average: 0.18, 0.13, 0.10", "stdout_lines": [" 12:35:13 up 14 days, 2:01, 1 user, load average: 0.18, 0.13, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007295", "end": "2025-12-16 12:35:14.388415", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.381120", "stderr": "", "stderr_lines": [], "stdout": " 12:35:14 up 13:57, 1 user, load average: 1.34, 1.18, 1.12", "stdout_lines": [" 12:35:14 up 13:57, 1 user, load average: 1.34, 1.18, 1.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003722", "end": "2025-12-16 12:35:13.702810", "msg": "", "rc": 0, "start": "2025-12-16 12:35:13.699088", "stderr": "", "stderr_lines": [], "stdout": " 12:35:13 up 2 days, 2:06, 1 user, load average: 0.16, 0.04, 0.01", "stdout_lines": [" 12:35:13 up 2 days, 2:06, 1 user, load average: 0.16, 0.04, 0.01"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004436", "end": "2025-12-16 12:35:14.105408", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.100972", "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.004827", "end": "2025-12-16 12:35:14.117439", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.112612", "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.004125", "end": "2025-12-16 12:35:14.122074", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.117949", "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.004724", "end": "2025-12-16 12:35:14.158027", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.153303", "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.005586", "end": "2025-12-16 12:35:14.170281", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.164695", "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.005430", "end": "2025-12-16 12:34:49.246310", "msg": "", "rc": 0, "start": "2025-12-16 12:34:49.240880", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005500", "end": "2025-12-16 12:34:43.150929", "msg": "", "rc": 0, "start": "2025-12-16 12:34:43.145429", "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.010492", "end": "2025-12-16 12:35:14.840611", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.830119", "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.011586", "end": "2025-12-16 12:35:14.883151", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.871565", "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.005690", "end": "2025-12-16 12:35:15.080238", "msg": "", "rc": 0, "start": "2025-12-16 12:35:15.074548", "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.005169", "end": "2025-12-16 12:34:46.334959", "msg": "", "rc": 0, "start": "2025-12-16 12:34:46.329790", "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.005070", "end": "2025-12-16 12:34:52.594544", "msg": "", "rc": 0, "start": "2025-12-16 12:34:52.589474", "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.005839", "end": "2025-12-16 09:35:15.344106", "msg": "", "rc": 0, "start": "2025-12-16 09:35:15.338267", "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.005460", "end": "2025-12-16 12:35:15.492464", "msg": "", "rc": 0, "start": "2025-12-16 12:35:15.487004", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020246", "end": "2025-12-16 12:35:16.363509", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.343263", "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.025457", "end": "2025-12-16 12:35:15.502019", "msg": "", "rc": 0, "start": "2025-12-16 12:35:15.476562", "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.004488", "end": "2025-12-16 12:35:16.034845", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.030357", "stderr": "", "stderr_lines": [], "stdout": "87.6%", "stdout_lines": ["87.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.004303", "end": "2025-12-16 12:35:16.041229", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.036926", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004689", "end": "2025-12-16 12:35:16.048487", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.043798", "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.004986", "end": "2025-12-16 12:35:16.074455", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.069469", "stderr": "", "stderr_lines": [], "stdout": "9.1%", "stdout_lines": ["9.1%"]}
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.005785", "end": "2025-12-16 12:35:16.086352", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.080567", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.003836", "end": "2025-12-16 12:34:51.161029", "msg": "", "rc": 0, "start": "2025-12-16 12:34:51.157193", "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.004469", "end": "2025-12-16 12:34:45.067509", "msg": "", "rc": 0, "start": "2025-12-16 12:34:45.063040", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.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.011851", "end": "2025-12-16 12:35:16.768676", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.756825", "stderr": "", "stderr_lines": [], "stdout": "13.3%", "stdout_lines": ["13.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-16 12:35:16.981610", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.975819", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.010971", "end": "2025-12-16 12:35:16.951227", "msg": "", "rc": 0, "start": "2025-12-16 12:35:16.940256", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.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.003878", "end": "2025-12-16 12:34:48.251597", "msg": "", "rc": 0, "start": "2025-12-16 12:34:48.247719", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003860", "end": "2025-12-16 12:34:54.524672", "msg": "", "rc": 0, "start": "2025-12-16 12:34:54.520812", "stderr": "", "stderr_lines": [], "stdout": "51.7%", "stdout_lines": ["51.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.005277", "end": "2025-12-16 09:35:17.392852", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:35:17.387575", "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.005387", "end": "2025-12-16 12:35:17.413497", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.408110", "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.008249", "end": "2025-12-16 12:35:18.283369", "msg": "", "rc": 0, "start": "2025-12-16 12:35:18.275120", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025623", "end": "2025-12-16 12:35:17.418394", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.392771", "stderr": "", "stderr_lines": [], "stdout": "19.7%", "stdout_lines": ["19.7%"]}
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.005178", "end": "2025-12-16 12:35:17.946271", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.941093", "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.005766", "end": "2025-12-16 12:35:17.976861", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.971095", "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.004955", "end": "2025-12-16 12:35:17.976946", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.971991", "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.003186", "end": "2025-12-16 12:35:17.987455", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.984269", "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.006673", "end": "2025-12-16 12:35:18.002088", "msg": "", "rc": 0, "start": "2025-12-16 12:35:17.995415", "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.002513", "end": "2025-12-16 12:34:53.076820", "msg": "", "rc": 0, "start": "2025-12-16 12:34:53.074307", "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.003117", "end": "2025-12-16 12:34:46.987295", "msg": "", "rc": 0, "start": "2025-12-16 12:34:46.984178", "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.011888", "end": "2025-12-16 12:35:18.639889", "msg": "", "rc": 0, "start": "2025-12-16 12:35:18.628001", "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.013082", "end": "2025-12-16 12:35:18.676738", "msg": "", "rc": 0, "start": "2025-12-16 12:35:18.663656", "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.003307", "end": "2025-12-16 12:35:18.896537", "msg": "", "rc": 0, "start": "2025-12-16 12:35:18.893230", "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.002636", "end": "2025-12-16 12:34:50.160360", "msg": "", "rc": 0, "start": "2025-12-16 12:34:50.157724", "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.002663", "end": "2025-12-16 12:34:56.383504", "msg": "", "rc": 0, "start": "2025-12-16 12:34:56.380841", "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.004149", "end": "2025-12-16 09:35:19.142522", "msg": "", "rc": 0, "start": "2025-12-16 09:35:19.138373", "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.002982", "end": "2025-12-16 12:35:19.308189", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.305207", "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.004143", "end": "2025-12-16 12:35:20.231723", "msg": "", "rc": 0, "start": "2025-12-16 12:35:20.227580", "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.028876", "end": "2025-12-16 12:35:19.339503", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.310627", "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.004277", "end": "2025-12-16 12:35:19.860513", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.856236", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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.004864", "end": "2025-12-16 12:35:19.877438", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.872574", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.004073", "end": "2025-12-16 12:35:19.881526", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.877453", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005787", "end": "2025-12-16 12:35:19.905868", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.900081", "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.005441", "end": "2025-12-16 12:35:19.919108", "msg": "", "rc": 0, "start": "2025-12-16 12:35:19.913667", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004499", "end": "2025-12-16 12:34:54.992803", "msg": "", "rc": 0, "start": "2025-12-16 12:34:54.988304", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.005154", "end": "2025-12-16 12:34:48.897920", "msg": "", "rc": 0, "start": "2025-12-16 12:34:48.892766", "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.010035", "end": "2025-12-16 12:35:20.614019", "msg": "", "rc": 0, "start": "2025-12-16 12:35:20.603984", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.011169", "end": "2025-12-16 12:35:20.666383", "msg": "", "rc": 0, "start": "2025-12-16 12:35:20.655214", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.005605", "end": "2025-12-16 12:35:20.813668", "msg": "", "rc": 0, "start": "2025-12-16 12:35:20.808063", "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.004919", "end": "2025-12-16 12:34:52.058992", "msg": "", "rc": 0, "start": "2025-12-16 12:34:52.054073", "stderr": "", "stderr_lines": [], "stdout": "0.44", "stdout_lines": ["0.44"]}
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.004262", "end": "2025-12-16 12:34:58.361119", "msg": "", "rc": 0, "start": "2025-12-16 12:34:58.356857", "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.006116", "end": "2025-12-16 09:35:21.134553", "msg": "", "rc": 0, "start": "2025-12-16 09:35:21.128437", "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.005463", "end": "2025-12-16 12:35:21.235062", "msg": "", "rc": 0, "start": "2025-12-16 12:35:21.229599", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.008243", "end": "2025-12-16 12:35:22.231227", "msg": "", "rc": 0, "start": "2025-12-16 12:35:22.222984", "stderr": "", "stderr_lines": [], "stdout": "1.39", "stdout_lines": ["1.39"]}
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.024340", "end": "2025-12-16 12:35:21.235710", "msg": "", "rc": 0, "start": "2025-12-16 12:35:21.211370", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 20 days, 23:26, 1 user, load average: 0.50, 0.38, 0.42\nDisk Usage: 23%\nMemory Usage: 87.6%\nCPU Load: 0.58\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 2 days, 2:07, 1 user, load average: 0.07, 0.13, 0.18\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.31\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 20 days, 23:46, 1 user, load average: 0.45, 0.57, 0.64\nDisk Usage: 14%\nMemory Usage: 49.0%\nCPU Load: 0.41\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 21 days, 59 min, 1 user, load average: 0.70, 0.65, 0.64\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.65\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 21 days, 1:45, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 9%\nMemory Usage: 9.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:13 up 14 days, 2:01, 1 user, load average: 0.18, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.7%\nCPU Load: 0.24\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 193 days, 4:08, 1 user, load average: 0.24, 0.21, 0.18\nDisk Usage: 6%\nMemory Usage: 13.3%\nCPU Load: 0.22\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:12 up 193 days, 4:08, 1 user, load average: 0.07, 0.09, 0.09\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.06\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:34:47 up 10 days, 24 min, 0 user, load average: 0.28, 0.22, 0.18\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:34:41 up 16 days, 20:36, 0 user, load average: 0.01, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:13 up 2 days, 2:06, 1 user, load average: 0.01, 0.06, 0.03\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:34:44 up 19 days, 15:29, 0 user, load average: 0.48, 0.44, 0.45\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.44\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:34:50 up 16 days, 1:50, 0 user, load average: 0.25, 0.27, 0.34\nDisk Usage: 75%\nMemory Usage: 51.7%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:35AM up 20 days, 23:25, 1 user, load averages: 0.19, 0.18, 0.16\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: 12:35:13 up 2 days, 2:06, 1 user, load average: 0.16, 0.04, 0.01\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35:14 up 13:57, 1 user, load average: 1.34, 1.18, 1.12\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.39\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-16T17:35:23.135015+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `cf9ba346dc3844539c98beee73e83194` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:40:00.000842+00:00 |
| **Fin** | 2025-12-16T17:40:21.731006+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: [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.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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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: [hp2.i7.home]
ok: [hp.nas.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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002940", "end": "2025-12-16 12:40:11.538325", "msg": "", "rc": 0, "start": "2025-12-16 12:40:11.535385", "stderr": "", "stderr_lines": [], "stdout": " 12:40:11 up 20 days, 23:31, 1 user, load average: 0.27, 0.30, 0.37", "stdout_lines": [" 12:40:11 up 20 days, 23:31, 1 user, load average: 0.27, 0.30, 0.37"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003988", "end": "2025-12-16 12:40:11.551676", "msg": "", "rc": 0, "start": "2025-12-16 12:40:11.547688", "stderr": "", "stderr_lines": [], "stdout": " 12:40:11 up 21 days, 1:50, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 12:40:11 up 21 days, 1:50, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003528", "end": "2025-12-16 12:40:11.549571", "msg": "", "rc": 0, "start": "2025-12-16 12:40:11.546043", "stderr": "", "stderr_lines": [], "stdout": " 12:40:11 up 20 days, 23:51, 1 user, load average: 0.92, 0.74, 0.69", "stdout_lines": [" 12:40:11 up 20 days, 23:51, 1 user, load average: 0.92, 0.74, 0.69"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002802", "end": "2025-12-16 12:40:11.580677", "msg": "", "rc": 0, "start": "2025-12-16 12:40:11.577875", "stderr": "", "stderr_lines": [], "stdout": " 12:40:11 up 2 days, 2:12, 1 user, load average: 0.04, 0.18, 0.20", "stdout_lines": [" 12:40:11 up 2 days, 2:12, 1 user, load average: 0.04, 0.18, 0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003872", "end": "2025-12-16 12:40:11.582730", "msg": "", "rc": 0, "start": "2025-12-16 12:40:11.578858", "stderr": "", "stderr_lines": [], "stdout": " 12:40:11 up 21 days, 1:04, 1 user, load average: 0.74, 0.64, 0.64", "stdout_lines": [" 12:40:11 up 21 days, 1:04, 1 user, load average: 0.74, 0.64, 0.64"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002822", "end": "2025-12-16 12:39:46.698704", "msg": "", "rc": 0, "start": "2025-12-16 12:39:46.695882", "stderr": "", "stderr_lines": [], "stdout": " 12:39:46 up 10 days, 29 min, 0 user, load average: 0.06, 0.12, 0.15", "stdout_lines": [" 12:39:46 up 10 days, 29 min, 0 user, load average: 0.06, 0.12, 0.15"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003571", "end": "2025-12-16 12:39:40.602982", "msg": "", "rc": 0, "start": "2025-12-16 12:39:40.599411", "stderr": "", "stderr_lines": [], "stdout": " 12:39:40 up 16 days, 20:41, 0 user, load average: 0.09, 0.07, 0.01", "stdout_lines": [" 12:39:40 up 16 days, 20:41, 0 user, load average: 0.09, 0.07, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008595", "end": "2025-12-16 12:40:12.223148", "msg": "", "rc": 0, "start": "2025-12-16 12:40:12.214553", "stderr": "", "stderr_lines": [], "stdout": " 12:40:12 up 193 days, 4:13, 1 user, load average: 0.33, 0.15, 0.11", "stdout_lines": [" 12:40:12 up 193 days, 4:13, 1 user, load average: 0.33, 0.15, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009384", "end": "2025-12-16 12:40:12.270378", "msg": "", "rc": 0, "start": "2025-12-16 12:40:12.260994", "stderr": "", "stderr_lines": [], "stdout": " 12:40:12 up 193 days, 4:13, 1 user, load average: 0.27, 0.19, 0.18", "stdout_lines": [" 12:40:12 up 193 days, 4:13, 1 user, load average: 0.27, 0.19, 0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005094", "end": "2025-12-16 12:40:12.513562", "msg": "", "rc": 0, "start": "2025-12-16 12:40:12.508468", "stderr": "", "stderr_lines": [], "stdout": " 12:40:12 up 2 days, 2:11, 1 user, load average: 0.38, 0.14, 0.05", "stdout_lines": [" 12:40:12 up 2 days, 2:11, 1 user, load average: 0.38, 0.14, 0.05"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002933", "end": "2025-12-16 12:39:49.962479", "msg": "", "rc": 0, "start": "2025-12-16 12:39:49.959546", "stderr": "", "stderr_lines": [], "stdout": " 12:39:49 up 16 days, 1:55, 0 user, load average: 0.17, 0.20, 0.28", "stdout_lines": [" 12:39:49 up 16 days, 1:55, 0 user, load average: 0.17, 0.20, 0.28"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003334", "end": "2025-12-16 12:39:43.791655", "msg": "", "rc": 0, "start": "2025-12-16 12:39:43.788321", "stderr": "", "stderr_lines": [], "stdout": " 12:39:43 up 19 days, 15:34, 0 user, load average: 0.82, 0.49, 0.46", "stdout_lines": [" 12:39:43 up 19 days, 15:34, 0 user, load average: 0.82, 0.49, 0.46"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004303", "end": "2025-12-16 09:40:12.730420", "msg": "", "rc": 0, "start": "2025-12-16 09:40:12.726117", "stderr": "", "stderr_lines": [], "stdout": " 9:40AM up 20 days, 23:30, 1 user, load averages: 0.32, 0.22, 0.18", "stdout_lines": [" 9:40AM up 20 days, 23:30, 1 user, load averages: 0.32, 0.22, 0.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004239", "end": "2025-12-16 12:40:12.927887", "msg": "", "rc": 0, "start": "2025-12-16 12:40:12.923648", "stderr": "", "stderr_lines": [], "stdout": " 12:40:12 up 2 days, 2:11, 1 user, load average: 0.00, 0.04, 0.01", "stdout_lines": [" 12:40:12 up 2 days, 2:11, 1 user, load average: 0.00, 0.04, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008993", "end": "2025-12-16 12:40:14.035077", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.026084", "stderr": "", "stderr_lines": [], "stdout": " 12:40:14 up 14:03, 1 user, load average: 1.54, 1.20, 1.13", "stdout_lines": [" 12:40:14 up 14:03, 1 user, load average: 1.54, 1.20, 1.13"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019459", "end": "2025-12-16 12:40:12.941217", "msg": "", "rc": 0, "start": "2025-12-16 12:40:12.921758", "stderr": "", "stderr_lines": [], "stdout": " 12:40:12 up 14 days, 2:06, 1 user, load average: 0.09, 0.11, 0.09", "stdout_lines": [" 12:40:12 up 14 days, 2:06, 1 user, load average: 0.09, 0.11, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004359", "end": "2025-12-16 12:40:13.471842", "msg": "", "rc": 0, "start": "2025-12-16 12:40:13.467483", "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.004768", "end": "2025-12-16 12:40:13.488401", "msg": "", "rc": 0, "start": "2025-12-16 12:40:13.483633", "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.004195", "end": "2025-12-16 12:40:13.489641", "msg": "", "rc": 0, "start": "2025-12-16 12:40:13.485446", "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.004858", "end": "2025-12-16 12:40:13.527387", "msg": "", "rc": 0, "start": "2025-12-16 12:40:13.522529", "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.005527", "end": "2025-12-16 12:40:13.535934", "msg": "", "rc": 0, "start": "2025-12-16 12:40:13.530407", "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.004884", "end": "2025-12-16 12:39:48.622064", "msg": "", "rc": 0, "start": "2025-12-16 12:39:48.617180", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005479", "end": "2025-12-16 12:39:42.515911", "msg": "", "rc": 0, "start": "2025-12-16 12:39:42.510432", "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.010786", "end": "2025-12-16 12:40:14.217525", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.206739", "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.011690", "end": "2025-12-16 12:40:14.243798", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.232108", "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.006541", "end": "2025-12-16 12:40:14.451761", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.445220", "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.005462", "end": "2025-12-16 12:39:45.689094", "msg": "", "rc": 0, "start": "2025-12-16 12:39:45.683632", "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.004713", "end": "2025-12-16 12:39:51.958723", "msg": "", "rc": 0, "start": "2025-12-16 12:39:51.954010", "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.005981", "end": "2025-12-16 09:40:14.718686", "msg": "", "rc": 0, "start": "2025-12-16 09:40:14.712705", "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.005423", "end": "2025-12-16 12:40:14.890430", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.885007", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019709", "end": "2025-12-16 12:40:14.988456", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.968747", "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.024802", "end": "2025-12-16 12:40:14.853087", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.828285", "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.005012", "end": "2025-12-16 12:40:15.372342", "msg": "", "rc": 0, "start": "2025-12-16 12:40:15.367330", "stderr": "", "stderr_lines": [], "stdout": "87.7%", "stdout_lines": ["87.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.004587", "end": "2025-12-16 12:40:15.380599", "msg": "", "rc": 0, "start": "2025-12-16 12:40:15.376012", "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.004173", "end": "2025-12-16 12:40:15.389882", "msg": "", "rc": 0, "start": "2025-12-16 12:40:15.385709", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004795", "end": "2025-12-16 12:40:15.415818", "msg": "", "rc": 0, "start": "2025-12-16 12:40:15.411023", "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.005672", "end": "2025-12-16 12:40:15.416248", "msg": "", "rc": 0, "start": "2025-12-16 12:40:15.410576", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004064", "end": "2025-12-16 12:39:50.536935", "msg": "", "rc": 0, "start": "2025-12-16 12:39:50.532871", "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.004256", "end": "2025-12-16 12:39:44.407890", "msg": "", "rc": 0, "start": "2025-12-16 12:39:44.403634", "stderr": "", "stderr_lines": [], "stdout": "72.7%", "stdout_lines": ["72.7%"]}
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.011178", "end": "2025-12-16 12:40:16.068036", "msg": "", "rc": 0, "start": "2025-12-16 12:40:16.056858", "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-16 12:40:16.125881", "msg": "", "rc": 0, "start": "2025-12-16 12:40:16.113831", "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.006212", "end": "2025-12-16 12:40:16.379169", "msg": "", "rc": 0, "start": "2025-12-16 12:40:16.372957", "stderr": "", "stderr_lines": [], "stdout": "35.0%", "stdout_lines": ["35.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.003914", "end": "2025-12-16 12:39:47.592135", "msg": "", "rc": 0, "start": "2025-12-16 12:39:47.588221", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003669", "end": "2025-12-16 12:39:53.818416", "msg": "", "rc": 0, "start": "2025-12-16 12:39:53.814747", "stderr": "", "stderr_lines": [], "stdout": "52.7%", "stdout_lines": ["52.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.005441", "end": "2025-12-16 09:40:16.584107", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:40:16.578666", "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.005407", "end": "2025-12-16 12:40:16.813848", "msg": "", "rc": 0, "start": "2025-12-16 12:40:16.808441", "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.008669", "end": "2025-12-16 12:40:16.950203", "msg": "", "rc": 0, "start": "2025-12-16 12:40:16.941534", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025905", "end": "2025-12-16 12:40:16.779403", "msg": "", "rc": 0, "start": "2025-12-16 12:40:16.753498", "stderr": "", "stderr_lines": [], "stdout": "20.0%", "stdout_lines": ["20.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.005183", "end": "2025-12-16 12:40:17.289120", "msg": "", "rc": 0, "start": "2025-12-16 12:40:17.283937", "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.004829", "end": "2025-12-16 12:40:17.312171", "msg": "", "rc": 0, "start": "2025-12-16 12:40:17.307342", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005484", "end": "2025-12-16 12:40:17.313438", "msg": "", "rc": 0, "start": "2025-12-16 12:40:17.307954", "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.003302", "end": "2025-12-16 12:40:17.343666", "msg": "", "rc": 0, "start": "2025-12-16 12:40:17.340364", "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.006746", "end": "2025-12-16 12:40:17.347251", "msg": "", "rc": 0, "start": "2025-12-16 12:40:17.340505", "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.002427", "end": "2025-12-16 12:39:52.439111", "msg": "", "rc": 0, "start": "2025-12-16 12:39:52.436684", "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.003190", "end": "2025-12-16 12:39:46.324598", "msg": "", "rc": 0, "start": "2025-12-16 12:39:46.321408", "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.012020", "end": "2025-12-16 12:40:17.984527", "msg": "", "rc": 0, "start": "2025-12-16 12:40:17.972507", "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.013013", "end": "2025-12-16 12:40:18.036803", "msg": "", "rc": 0, "start": "2025-12-16 12:40:18.023790", "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.003658", "end": "2025-12-16 12:40:18.257491", "msg": "", "rc": 0, "start": "2025-12-16 12:40:18.253833", "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.002961", "end": "2025-12-16 12:39:49.501010", "msg": "", "rc": 0, "start": "2025-12-16 12:39:49.498049", "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.002571", "end": "2025-12-16 12:39:55.723869", "msg": "", "rc": 0, "start": "2025-12-16 12:39:55.721298", "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.004118", "end": "2025-12-16 09:40:18.516478", "msg": "", "rc": 0, "start": "2025-12-16 09:40:18.512360", "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.003036", "end": "2025-12-16 12:40:18.673353", "msg": "", "rc": 0, "start": "2025-12-16 12:40:18.670317", "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.004158", "end": "2025-12-16 12:40:18.918820", "msg": "", "rc": 0, "start": "2025-12-16 12:40:18.914662", "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.028453", "end": "2025-12-16 12:40:18.684880", "msg": "", "rc": 0, "start": "2025-12-16 12:40:18.656427", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°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.004312", "end": "2025-12-16 12:40:19.198929", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.194617", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
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.004164", "end": "2025-12-16 12:40:19.225212", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.221048", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.004677", "end": "2025-12-16 12:40:19.235552", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.230875", "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.006033", "end": "2025-12-16 12:40:19.245555", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.239522", "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.005516", "end": "2025-12-16 12:40:19.261782", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.256266", "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.004282", "end": "2025-12-16 12:39:54.337368", "msg": "", "rc": 0, "start": "2025-12-16 12:39:54.333086", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.005053", "end": "2025-12-16 12:39:48.240217", "msg": "", "rc": 0, "start": "2025-12-16 12:39:48.235164", "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.010173", "end": "2025-12-16 12:40:19.964596", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.954423", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
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.011138", "end": "2025-12-16 12:40:20.007117", "msg": "", "rc": 0, "start": "2025-12-16 12:40:19.995979", "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.005601", "end": "2025-12-16 12:40:20.156600", "msg": "", "rc": 0, "start": "2025-12-16 12:40:20.150999", "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.005051", "end": "2025-12-16 12:39:51.399057", "msg": "", "rc": 0, "start": "2025-12-16 12:39:51.394006", "stderr": "", "stderr_lines": [], "stdout": "0.75", "stdout_lines": ["0.75"]}
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.004464", "end": "2025-12-16 12:39:57.711694", "msg": "", "rc": 0, "start": "2025-12-16 12:39:57.707230", "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.005993", "end": "2025-12-16 09:40:20.478937", "msg": "", "rc": 0, "start": "2025-12-16 09:40:20.472944", "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.005424", "end": "2025-12-16 12:40:20.580783", "msg": "", "rc": 0, "start": "2025-12-16 12:40:20.575359", "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.009175", "end": "2025-12-16 12:40:20.890549", "msg": "", "rc": 0, "start": "2025-12-16 12:40:20.881374", "stderr": "", "stderr_lines": [], "stdout": "1.82", "stdout_lines": ["1.82"]}
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.024262", "end": "2025-12-16 12:40:20.574669", "msg": "", "rc": 0, "start": "2025-12-16 12:40:20.550407", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
TASK [Display health status] ***************************************************
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:11 up 20 days, 23:51, 1 user, load average: 0.92, 0.74, 0.69\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.85\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:11 up 20 days, 23:31, 1 user, load average: 0.27, 0.30, 0.37\nDisk Usage: 23%\nMemory Usage: 87.7%\nCPU Load: 0.46\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:11 up 2 days, 2:12, 1 user, load average: 0.04, 0.18, 0.20\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.12\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:11 up 21 days, 1:04, 1 user, load average: 0.74, 0.64, 0.64\nDisk Usage: 14%\nMemory Usage: 60.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: 12:40:11 up 21 days, 1:50, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:12 up 14 days, 2:06, 1 user, load average: 0.09, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 20.0%\nCPU Load: 0.16\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:12 up 193 days, 4:13, 1 user, load average: 0.27, 0.19, 0.18\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.32\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:12 up 193 days, 4:13, 1 user, load average: 0.33, 0.15, 0.11\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.30\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:39:46 up 10 days, 29 min, 0 user, load average: 0.06, 0.12, 0.15\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:39:40 up 16 days, 20:41, 0 user, load average: 0.09, 0.07, 0.01\nDisk Usage: 24%\nMemory Usage: 72.7%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40:12 up 2 days, 2:11, 1 user, load average: 0.38, 0.14, 0.05\nDisk Usage: 1%\nMemory Usage: 35.0%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:39:43 up 19 days, 15:34, 0 user, load average: 0.82, 0.49, 0.46\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.75\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:39:49 up 16 days, 1:55, 0 user, load average: 0.17, 0.20, 0.28\nDisk Usage: 75%\nMemory Usage: 52.7%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:40AM up 20 days, 23:30, 1 user, load averages: 0.32, 0.22, 0.18\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: 12:40:12 up 2 days, 2:11, 1 user, load average: 0.00, 0.04, 0.01\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: 12:40:14 up 14:03, 1 user, load average: 1.54, 1.20, 1.13\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.82\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-16T17:40:21.769390+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `3087f5e9986f4077bac2ccb99d8d9ae4` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:45:00.003456+00:00 |
| **Fin** | 2025-12-16T17:45:22.519590+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: [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: [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.003217", "end": "2025-12-16 12:45:11.776454", "msg": "", "rc": 0, "start": "2025-12-16 12:45:11.773237", "stderr": "", "stderr_lines": [], "stdout": " 12:45:11 up 20 days, 23:36, 1 user, load average: 0.41, 0.37, 0.37", "stdout_lines": [" 12:45:11 up 20 days, 23:36, 1 user, load average: 0.41, 0.37, 0.37"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003884", "end": "2025-12-16 12:45:11.784257", "msg": "", "rc": 0, "start": "2025-12-16 12:45:11.780373", "stderr": "", "stderr_lines": [], "stdout": " 12:45:11 up 21 days, 1:55, 1 user, load average: 0.06, 0.03, 0.00", "stdout_lines": [" 12:45:11 up 21 days, 1:55, 1 user, load average: 0.06, 0.03, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002861", "end": "2025-12-16 12:45:11.810903", "msg": "", "rc": 0, "start": "2025-12-16 12:45:11.808042", "stderr": "", "stderr_lines": [], "stdout": " 12:45:11 up 2 days, 2:17, 1 user, load average: 0.20, 0.14, 0.17", "stdout_lines": [" 12:45:11 up 2 days, 2:17, 1 user, load average: 0.20, 0.14, 0.17"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003828", "end": "2025-12-16 12:45:11.819123", "msg": "", "rc": 0, "start": "2025-12-16 12:45:11.815295", "stderr": "", "stderr_lines": [], "stdout": " 12:45:11 up 21 days, 1:09, 1 user, load average: 0.43, 0.56, 0.61", "stdout_lines": [" 12:45:11 up 21 days, 1:09, 1 user, load average: 0.43, 0.56, 0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003131", "end": "2025-12-16 12:44:46.925089", "msg": "", "rc": 0, "start": "2025-12-16 12:44:46.921958", "stderr": "", "stderr_lines": [], "stdout": " 12:44:46 up 10 days, 34 min, 0 user, load average: 0.08, 0.19, 0.18", "stdout_lines": [" 12:44:46 up 10 days, 34 min, 0 user, load average: 0.08, 0.19, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008540", "end": "2025-12-16 12:45:12.466556", "msg": "", "rc": 0, "start": "2025-12-16 12:45:12.458016", "stderr": "", "stderr_lines": [], "stdout": " 12:45:12 up 193 days, 4:18, 1 user, load average: 0.37, 0.19, 0.11", "stdout_lines": [" 12:45:12 up 193 days, 4:18, 1 user, load average: 0.37, 0.19, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009304", "end": "2025-12-16 12:45:12.487567", "msg": "", "rc": 0, "start": "2025-12-16 12:45:12.478263", "stderr": "", "stderr_lines": [], "stdout": " 12:45:12 up 193 days, 4:18, 1 user, load average: 0.20, 0.18, 0.18", "stdout_lines": [" 12:45:12 up 193 days, 4:18, 1 user, load average: 0.20, 0.18, 0.18"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004637", "end": "2025-12-16 12:45:12.781528", "msg": "", "rc": 0, "start": "2025-12-16 12:45:11.776891", "stderr": "", "stderr_lines": [], "stdout": " 12:45:11 up 20 days, 23:56, 1 user, load average: 0.38, 0.54, 0.61", "stdout_lines": [" 12:45:11 up 20 days, 23:56, 1 user, load average: 0.38, 0.54, 0.61"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003423", "end": "2025-12-16 12:44:41.273295", "msg": "", "rc": 0, "start": "2025-12-16 12:44:41.269872", "stderr": "", "stderr_lines": [], "stdout": " 12:44:41 up 16 days, 20:46, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 12:44:41 up 16 days, 20:46, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004882", "end": "2025-12-16 12:45:12.956320", "msg": "", "rc": 0, "start": "2025-12-16 12:45:12.951438", "stderr": "", "stderr_lines": [], "stdout": " 12:45:12 up 2 days, 2:16, 1 user, load average: 0.09, 0.09, 0.04", "stdout_lines": [" 12:45:12 up 2 days, 2:16, 1 user, load average: 0.09, 0.09, 0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003638", "end": "2025-12-16 12:44:44.175959", "msg": "", "rc": 0, "start": "2025-12-16 12:44:44.172321", "stderr": "", "stderr_lines": [], "stdout": " 12:44:44 up 19 days, 15:39, 0 user, load average: 0.41, 0.49, 0.47", "stdout_lines": [" 12:44:44 up 19 days, 15:39, 0 user, load average: 0.41, 0.49, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003390", "end": "2025-12-16 12:44:50.478821", "msg": "", "rc": 0, "start": "2025-12-16 12:44:50.475431", "stderr": "", "stderr_lines": [], "stdout": " 12:44:50 up 16 days, 2:00, 0 user, load average: 0.10, 0.11, 0.21", "stdout_lines": [" 12:44:50 up 16 days, 2:00, 0 user, load average: 0.10, 0.11, 0.21"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004318", "end": "2025-12-16 09:45:13.247260", "msg": "", "rc": 0, "start": "2025-12-16 09:45:13.242942", "stderr": "", "stderr_lines": [], "stdout": " 9:45AM up 20 days, 23:35, 1 user, load averages: 0.26, 0.23, 0.18", "stdout_lines": [" 9:45AM up 20 days, 23:35, 1 user, load averages: 0.26, 0.23, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019520", "end": "2025-12-16 12:45:13.158039", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.138519", "stderr": "", "stderr_lines": [], "stdout": " 12:45:13 up 14 days, 2:11, 1 user, load average: 0.01, 0.07, 0.08", "stdout_lines": [" 12:45:13 up 14 days, 2:11, 1 user, load average: 0.01, 0.07, 0.08"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003803", "end": "2025-12-16 12:45:13.372936", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.369133", "stderr": "", "stderr_lines": [], "stdout": " 12:45:13 up 2 days, 2:16, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 12:45:13 up 2 days, 2:16, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007224", "end": "2025-12-16 12:45:13.812248", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.805024", "stderr": "", "stderr_lines": [], "stdout": " 12:45:13 up 14:08, 1 user, load average: 1.12, 1.13, 1.11", "stdout_lines": [" 12:45:13 up 14:08, 1 user, load average: 1.12, 1.13, 1.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004360", "end": "2025-12-16 12:45:13.833706", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.829346", "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.004057", "end": "2025-12-16 12:45:13.852201", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.848144", "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.004871", "end": "2025-12-16 12:45:13.872788", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.867917", "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.004843", "end": "2025-12-16 12:45:13.870091", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.865248", "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.006475", "end": "2025-12-16 12:45:13.901779", "msg": "", "rc": 0, "start": "2025-12-16 12:45:13.895304", "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.005355", "end": "2025-12-16 12:44:48.965092", "msg": "", "rc": 0, "start": "2025-12-16 12:44:48.959737", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006064", "end": "2025-12-16 12:44:42.907247", "msg": "", "rc": 0, "start": "2025-12-16 12:44:42.901183", "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.010624", "end": "2025-12-16 12:45:14.600212", "msg": "", "rc": 0, "start": "2025-12-16 12:45:14.589588", "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.011518", "end": "2025-12-16 12:45:14.594241", "msg": "", "rc": 0, "start": "2025-12-16 12:45:14.582723", "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.006137", "end": "2025-12-16 12:45:14.774980", "msg": "", "rc": 0, "start": "2025-12-16 12:45:14.768843", "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.005604", "end": "2025-12-16 12:44:46.103580", "msg": "", "rc": 0, "start": "2025-12-16 12:44:46.097976", "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.005615", "end": "2025-12-16 09:45:15.061830", "msg": "", "rc": 0, "start": "2025-12-16 09:45:15.056215", "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-16 12:44:52.359020", "msg": "", "rc": 0, "start": "2025-12-16 12:44:52.354424", "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.006944", "end": "2025-12-16 12:45:15.204635", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.197691", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019831", "end": "2025-12-16 12:45:15.781101", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.761270", "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.025128", "end": "2025-12-16 12:45:15.223827", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.198699", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
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.004106", "end": "2025-12-16 12:45:15.741718", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.737612", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.1%"]}
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-16 12:45:15.739526", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.735117", "stderr": "", "stderr_lines": [], "stdout": "87.5%", "stdout_lines": ["87.5%"]}
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.004656", "end": "2025-12-16 12:45:15.759293", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.754637", "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.005108", "end": "2025-12-16 12:45:15.785936", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.780828", "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.005887", "end": "2025-12-16 12:45:15.804629", "msg": "", "rc": 0, "start": "2025-12-16 12:45:15.798742", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.004175", "end": "2025-12-16 12:44:50.871451", "msg": "", "rc": 0, "start": "2025-12-16 12:44:50.867276", "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.004575", "end": "2025-12-16 12:44:44.773142", "msg": "", "rc": 0, "start": "2025-12-16 12:44:44.768567", "stderr": "", "stderr_lines": [], "stdout": "72.6%", "stdout_lines": ["72.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.011087", "end": "2025-12-16 12:45:16.419680", "msg": "", "rc": 0, "start": "2025-12-16 12:45:16.408593", "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.012409", "end": "2025-12-16 12:45:16.481395", "msg": "", "rc": 0, "start": "2025-12-16 12:45:16.468986", "stderr": "", "stderr_lines": [], "stdout": "13.2%", "stdout_lines": ["13.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.006087", "end": "2025-12-16 12:45:16.713230", "msg": "", "rc": 0, "start": "2025-12-16 12:45:16.707143", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.005193", "end": "2025-12-16 12:44:47.955799", "msg": "", "rc": 0, "start": "2025-12-16 12:44:47.950606", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.003571", "end": "2025-12-16 12:44:54.167089", "msg": "", "rc": 0, "start": "2025-12-16 12:44:54.163518", "stderr": "", "stderr_lines": [], "stdout": "52.6%", "stdout_lines": ["52.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.005150", "end": "2025-12-16 09:45:16.928532", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:45:16.923382", "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.005372", "end": "2025-12-16 12:45:17.133347", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.127975", "stderr": "", "stderr_lines": [], "stdout": "13.9%", "stdout_lines": ["13.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.010263", "end": "2025-12-16 12:45:17.684051", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.673788", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025710", "end": "2025-12-16 12:45:17.133869", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.108159", "stderr": "", "stderr_lines": [], "stdout": "19.3%", "stdout_lines": ["19.3%"]}
TASK [Get CPU temperature (ARM/SBC)] *******************************************
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.005367", "end": "2025-12-16 12:45:17.675380", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.670013", "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: [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.005408", "end": "2025-12-16 12:45:17.674985", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.669577", "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.004884", "end": "2025-12-16 12:45:17.679970", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.675086", "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.003344", "end": "2025-12-16 12:45:17.696107", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.692763", "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.006352", "end": "2025-12-16 12:45:17.712859", "msg": "", "rc": 0, "start": "2025-12-16 12:45:17.706507", "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.002748", "end": "2025-12-16 12:44:52.809631", "msg": "", "rc": 0, "start": "2025-12-16 12:44:52.806883", "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.003281", "end": "2025-12-16 12:44:46.699548", "msg": "", "rc": 0, "start": "2025-12-16 12:44:46.696267", "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.011711", "end": "2025-12-16 12:45:18.373559", "msg": "", "rc": 0, "start": "2025-12-16 12:45:18.361848", "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.014845", "end": "2025-12-16 12:45:18.408297", "msg": "", "rc": 0, "start": "2025-12-16 12:45:18.393452", "stderr": "", "stderr_lines": [], "stdout": "37.5°C", "stdout_lines": ["37.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.003080", "end": "2025-12-16 12:45:18.624047", "msg": "", "rc": 0, "start": "2025-12-16 12:45:18.620967", "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.002770", "end": "2025-12-16 12:44:49.862387", "msg": "", "rc": 0, "start": "2025-12-16 12:44:49.859617", "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.002919", "end": "2025-12-16 12:44:56.123901", "msg": "", "rc": 0, "start": "2025-12-16 12:44:56.120982", "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.003974", "end": "2025-12-16 09:45:18.879570", "msg": "", "rc": 0, "start": "2025-12-16 09:45:18.875596", "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.002947", "end": "2025-12-16 12:45:19.056533", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.053586", "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.004907", "end": "2025-12-16 12:45:19.657488", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.652581", "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.028684", "end": "2025-12-16 12:45:19.064982", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.036298", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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.004153", "end": "2025-12-16 12:45:19.571776", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.567623", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.003965", "end": "2025-12-16 12:45:19.605036", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.601071", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.004953", "end": "2025-12-16 12:45:19.606595", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.601642", "stderr": "", "stderr_lines": [], "stdout": "0.72", "stdout_lines": ["0.72"]}
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.004902", "end": "2025-12-16 12:45:19.626576", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.621674", "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.005211", "end": "2025-12-16 12:45:19.658047", "msg": "", "rc": 0, "start": "2025-12-16 12:45:19.652836", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.004339", "end": "2025-12-16 12:44:54.702347", "msg": "", "rc": 0, "start": "2025-12-16 12:44:54.698008", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005214", "end": "2025-12-16 12:44:48.615485", "msg": "", "rc": 0, "start": "2025-12-16 12:44:48.610271", "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.010262", "end": "2025-12-16 12:45:20.360544", "msg": "", "rc": 0, "start": "2025-12-16 12:45:20.350282", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
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.011255", "end": "2025-12-16 12:45:20.392523", "msg": "", "rc": 0, "start": "2025-12-16 12:45:20.381268", "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.005645", "end": "2025-12-16 12:45:20.532687", "msg": "", "rc": 0, "start": "2025-12-16 12:45:20.527042", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005212", "end": "2025-12-16 12:44:51.780235", "msg": "", "rc": 0, "start": "2025-12-16 12:44:51.775023", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
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.006575", "end": "2025-12-16 09:45:20.854758", "msg": "", "rc": 0, "start": "2025-12-16 09:45:20.848183", "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.004482", "end": "2025-12-16 12:44:58.111361", "msg": "", "rc": 0, "start": "2025-12-16 12:44:58.106879", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
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.005270", "end": "2025-12-16 12:45:20.958551", "msg": "", "rc": 0, "start": "2025-12-16 12:45:20.953281", "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.008545", "end": "2025-12-16 12:45:21.650192", "msg": "", "rc": 0, "start": "2025-12-16 12:45:21.641647", "stderr": "", "stderr_lines": [], "stdout": "1.27", "stdout_lines": ["1.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.024045", "end": "2025-12-16 12:45:20.954669", "msg": "", "rc": 0, "start": "2025-12-16 12:45:20.930624", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:11 up 20 days, 23:36, 1 user, load average: 0.41, 0.37, 0.37\nDisk Usage: 23%\nMemory Usage: 87.5%\nCPU Load: 0.35\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:11 up 2 days, 2:17, 1 user, load average: 0.20, 0.14, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.18\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:11 up 20 days, 23:56, 1 user, load average: 0.38, 0.54, 0.61\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.72\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:11 up 21 days, 1:09, 1 user, load average: 0.43, 0.56, 0.61\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.47\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:11 up 21 days, 1:55, 1 user, load average: 0.06, 0.03, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:13 up 14 days, 2:11, 1 user, load average: 0.01, 0.07, 0.08\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.09\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:12 up 193 days, 4:18, 1 user, load average: 0.20, 0.18, 0.18\nDisk Usage: 6%\nMemory Usage: 13.2%\nCPU Load: 0.34\nCPU Temp: 37.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:12 up 193 days, 4:18, 1 user, load average: 0.37, 0.19, 0.11\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.34\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:44:46 up 10 days, 34 min, 0 user, load average: 0.08, 0.19, 0.18\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:12 up 2 days, 2:16, 1 user, load average: 0.09, 0.09, 0.04\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:44:41 up 16 days, 20:46, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 72.6%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:44:44 up 19 days, 15:39, 0 user, load average: 0.41, 0.49, 0.47\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:44:50 up 16 days, 2:00, 0 user, load average: 0.10, 0.11, 0.21\nDisk Usage: 75%\nMemory Usage: 52.6%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:45AM up 20 days, 23:35, 1 user, load averages: 0.26, 0.23, 0.18\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: 12:45:13 up 2 days, 2:16, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 79%\nMemory Usage: 13.9%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45:13 up 14:08, 1 user, load average: 1.12, 1.13, 1.11\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.27\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-16T17:45:22.677240+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `acd8f7b8c708453cb2c8c66e249b4129` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:50:00.000704+00:00 |
| **Fin** | 2025-12-16T17:50:23.165146+00:00 |
| **Durée** | 23.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: [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: [mimi.pc.home]
ok: [ali2v.xeon.home]
ok: [hp3.i5.home]
ok: [hp2.i7.home]
ok: [dev.lab.home]
ok: [media.labb.home]
ok: [ali2v.truenas.home]
ok: [raspi.8gb.home]
ok: [raspi.4gb.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.003290", "end": "2025-12-16 12:50:13.182293", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.179003", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 20 days, 23:41, 1 user, load average: 0.34, 0.31, 0.34", "stdout_lines": [" 12:50:13 up 20 days, 23:41, 1 user, load average: 0.34, 0.31, 0.34"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003368", "end": "2025-12-16 12:50:13.195206", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.191838", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 21 days, 2:00, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 12:50:13 up 21 days, 2:00, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003086", "end": "2025-12-16 12:50:13.206669", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.203583", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 2 days, 2:22, 1 user, load average: 0.25, 0.18, 0.18", "stdout_lines": [" 12:50:13 up 2 days, 2:22, 1 user, load average: 0.25, 0.18, 0.18"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003169", "end": "2025-12-16 12:50:13.202363", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.199194", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 21 days, 1 min, 1 user, load average: 0.79, 0.65, 0.64", "stdout_lines": [" 12:50:13 up 21 days, 1 min, 1 user, load average: 0.79, 0.65, 0.64"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004529", "end": "2025-12-16 12:50:13.229441", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.224912", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 21 days, 1:14, 1 user, load average: 0.60, 0.63, 0.63", "stdout_lines": [" 12:50:13 up 21 days, 1:14, 1 user, load average: 0.60, 0.63, 0.63"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003246", "end": "2025-12-16 12:49:48.311407", "msg": "", "rc": 0, "start": "2025-12-16 12:49:48.308161", "stderr": "", "stderr_lines": [], "stdout": " 12:49:48 up 10 days, 39 min, 0 user, load average: 0.08, 0.19, 0.19", "stdout_lines": [" 12:49:48 up 10 days, 39 min, 0 user, load average: 0.08, 0.19, 0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003572", "end": "2025-12-16 12:49:42.224435", "msg": "", "rc": 0, "start": "2025-12-16 12:49:42.220863", "stderr": "", "stderr_lines": [], "stdout": " 12:49:42 up 16 days, 20:51, 0 user, load average: 0.03, 0.03, 0.00", "stdout_lines": [" 12:49:42 up 16 days, 20:51, 0 user, load average: 0.03, 0.03, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008976", "end": "2025-12-16 12:50:13.873980", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.865004", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 193 days, 4:23, 1 user, load average: 0.31, 0.19, 0.12", "stdout_lines": [" 12:50:13 up 193 days, 4:23, 1 user, load average: 0.31, 0.19, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009362", "end": "2025-12-16 12:50:13.902638", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.893276", "stderr": "", "stderr_lines": [], "stdout": " 12:50:13 up 193 days, 4:23, 1 user, load average: 0.40, 0.29, 0.22", "stdout_lines": [" 12:50:13 up 193 days, 4:23, 1 user, load average: 0.40, 0.29, 0.22"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004568", "end": "2025-12-16 12:50:14.129043", "msg": "", "rc": 0, "start": "2025-12-16 12:50:14.124475", "stderr": "", "stderr_lines": [], "stdout": " 12:50:14 up 2 days, 2:21, 1 user, load average: 0.29, 0.10, 0.05", "stdout_lines": [" 12:50:14 up 2 days, 2:21, 1 user, load average: 0.29, 0.10, 0.05"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003027", "end": "2025-12-16 12:49:51.612863", "msg": "", "rc": 0, "start": "2025-12-16 12:49:51.609836", "stderr": "", "stderr_lines": [], "stdout": " 12:49:51 up 16 days, 2:05, 0 user, load average: 0.43, 0.21, 0.21", "stdout_lines": [" 12:49:51 up 16 days, 2:05, 0 user, load average: 0.43, 0.21, 0.21"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003658", "end": "2025-12-16 12:49:45.431622", "msg": "", "rc": 0, "start": "2025-12-16 12:49:45.427964", "stderr": "", "stderr_lines": [], "stdout": " 12:49:45 up 19 days, 15:44, 0 user, load average: 0.34, 0.39, 0.43", "stdout_lines": [" 12:49:45 up 19 days, 15:44, 0 user, load average: 0.34, 0.39, 0.43"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004663", "end": "2025-12-16 09:50:14.364946", "msg": "", "rc": 0, "start": "2025-12-16 09:50:14.360283", "stderr": "", "stderr_lines": [], "stdout": " 9:50AM up 20 days, 23:40, 1 user, load averages: 0.08, 0.17, 0.16", "stdout_lines": [" 9:50AM up 20 days, 23:40, 1 user, load averages: 0.08, 0.17, 0.16"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003728", "end": "2025-12-16 12:50:14.539338", "msg": "", "rc": 0, "start": "2025-12-16 12:50:14.535610", "stderr": "", "stderr_lines": [], "stdout": " 12:50:14 up 2 days, 2:21, 1 user, load average: 0.02, 0.05, 0.01", "stdout_lines": [" 12:50:14 up 2 days, 2:21, 1 user, load average: 0.02, 0.05, 0.01"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008418", "end": "2025-12-16 12:50:15.439348", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.430930", "stderr": "", "stderr_lines": [], "stdout": " 12:50:15 up 14:13, 1 user, load average: 1.51, 1.22, 1.13", "stdout_lines": [" 12:50:15 up 14:13, 1 user, load average: 1.51, 1.22, 1.13"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019663", "end": "2025-12-16 12:50:14.562030", "msg": "", "rc": 0, "start": "2025-12-16 12:50:14.542367", "stderr": "", "stderr_lines": [], "stdout": " 12:50:14 up 14 days, 2:16, 1 user, load average: 0.32, 0.12, 0.10", "stdout_lines": [" 12:50:14 up 14 days, 2:16, 1 user, load average: 0.32, 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.004373", "end": "2025-12-16 12:50:15.080960", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.076587", "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-16 12:50:15.104316", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.100193", "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.004766", "end": "2025-12-16 12:50:15.113982", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.109216", "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.004599", "end": "2025-12-16 12:50:15.141030", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.136431", "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.005930", "end": "2025-12-16 12:50:15.160752", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.154822", "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.005584", "end": "2025-12-16 12:49:50.255497", "msg": "", "rc": 0, "start": "2025-12-16 12:49:50.249913", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005416", "end": "2025-12-16 12:49:44.163490", "msg": "", "rc": 0, "start": "2025-12-16 12:49:44.158074", "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.018788", "end": "2025-12-16 12:50:15.817928", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.799140", "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.011638", "end": "2025-12-16 12:50:15.872523", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.860885", "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.005791", "end": "2025-12-16 12:50:16.091162", "msg": "", "rc": 0, "start": "2025-12-16 12:50:16.085371", "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.006453", "end": "2025-12-16 12:49:47.376062", "msg": "", "rc": 0, "start": "2025-12-16 12:49:47.369609", "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.004867", "end": "2025-12-16 12:49:53.582628", "msg": "", "rc": 0, "start": "2025-12-16 12:49:53.577761", "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.006094", "end": "2025-12-16 09:50:16.347114", "msg": "", "rc": 0, "start": "2025-12-16 09:50:16.341020", "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.005344", "end": "2025-12-16 12:50:16.514690", "msg": "", "rc": 0, "start": "2025-12-16 12:50:16.509346", "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.025449", "end": "2025-12-16 12:50:16.464229", "msg": "", "rc": 0, "start": "2025-12-16 12:50:16.438780", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019040", "end": "2025-12-16 12:50:17.462727", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.443687", "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.004370", "end": "2025-12-16 12:50:17.000278", "msg": "", "rc": 0, "start": "2025-12-16 12:50:16.995908", "stderr": "", "stderr_lines": [], "stdout": "87.5%", "stdout_lines": ["87.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.004453", "end": "2025-12-16 12:50:17.019731", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.015278", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004656", "end": "2025-12-16 12:50:17.027117", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.022461", "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.004827", "end": "2025-12-16 12:50:17.047103", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.042276", "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.005798", "end": "2025-12-16 12:50:17.067968", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.062170", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.003678", "end": "2025-12-16 12:49:52.119507", "msg": "", "rc": 0, "start": "2025-12-16 12:49:52.115829", "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.004535", "end": "2025-12-16 12:49:46.043707", "msg": "", "rc": 0, "start": "2025-12-16 12:49:46.039172", "stderr": "", "stderr_lines": [], "stdout": "72.8%", "stdout_lines": ["72.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.010948", "end": "2025-12-16 12:50:17.686306", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.675358", "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.011990", "end": "2025-12-16 12:50:17.736282", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.724292", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005849", "end": "2025-12-16 12:50:17.938029", "msg": "", "rc": 0, "start": "2025-12-16 12:50:17.932180", "stderr": "", "stderr_lines": [], "stdout": "34.9%", "stdout_lines": ["34.9%"]}
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.004759", "end": "2025-12-16 12:49:49.209262", "msg": "", "rc": 0, "start": "2025-12-16 12:49:49.204503", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.004111", "end": "2025-12-16 12:49:55.426801", "msg": "", "rc": 0, "start": "2025-12-16 12:49:55.422690", "stderr": "", "stderr_lines": [], "stdout": "51.9%", "stdout_lines": ["51.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.005624", "end": "2025-12-16 09:50:18.204971", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:50:18.199347", "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.005452", "end": "2025-12-16 12:50:18.354478", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.349026", "stderr": "", "stderr_lines": [], "stdout": "13.9%", "stdout_lines": ["13.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.008254", "end": "2025-12-16 12:50:19.357325", "msg": "", "rc": 0, "start": "2025-12-16 12:50:19.349071", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.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.025875", "end": "2025-12-16 12:50:18.380441", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.354566", "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.005260", "end": "2025-12-16 12:50:18.912142", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.906882", "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.004957", "end": "2025-12-16 12:50:18.919568", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.914611", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005674", "end": "2025-12-16 12:50:18.937072", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.931398", "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.003501", "end": "2025-12-16 12:50:18.964295", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.960794", "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.006097", "end": "2025-12-16 12:50:18.964679", "msg": "", "rc": 0, "start": "2025-12-16 12:50:18.958582", "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.002996", "end": "2025-12-16 12:49:54.039868", "msg": "", "rc": 0, "start": "2025-12-16 12:49:54.036872", "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.003140", "end": "2025-12-16 12:49:47.937924", "msg": "", "rc": 0, "start": "2025-12-16 12:49:47.934784", "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.011827", "end": "2025-12-16 12:50:19.601169", "msg": "", "rc": 0, "start": "2025-12-16 12:50:19.589342", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.012930", "end": "2025-12-16 12:50:19.634650", "msg": "", "rc": 0, "start": "2025-12-16 12:50:19.621720", "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.003053", "end": "2025-12-16 12:50:19.874240", "msg": "", "rc": 0, "start": "2025-12-16 12:50:19.871187", "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.003057", "end": "2025-12-16 12:49:51.099586", "msg": "", "rc": 0, "start": "2025-12-16 12:49:51.096529", "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.002771", "end": "2025-12-16 12:49:57.327849", "msg": "", "rc": 0, "start": "2025-12-16 12:49:57.325078", "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.004298", "end": "2025-12-16 09:50:20.086481", "msg": "", "rc": 0, "start": "2025-12-16 09:50:20.082183", "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.002939", "end": "2025-12-16 12:50:20.288882", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.285943", "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.004664", "end": "2025-12-16 12:50:21.310695", "msg": "", "rc": 0, "start": "2025-12-16 12:50:21.306031", "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.028728", "end": "2025-12-16 12:50:20.303015", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.274287", "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.004400", "end": "2025-12-16 12:50:20.815473", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.811073", "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.003979", "end": "2025-12-16 12:50:20.840767", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.836788", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.005011", "end": "2025-12-16 12:50:20.851219", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.846208", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.005178", "end": "2025-12-16 12:50:20.867635", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.862457", "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.005624", "end": "2025-12-16 12:50:20.879433", "msg": "", "rc": 0, "start": "2025-12-16 12:50:20.873809", "stderr": "", "stderr_lines": [], "stdout": "0.74", "stdout_lines": ["0.74"]}
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-16 12:49:55.968588", "msg": "", "rc": 0, "start": "2025-12-16 12:49:55.964183", "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.005126", "end": "2025-12-16 12:49:49.863260", "msg": "", "rc": 0, "start": "2025-12-16 12:49:49.858134", "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.010113", "end": "2025-12-16 12:50:21.587058", "msg": "", "rc": 0, "start": "2025-12-16 12:50:21.576945", "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.011246", "end": "2025-12-16 12:50:21.654198", "msg": "", "rc": 0, "start": "2025-12-16 12:50:21.642952", "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.005696", "end": "2025-12-16 12:50:21.804745", "msg": "", "rc": 0, "start": "2025-12-16 12:50:21.799049", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.004674", "end": "2025-12-16 12:49:53.016883", "msg": "", "rc": 0, "start": "2025-12-16 12:49:53.012209", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004822", "end": "2025-12-16 12:49:59.307289", "msg": "", "rc": 0, "start": "2025-12-16 12:49:59.302467", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
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.006332", "end": "2025-12-16 09:50:22.109067", "msg": "", "rc": 0, "start": "2025-12-16 09:50:22.102735", "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.005440", "end": "2025-12-16 12:50:22.223628", "msg": "", "rc": 0, "start": "2025-12-16 12:50:22.218188", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.008672", "end": "2025-12-16 12:50:22.295603", "msg": "", "rc": 0, "start": "2025-12-16 12:50:22.286931", "stderr": "", "stderr_lines": [], "stdout": "1.80", "stdout_lines": ["1.80"]}
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.024481", "end": "2025-12-16 12:50:22.212043", "msg": "", "rc": 0, "start": "2025-12-16 12:50:22.187562", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 20 days, 23:41, 1 user, load average: 0.34, 0.31, 0.34\nDisk Usage: 23%\nMemory Usage: 87.5%\nCPU Load: 0.28\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 2 days, 2:22, 1 user, load average: 0.25, 0.18, 0.18\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.22\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 21 days, 1 min, 1 user, load average: 0.79, 0.65, 0.64\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.80\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 21 days, 1:14, 1 user, load average: 0.60, 0.63, 0.63\nDisk Usage: 14%\nMemory Usage: 60.4%\nCPU Load: 0.74\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 21 days, 2:00, 1 user, load average: 0.00, 0.00, 0.00\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: 12:50:14 up 14 days, 2:16, 1 user, load average: 0.32, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.35\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 193 days, 4:23, 1 user, load average: 0.40, 0.29, 0.22\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.50\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:13 up 193 days, 4:23, 1 user, load average: 0.31, 0.19, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.28\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:49:48 up 10 days, 39 min, 0 user, load average: 0.08, 0.19, 0.19\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:49:42 up 16 days, 20:51, 0 user, load average: 0.03, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 72.8%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:14 up 2 days, 2:21, 1 user, load average: 0.29, 0.10, 0.05\nDisk Usage: 1%\nMemory Usage: 34.9%\nCPU Load: 0.26\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:49:45 up 19 days, 15:44, 0 user, load average: 0.34, 0.39, 0.43\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:49:51 up 16 days, 2:05, 0 user, load average: 0.43, 0.21, 0.21\nDisk Usage: 75%\nMemory Usage: 51.9%\nCPU Load: 0.39\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:50AM up 20 days, 23:40, 1 user, load averages: 0.08, 0.17, 0.16\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: 12:50:14 up 2 days, 2:21, 1 user, load average: 0.02, 0.05, 0.01\nDisk Usage: 79%\nMemory Usage: 13.9%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50:15 up 14:13, 1 user, load average: 1.51, 1.22, 1.13\nDisk Usage: 1%\nMemory Usage: 20.1%\nCPU Load: 1.80\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-16T17:50:23.204257+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a5e0fa64dbe44c4bb596e164c6774721` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T17:55:00.001072+00:00 |
| **Fin** | 2025-12-16T17:55:22.382579+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: [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: [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.003671", "end": "2025-12-16 12:55:11.582365", "msg": "", "rc": 0, "start": "2025-12-16 12:55:11.578694", "stderr": "", "stderr_lines": [], "stdout": " 12:55:11 up 21 days, 2:05, 1 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 12:55:11 up 21 days, 2:05, 1 user, load average: 0.01, 0.03, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003996", "end": "2025-12-16 12:55:11.600408", "msg": "", "rc": 0, "start": "2025-12-16 12:55:11.596412", "stderr": "", "stderr_lines": [], "stdout": " 12:55:11 up 21 days, 1:19, 1 user, load average: 0.82, 0.81, 0.71", "stdout_lines": [" 12:55:11 up 21 days, 1:19, 1 user, load average: 0.82, 0.81, 0.71"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002844", "end": "2025-12-16 12:55:11.609258", "msg": "", "rc": 0, "start": "2025-12-16 12:55:11.606414", "stderr": "", "stderr_lines": [], "stdout": " 12:55:11 up 2 days, 2:27, 1 user, load average: 0.32, 0.27, 0.22", "stdout_lines": [" 12:55:11 up 2 days, 2:27, 1 user, load average: 0.32, 0.27, 0.22"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008456", "end": "2025-12-16 12:55:12.259836", "msg": "", "rc": 0, "start": "2025-12-16 12:55:12.251380", "stderr": "", "stderr_lines": [], "stdout": " 12:55:12 up 193 days, 4:28, 1 user, load average: 0.25, 0.21, 0.13", "stdout_lines": [" 12:55:12 up 193 days, 4:28, 1 user, load average: 0.25, 0.21, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009240", "end": "2025-12-16 12:55:12.309778", "msg": "", "rc": 0, "start": "2025-12-16 12:55:12.300538", "stderr": "", "stderr_lines": [], "stdout": " 12:55:12 up 193 days, 4:28, 1 user, load average: 0.20, 0.24, 0.21", "stdout_lines": [" 12:55:12 up 193 days, 4:28, 1 user, load average: 0.20, 0.24, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003514", "end": "2025-12-16 12:55:12.567240", "msg": "", "rc": 0, "start": "2025-12-16 12:55:11.563726", "stderr": "", "stderr_lines": [], "stdout": " 12:55:11 up 20 days, 23:46, 1 user, load average: 0.20, 0.25, 0.31", "stdout_lines": [" 12:55:11 up 20 days, 23:46, 1 user, load average: 0.20, 0.25, 0.31"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003690", "end": "2025-12-16 12:55:12.575599", "msg": "", "rc": 0, "start": "2025-12-16 12:55:11.571909", "stderr": "", "stderr_lines": [], "stdout": " 12:55:11 up 21 days, 6 min, 1 user, load average: 0.34, 0.66, 0.67", "stdout_lines": [" 12:55:11 up 21 days, 6 min, 1 user, load average: 0.34, 0.66, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003077", "end": "2025-12-16 12:54:47.370471", "msg": "", "rc": 0, "start": "2025-12-16 12:54:47.367394", "stderr": "", "stderr_lines": [], "stdout": " 12:54:47 up 10 days, 44 min, 0 user, load average: 0.03, 0.10, 0.15", "stdout_lines": [" 12:54:47 up 10 days, 44 min, 0 user, load average: 0.03, 0.10, 0.15"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003718", "end": "2025-12-16 12:54:41.330543", "msg": "", "rc": 0, "start": "2025-12-16 12:54:41.326825", "stderr": "", "stderr_lines": [], "stdout": " 12:54:41 up 16 days, 20:56, 0 user, load average: 0.10, 0.04, 0.01", "stdout_lines": [" 12:54:41 up 16 days, 20:56, 0 user, load average: 0.10, 0.04, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004958", "end": "2025-12-16 12:55:13.018915", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.013957", "stderr": "", "stderr_lines": [], "stdout": " 12:55:13 up 2 days, 2:26, 1 user, load average: 0.07, 0.05, 0.03", "stdout_lines": [" 12:55:13 up 2 days, 2:26, 1 user, load average: 0.07, 0.05, 0.03"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019678", "end": "2025-12-16 12:55:12.965341", "msg": "", "rc": 0, "start": "2025-12-16 12:55:12.945663", "stderr": "", "stderr_lines": [], "stdout": " 12:55:12 up 14 days, 2:21, 1 user, load average: 0.23, 0.12, 0.10", "stdout_lines": [" 12:55:12 up 14 days, 2:21, 1 user, load average: 0.23, 0.12, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003420", "end": "2025-12-16 12:54:44.173959", "msg": "", "rc": 0, "start": "2025-12-16 12:54:44.170539", "stderr": "", "stderr_lines": [], "stdout": " 12:54:44 up 19 days, 15:49, 0 user, load average: 0.41, 0.38, 0.41", "stdout_lines": [" 12:54:44 up 19 days, 15:49, 0 user, load average: 0.41, 0.38, 0.41"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003675", "end": "2025-12-16 12:54:50.436571", "msg": "", "rc": 0, "start": "2025-12-16 12:54:50.432896", "stderr": "", "stderr_lines": [], "stdout": " 12:54:50 up 16 days, 2:10, 0 user, load average: 0.00, 0.09, 0.15", "stdout_lines": [" 12:54:50 up 16 days, 2:10, 0 user, load average: 0.00, 0.09, 0.15"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004295", "end": "2025-12-16 09:55:13.315740", "msg": "", "rc": 0, "start": "2025-12-16 09:55:13.311445", "stderr": "", "stderr_lines": [], "stdout": " 9:55AM up 20 days, 23:45, 1 user, load averages: 0.17, 0.15, 0.15", "stdout_lines": [" 9:55AM up 20 days, 23:45, 1 user, load averages: 0.17, 0.15, 0.15"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009337", "end": "2025-12-16 12:55:13.521331", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.511994", "stderr": "", "stderr_lines": [], "stdout": " 12:55:13 up 14:18, 1 user, load average: 1.01, 1.13, 1.12", "stdout_lines": [" 12:55:13 up 14:18, 1 user, load average: 1.01, 1.13, 1.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003737", "end": "2025-12-16 12:55:13.461379", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.457642", "stderr": "", "stderr_lines": [], "stdout": " 12:55:13 up 2 days, 2:26, 1 user, load average: 0.03, 0.04, 0.00", "stdout_lines": [" 12:55:13 up 2 days, 2:26, 1 user, load average: 0.03, 0.04, 0.00"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004733", "end": "2025-12-16 12:55:13.858151", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.853418", "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.004210", "end": "2025-12-16 12:55:13.882871", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.878661", "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.005335", "end": "2025-12-16 12:55:13.884102", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.878767", "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.004374", "end": "2025-12-16 12:55:13.909967", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.905593", "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.005523", "end": "2025-12-16 12:55:13.939158", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.933635", "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.004795", "end": "2025-12-16 12:54:48.999019", "msg": "", "rc": 0, "start": "2025-12-16 12:54:48.994224", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005728", "end": "2025-12-16 12:54:42.914837", "msg": "", "rc": 0, "start": "2025-12-16 12:54:42.909109", "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.011560", "end": "2025-12-16 12:55:14.640455", "msg": "", "rc": 0, "start": "2025-12-16 12:55:14.628895", "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.011650", "end": "2025-12-16 12:55:14.660769", "msg": "", "rc": 0, "start": "2025-12-16 12:55:14.649119", "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.005661", "end": "2025-12-16 12:55:14.831039", "msg": "", "rc": 0, "start": "2025-12-16 12:55:14.825378", "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.006943", "end": "2025-12-16 12:54:46.118293", "msg": "", "rc": 0, "start": "2025-12-16 12:54:46.111350", "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.005524", "end": "2025-12-16 09:55:15.120831", "msg": "", "rc": 0, "start": "2025-12-16 09:55:15.115307", "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.005534", "end": "2025-12-16 12:54:52.378108", "msg": "", "rc": 0, "start": "2025-12-16 12:54:52.372574", "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.005608", "end": "2025-12-16 12:55:15.266695", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.261087", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019786", "end": "2025-12-16 12:55:15.502993", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.483207", "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.025614", "end": "2025-12-16 12:55:15.247801", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.222187", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
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.004399", "end": "2025-12-16 12:55:15.767262", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.762863", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.1%"]}
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.004895", "end": "2025-12-16 12:55:15.787986", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.783091", "stderr": "", "stderr_lines": [], "stdout": "87.3%", "stdout_lines": ["87.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.004622", "end": "2025-12-16 12:55:15.829054", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.824432", "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.005048", "end": "2025-12-16 12:55:15.839254", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.834206", "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.005487", "end": "2025-12-16 12:55:15.841403", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.835916", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.004486", "end": "2025-12-16 12:54:50.941621", "msg": "", "rc": 0, "start": "2025-12-16 12:54:50.937135", "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.006046", "end": "2025-12-16 12:54:44.851817", "msg": "", "rc": 0, "start": "2025-12-16 12:54:44.845771", "stderr": "", "stderr_lines": [], "stdout": "71.6%", "stdout_lines": ["71.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.011044", "end": "2025-12-16 12:55:16.481164", "msg": "", "rc": 0, "start": "2025-12-16 12:55:16.470120", "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.012104", "end": "2025-12-16 12:55:16.491506", "msg": "", "rc": 0, "start": "2025-12-16 12:55:16.479402", "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.005850", "end": "2025-12-16 12:55:16.777632", "msg": "", "rc": 0, "start": "2025-12-16 12:55:16.771782", "stderr": "", "stderr_lines": [], "stdout": "35.0%", "stdout_lines": ["35.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.006300", "end": "2025-12-16 09:55:16.993186", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 09:55:16.986886", "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.005352", "end": "2025-12-16 12:54:48.073315", "msg": "", "rc": 0, "start": "2025-12-16 12:54:48.067963", "stderr": "", "stderr_lines": [], "stdout": "26.8%", "stdout_lines": ["26.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.004463", "end": "2025-12-16 12:54:54.263268", "msg": "", "rc": 0, "start": "2025-12-16 12:54:54.258805", "stderr": "", "stderr_lines": [], "stdout": "51.8%", "stdout_lines": ["51.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.005555", "end": "2025-12-16 12:55:17.223653", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.218098", "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.026553", "end": "2025-12-16 12:55:17.168038", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.141485", "stderr": "", "stderr_lines": [], "stdout": "19.0%", "stdout_lines": ["19.0%"]}
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.010205", "end": "2025-12-16 12:55:17.546916", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.536711", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.1%"]}
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.005074", "end": "2025-12-16 12:55:17.770676", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.765602", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005652", "end": "2025-12-16 12:55:17.773202", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.767550", "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: [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.005997", "end": "2025-12-16 12:55:17.782115", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.776118", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.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.002957", "end": "2025-12-16 12:55:17.798311", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.795354", "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-16 12:55:17.832639", "msg": "", "rc": 0, "start": "2025-12-16 12:55:17.826039", "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.002805", "end": "2025-12-16 12:54:52.880667", "msg": "", "rc": 0, "start": "2025-12-16 12:54:52.877862", "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.003671", "end": "2025-12-16 12:54:46.823333", "msg": "", "rc": 0, "start": "2025-12-16 12:54:46.819662", "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.011849", "end": "2025-12-16 12:55:18.455101", "msg": "", "rc": 0, "start": "2025-12-16 12:55:18.443252", "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.012951", "end": "2025-12-16 12:55:18.488631", "msg": "", "rc": 0, "start": "2025-12-16 12:55:18.475680", "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.003233", "end": "2025-12-16 12:55:18.691980", "msg": "", "rc": 0, "start": "2025-12-16 12:55:18.688747", "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.002752", "end": "2025-12-16 12:54:49.991317", "msg": "", "rc": 0, "start": "2025-12-16 12:54:49.988565", "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.002559", "end": "2025-12-16 12:54:56.202597", "msg": "", "rc": 0, "start": "2025-12-16 12:54:56.200038", "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.004853", "end": "2025-12-16 09:55:18.969424", "msg": "", "rc": 0, "start": "2025-12-16 09:55:18.964571", "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.002913", "end": "2025-12-16 12:55:19.113472", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.110559", "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-16 12:55:19.486790", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.482629", "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.028536", "end": "2025-12-16 12:55:19.168436", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.139900", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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.004689", "end": "2025-12-16 12:55:19.691363", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.686674", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.004249", "end": "2025-12-16 12:55:19.707422", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.703173", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.005824", "end": "2025-12-16 12:55:19.727918", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.722094", "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.005560", "end": "2025-12-16 12:55:19.744160", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.738600", "stderr": "", "stderr_lines": [], "stdout": "0.84", "stdout_lines": ["0.84"]}
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.004731", "end": "2025-12-16 12:55:19.748960", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.744229", "stderr": "", "stderr_lines": [], "stdout": "0.59", "stdout_lines": ["0.59"]}
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.004361", "end": "2025-12-16 12:54:54.886521", "msg": "", "rc": 0, "start": "2025-12-16 12:54:54.882160", "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.006240", "end": "2025-12-16 12:54:48.726170", "msg": "", "rc": 0, "start": "2025-12-16 12:54:48.719930", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.010207", "end": "2025-12-16 12:55:20.473573", "msg": "", "rc": 0, "start": "2025-12-16 12:55:20.463366", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.011065", "end": "2025-12-16 12:55:20.485258", "msg": "", "rc": 0, "start": "2025-12-16 12:55:20.474193", "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.005571", "end": "2025-12-16 12:55:20.727838", "msg": "", "rc": 0, "start": "2025-12-16 12:55:20.722267", "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.004902", "end": "2025-12-16 12:54:51.905698", "msg": "", "rc": 0, "start": "2025-12-16 12:54:51.900796", "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.005496", "end": "2025-12-16 12:54:58.236012", "msg": "", "rc": 0, "start": "2025-12-16 12:54:58.230516", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
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.006339", "end": "2025-12-16 09:55:21.003886", "msg": "", "rc": 0, "start": "2025-12-16 09:55:20.997547", "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.007168", "end": "2025-12-16 12:55:21.474199", "msg": "", "rc": 0, "start": "2025-12-16 12:55:21.467031", "stderr": "", "stderr_lines": [], "stdout": "1.01", "stdout_lines": ["1.01"]}
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.005318", "end": "2025-12-16 12:55:21.152501", "msg": "", "rc": 0, "start": "2025-12-16 12:55:21.147183", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.024276", "end": "2025-12-16 12:55:21.083504", "msg": "", "rc": 0, "start": "2025-12-16 12:55:21.059228", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:11 up 2 days, 2:27, 1 user, load average: 0.32, 0.27, 0.22\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.29\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:11 up 21 days, 6 min, 1 user, load average: 0.34, 0.66, 0.67\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.59\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:11 up 20 days, 23:46, 1 user, load average: 0.20, 0.25, 0.31\nDisk Usage: 23%\nMemory Usage: 87.3%\nCPU Load: 0.41\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:11 up 21 days, 1:19, 1 user, load average: 0.82, 0.81, 0.71\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 0.84\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:11 up 21 days, 2:05, 1 user, load average: 0.01, 0.03, 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: 12:55:12 up 14 days, 2:21, 1 user, load average: 0.23, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 19.0%\nCPU Load: 0.29\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:12 up 193 days, 4:28, 1 user, load average: 0.20, 0.24, 0.21\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.18\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:12 up 193 days, 4:28, 1 user, load average: 0.25, 0.21, 0.13\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.29\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:54:47 up 10 days, 44 min, 0 user, load average: 0.03, 0.10, 0.15\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:54:41 up 16 days, 20:56, 0 user, load average: 0.10, 0.04, 0.01\nDisk Usage: 24%\nMemory Usage: 71.6%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:13 up 2 days, 2:26, 1 user, load average: 0.07, 0.05, 0.03\nDisk Usage: 1%\nMemory Usage: 35.0%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:54:44 up 19 days, 15:49, 0 user, load average: 0.41, 0.38, 0.41\nDisk Usage: 28%\nMemory Usage: 26.8%\nCPU Load: 0.45\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:54:50 up 16 days, 2:10, 0 user, load average: 0.00, 0.09, 0.15\nDisk Usage: 75%\nMemory Usage: 51.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 9:55AM up 20 days, 23:45, 1 user, load averages: 0.17, 0.15, 0.15\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: 12:55:13 up 2 days, 2:26, 1 user, load average: 0.03, 0.04, 0.00\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55:13 up 14:18, 1 user, load average: 1.01, 1.13, 1.12\nDisk Usage: 1%\nMemory Usage: 20.1%\nCPU Load: 1.01\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-16T17:55:22.420536+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `d42fa09f10a948fc8a6d90c6c9cb3f2d` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:00:00.004221+00:00 |
| **Fin** | 2025-12-16T18:00:23.304241+00:00 |
| **Durée** | 23.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: [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: [hp.truenas.home]
ok: [dev.prod.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.003868", "end": "2025-12-16 13:00:12.543248", "msg": "", "rc": 0, "start": "2025-12-16 13:00:12.539380", "stderr": "", "stderr_lines": [], "stdout": " 13:00:12 up 21 days, 2:10, 1 user, load average: 0.06, 0.02, 0.00", "stdout_lines": [" 13:00:12 up 21 days, 2:10, 1 user, load average: 0.06, 0.02, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003396", "end": "2025-12-16 13:00:12.552672", "msg": "", "rc": 0, "start": "2025-12-16 13:00:12.549276", "stderr": "", "stderr_lines": [], "stdout": " 13:00:12 up 21 days, 11 min, 1 user, load average: 0.89, 0.76, 0.72", "stdout_lines": [" 13:00:12 up 21 days, 11 min, 1 user, load average: 0.89, 0.76, 0.72"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004054", "end": "2025-12-16 13:00:12.562477", "msg": "", "rc": 0, "start": "2025-12-16 13:00:12.558423", "stderr": "", "stderr_lines": [], "stdout": " 13:00:12 up 21 days, 1:24, 1 user, load average: 0.67, 0.75, 0.71", "stdout_lines": [" 13:00:12 up 21 days, 1:24, 1 user, load average: 0.67, 0.75, 0.71"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003186", "end": "2025-12-16 13:00:12.572196", "msg": "", "rc": 0, "start": "2025-12-16 13:00:12.569010", "stderr": "", "stderr_lines": [], "stdout": " 13:00:12 up 2 days, 2:32, 1 user, load average: 0.26, 0.23, 0.20", "stdout_lines": [" 13:00:12 up 2 days, 2:32, 1 user, load average: 0.26, 0.23, 0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002799", "end": "2025-12-16 12:59:47.655881", "msg": "", "rc": 0, "start": "2025-12-16 12:59:47.653082", "stderr": "", "stderr_lines": [], "stdout": " 12:59:47 up 10 days, 49 min, 0 user, load average: 0.21, 0.12, 0.13", "stdout_lines": [" 12:59:47 up 10 days, 49 min, 0 user, load average: 0.21, 0.12, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008693", "end": "2025-12-16 13:00:13.215477", "msg": "", "rc": 0, "start": "2025-12-16 13:00:13.206784", "stderr": "", "stderr_lines": [], "stdout": " 13:00:13 up 193 days, 4:33, 1 user, load average: 0.13, 0.18, 0.13", "stdout_lines": [" 13:00:13 up 193 days, 4:33, 1 user, load average: 0.13, 0.18, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009410", "end": "2025-12-16 13:00:13.254855", "msg": "", "rc": 0, "start": "2025-12-16 13:00:13.245445", "stderr": "", "stderr_lines": [], "stdout": " 13:00:13 up 193 days, 4:33, 1 user, load average: 0.17, 0.25, 0.21", "stdout_lines": [" 13:00:13 up 193 days, 4:33, 1 user, load average: 0.17, 0.25, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004341", "end": "2025-12-16 13:00:13.530696", "msg": "", "rc": 0, "start": "2025-12-16 13:00:12.526355", "stderr": "", "stderr_lines": [], "stdout": " 13:00:12 up 20 days, 23:51, 1 user, load average: 0.43, 0.28, 0.29", "stdout_lines": [" 13:00:12 up 20 days, 23:51, 1 user, load average: 0.43, 0.28, 0.29"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003483", "end": "2025-12-16 12:59:41.984973", "msg": "", "rc": 0, "start": "2025-12-16 12:59:41.981490", "stderr": "", "stderr_lines": [], "stdout": " 12:59:41 up 16 days, 21:01, 0 user, load average: 0.02, 0.05, 0.01", "stdout_lines": [" 12:59:41 up 16 days, 21:01, 0 user, load average: 0.02, 0.05, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004652", "end": "2025-12-16 13:00:13.712061", "msg": "", "rc": 0, "start": "2025-12-16 13:00:13.707409", "stderr": "", "stderr_lines": [], "stdout": " 13:00:13 up 2 days, 2:31, 1 user, load average: 0.00, 0.02, 0.01", "stdout_lines": [" 13:00:13 up 2 days, 2:31, 1 user, load average: 0.00, 0.02, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003606", "end": "2025-12-16 12:59:44.910293", "msg": "", "rc": 0, "start": "2025-12-16 12:59:44.906687", "stderr": "", "stderr_lines": [], "stdout": " 12:59:44 up 19 days, 15:54, 0 user, load average: 0.35, 0.39, 0.41", "stdout_lines": [" 12:59:44 up 19 days, 15:54, 0 user, load average: 0.35, 0.39, 0.41"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002797", "end": "2025-12-16 12:59:51.209292", "msg": "", "rc": 0, "start": "2025-12-16 12:59:51.206495", "stderr": "", "stderr_lines": [], "stdout": " 12:59:51 up 16 days, 2:15, 0 user, load average: 0.07, 0.17, 0.17", "stdout_lines": [" 12:59:51 up 16 days, 2:15, 0 user, load average: 0.07, 0.17, 0.17"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004405", "end": "2025-12-16 10:00:13.983661", "msg": "", "rc": 0, "start": "2025-12-16 10:00:13.979256", "stderr": "", "stderr_lines": [], "stdout": "10:00AM up 20 days, 23:50, 1 user, load averages: 0.15, 0.19, 0.17", "stdout_lines": ["10:00AM up 20 days, 23:50, 1 user, load averages: 0.15, 0.19, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019817", "end": "2025-12-16 13:00:13.924808", "msg": "", "rc": 0, "start": "2025-12-16 13:00:13.904991", "stderr": "", "stderr_lines": [], "stdout": " 13:00:13 up 14 days, 2:26, 1 user, load average: 0.07, 0.10, 0.09", "stdout_lines": [" 13:00:13 up 14 days, 2:26, 1 user, load average: 0.07, 0.10, 0.09"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003729", "end": "2025-12-16 13:00:14.133500", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.129771", "stderr": "", "stderr_lines": [], "stdout": " 13:00:14 up 2 days, 2:31, 1 user, load average: 0.23, 0.11, 0.03", "stdout_lines": [" 13:00:14 up 2 days, 2:31, 1 user, load average: 0.23, 0.11, 0.03"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007449", "end": "2025-12-16 13:00:14.605026", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.597577", "stderr": "", "stderr_lines": [], "stdout": " 13:00:14 up 14:23, 1 user, load average: 1.11, 1.10, 1.10", "stdout_lines": [" 13:00:14 up 14:23, 1 user, load average: 1.11, 1.10, 1.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004423", "end": "2025-12-16 13:00:14.565262", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.560839", "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.004108", "end": "2025-12-16 13:00:14.574490", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.570382", "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.004783", "end": "2025-12-16 13:00:14.596733", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.591950", "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.004700", "end": "2025-12-16 13:00:14.607766", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.603066", "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.005312", "end": "2025-12-16 13:00:14.616683", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.611371", "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.005634", "end": "2025-12-16 12:59:49.685255", "msg": "", "rc": 0, "start": "2025-12-16 12:59:49.679621", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005311", "end": "2025-12-16 12:59:43.578452", "msg": "", "rc": 0, "start": "2025-12-16 12:59:43.573141", "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.010628", "end": "2025-12-16 13:00:15.307067", "msg": "", "rc": 0, "start": "2025-12-16 13:00:15.296439", "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-16 13:00:15.324196", "msg": "", "rc": 0, "start": "2025-12-16 13:00:15.312550", "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.005658", "end": "2025-12-16 13:00:15.528907", "msg": "", "rc": 0, "start": "2025-12-16 13:00:15.523249", "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.005008", "end": "2025-12-16 12:59:46.742129", "msg": "", "rc": 0, "start": "2025-12-16 12:59:46.737121", "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.005534", "end": "2025-12-16 10:00:15.788202", "msg": "", "rc": 0, "start": "2025-12-16 10:00:15.782668", "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.005421", "end": "2025-12-16 12:59:53.048335", "msg": "", "rc": 0, "start": "2025-12-16 12:59:53.042914", "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.005367", "end": "2025-12-16 13:00:15.952243", "msg": "", "rc": 0, "start": "2025-12-16 13:00:15.946876", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020221", "end": "2025-12-16 13:00:16.519717", "msg": "", "rc": 0, "start": "2025-12-16 13:00:16.499496", "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.025266", "end": "2025-12-16 13:00:15.967592", "msg": "", "rc": 0, "start": "2025-12-16 13:00:15.942326", "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.004572", "end": "2025-12-16 13:00:16.471165", "msg": "", "rc": 0, "start": "2025-12-16 13:00:16.466593", "stderr": "", "stderr_lines": [], "stdout": "87.2%", "stdout_lines": ["87.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.004296", "end": "2025-12-16 13:00:16.478787", "msg": "", "rc": 0, "start": "2025-12-16 13:00:16.474491", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004793", "end": "2025-12-16 13:00:16.509065", "msg": "", "rc": 0, "start": "2025-12-16 13:00:16.504272", "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.005087", "end": "2025-12-16 13:00:16.520539", "msg": "", "rc": 0, "start": "2025-12-16 13:00:16.515452", "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.005528", "end": "2025-12-16 13:00:16.549781", "msg": "", "rc": 0, "start": "2025-12-16 13:00:16.544253", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.003674", "end": "2025-12-16 12:59:51.617440", "msg": "", "rc": 0, "start": "2025-12-16 12:59:51.613766", "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.004547", "end": "2025-12-16 12:59:45.529067", "msg": "", "rc": 0, "start": "2025-12-16 12:59:45.524520", "stderr": "", "stderr_lines": [], "stdout": "71.6%", "stdout_lines": ["71.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.011041", "end": "2025-12-16 13:00:17.173453", "msg": "", "rc": 0, "start": "2025-12-16 13:00:17.162412", "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.011935", "end": "2025-12-16 13:00:17.188314", "msg": "", "rc": 0, "start": "2025-12-16 13:00:17.176379", "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.006478", "end": "2025-12-16 13:00:17.473570", "msg": "", "rc": 0, "start": "2025-12-16 13:00:17.467092", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.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.005418", "end": "2025-12-16 10:00:17.672663", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:00:17.667245", "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.003944", "end": "2025-12-16 12:59:54.910960", "msg": "", "rc": 0, "start": "2025-12-16 12:59:54.907016", "stderr": "", "stderr_lines": [], "stdout": "55.9%", "stdout_lines": ["55.9%"]}
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.004721", "end": "2025-12-16 12:59:48.741503", "msg": "", "rc": 0, "start": "2025-12-16 12:59:48.736782", "stderr": "", "stderr_lines": [], "stdout": "26.1%", "stdout_lines": ["26.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.006836", "end": "2025-12-16 13:00:17.919662", "msg": "", "rc": 0, "start": "2025-12-16 13:00:17.912826", "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.009710", "end": "2025-12-16 13:00:18.548293", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.538583", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025959", "end": "2025-12-16 13:00:17.843053", "msg": "", "rc": 0, "start": "2025-12-16 13:00:17.817094", "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.005059", "end": "2025-12-16 13:00:18.359861", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.354802", "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.005068", "end": "2025-12-16 13:00:18.370619", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.365551", "stderr": "", "stderr_lines": [], "stdout": "48.0°C", "stdout_lines": ["48.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.005387", "end": "2025-12-16 13:00:18.383175", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.377788", "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.003362", "end": "2025-12-16 13:00:18.406936", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.403574", "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.006951", "end": "2025-12-16 13:00:18.446214", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.439263", "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.002874", "end": "2025-12-16 12:59:53.508684", "msg": "", "rc": 0, "start": "2025-12-16 12:59:53.505810", "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.003226", "end": "2025-12-16 12:59:47.442361", "msg": "", "rc": 0, "start": "2025-12-16 12:59:47.439135", "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-16 13:00:19.068554", "msg": "", "rc": 0, "start": "2025-12-16 13:00:19.056668", "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.012916", "end": "2025-12-16 13:00:19.114918", "msg": "", "rc": 0, "start": "2025-12-16 13:00:19.102002", "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.003173", "end": "2025-12-16 13:00:19.347100", "msg": "", "rc": 0, "start": "2025-12-16 13:00:19.343927", "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.002973", "end": "2025-12-16 12:59:56.790009", "msg": "", "rc": 0, "start": "2025-12-16 12:59:56.787036", "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.003986", "end": "2025-12-16 10:00:19.576134", "msg": "", "rc": 0, "start": "2025-12-16 10:00:19.572148", "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.002994", "end": "2025-12-16 12:59:50.640474", "msg": "", "rc": 0, "start": "2025-12-16 12:59:50.637480", "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.002880", "end": "2025-12-16 13:00:19.765916", "msg": "", "rc": 0, "start": "2025-12-16 13:00:19.763036", "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.004279", "end": "2025-12-16 13:00:20.495066", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.490787", "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.028867", "end": "2025-12-16 13:00:19.750691", "msg": "", "rc": 0, "start": "2025-12-16 13:00:19.721824", "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.004253", "end": "2025-12-16 13:00:20.274873", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.270620", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.004046", "end": "2025-12-16 13:00:20.289340", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.285294", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.004491", "end": "2025-12-16 13:00:20.299453", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.294962", "stderr": "", "stderr_lines": [], "stdout": "0.98", "stdout_lines": ["0.98"]}
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.005095", "end": "2025-12-16 13:00:20.329134", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.324039", "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.005538", "end": "2025-12-16 13:00:20.358097", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.352559", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.004895", "end": "2025-12-16 12:59:55.405184", "msg": "", "rc": 0, "start": "2025-12-16 12:59:55.400289", "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.005433", "end": "2025-12-16 12:59:49.341675", "msg": "", "rc": 0, "start": "2025-12-16 12:59:49.336242", "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.010060", "end": "2025-12-16 13:00:21.041561", "msg": "", "rc": 0, "start": "2025-12-16 13:00:21.031501", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.011210", "end": "2025-12-16 13:00:21.069796", "msg": "", "rc": 0, "start": "2025-12-16 13:00:21.058586", "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.005499", "end": "2025-12-16 13:00:21.246322", "msg": "", "rc": 0, "start": "2025-12-16 13:00:21.240823", "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.004837", "end": "2025-12-16 12:59:52.502237", "msg": "", "rc": 0, "start": "2025-12-16 12:59:52.497400", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
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.004525", "end": "2025-12-16 12:59:58.772402", "msg": "", "rc": 0, "start": "2025-12-16 12:59:58.767877", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.006128", "end": "2025-12-16 10:00:21.530964", "msg": "", "rc": 0, "start": "2025-12-16 10:00:21.524836", "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.005792", "end": "2025-12-16 13:00:21.698002", "msg": "", "rc": 0, "start": "2025-12-16 13:00:21.692210", "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.008733", "end": "2025-12-16 13:00:22.465141", "msg": "", "rc": 0, "start": "2025-12-16 13:00:22.456408", "stderr": "", "stderr_lines": [], "stdout": "1.25", "stdout_lines": ["1.25"]}
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.024361", "end": "2025-12-16 13:00:21.662419", "msg": "", "rc": 0, "start": "2025-12-16 13:00:21.638058", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:12 up 2 days, 2:32, 1 user, load average: 0.26, 0.23, 0.20\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.32\nCPU Temp: 48.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:12 up 20 days, 23:51, 1 user, load average: 0.43, 0.28, 0.29\nDisk Usage: 23%\nMemory Usage: 87.2%\nCPU Load: 0.36\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:12 up 21 days, 11 min, 1 user, load average: 0.89, 0.76, 0.72\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.98\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:12 up 21 days, 1:24, 1 user, load average: 0.67, 0.75, 0.71\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 0.62\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:12 up 21 days, 2:10, 1 user, load average: 0.06, 0.02, 0.00\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: 13:00:13 up 14 days, 2:26, 1 user, load average: 0.07, 0.10, 0.09\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.14\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:13 up 193 days, 4:33, 1 user, load average: 0.17, 0.25, 0.21\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.24\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:13 up 193 days, 4:33, 1 user, load average: 0.13, 0.18, 0.13\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.20\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:59:47 up 10 days, 49 min, 0 user, load average: 0.21, 0.12, 0.13\nDisk Usage: 47%\nMemory Usage: 71.2%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:59:41 up 16 days, 21:01, 0 user, load average: 0.02, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 71.6%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:13 up 2 days, 2:31, 1 user, load average: 0.00, 0.02, 0.01\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:59:44 up 19 days, 15:54, 0 user, load average: 0.35, 0.39, 0.41\nDisk Usage: 28%\nMemory Usage: 26.1%\nCPU Load: 0.57\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:59:51 up 16 days, 2:15, 0 user, load average: 0.07, 0.17, 0.17\nDisk Usage: 75%\nMemory Usage: 55.9%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:00AM up 20 days, 23:50, 1 user, load averages: 0.15, 0.19, 0.17\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: 13:00:14 up 2 days, 2:31, 1 user, load average: 0.23, 0.11, 0.03\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:00:14 up 14:23, 1 user, load average: 1.11, 1.10, 1.10\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.25\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-16T18:00:23.342077+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `200fa9a952f4460695e1d017c2e553f2` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:05:00.001865+00:00 |
| **Fin** | 2025-12-16T18:05:22.446985+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: [ali2v.xeon.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: [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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003824", "end": "2025-12-16 13:05:12.120533", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.116709", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 21 days, 2:15, 1 user, load average: 0.05, 0.04, 0.00", "stdout_lines": [" 13:05:12 up 21 days, 2:15, 1 user, load average: 0.05, 0.04, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003386", "end": "2025-12-16 13:05:12.127029", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.123643", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 21 days, 16 min, 1 user, load average: 0.30, 0.51, 0.62", "stdout_lines": [" 13:05:12 up 21 days, 16 min, 1 user, load average: 0.30, 0.51, 0.62"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004210", "end": "2025-12-16 13:05:12.139887", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.135677", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 21 days, 1:29, 1 user, load average: 0.59, 0.59, 0.65", "stdout_lines": [" 13:05:12 up 21 days, 1:29, 1 user, load average: 0.59, 0.59, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002921", "end": "2025-12-16 13:05:12.152287", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.149366", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 2 days, 2:37, 1 user, load average: 0.18, 0.20, 0.18", "stdout_lines": [" 13:05:12 up 2 days, 2:37, 1 user, load average: 0.18, 0.20, 0.18"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003153", "end": "2025-12-16 13:04:47.261569", "msg": "", "rc": 0, "start": "2025-12-16 13:04:47.258416", "stderr": "", "stderr_lines": [], "stdout": " 13:04:47 up 10 days, 54 min, 0 user, load average: 0.13, 0.15, 0.13", "stdout_lines": [" 13:04:47 up 10 days, 54 min, 0 user, load average: 0.13, 0.15, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008470", "end": "2025-12-16 13:05:12.840584", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.832114", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 193 days, 4:38, 1 user, load average: 0.30, 0.22, 0.16", "stdout_lines": [" 13:05:12 up 193 days, 4:38, 1 user, load average: 0.30, 0.22, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009348", "end": "2025-12-16 13:05:12.864431", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.855083", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 193 days, 4:38, 1 user, load average: 0.08, 0.18, 0.18", "stdout_lines": [" 13:05:12 up 193 days, 4:38, 1 user, load average: 0.08, 0.18, 0.18"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004288", "end": "2025-12-16 13:05:13.113309", "msg": "", "rc": 0, "start": "2025-12-16 13:05:12.109021", "stderr": "", "stderr_lines": [], "stdout": " 13:05:12 up 20 days, 23:56, 1 user, load average: 0.34, 0.23, 0.25", "stdout_lines": [" 13:05:12 up 20 days, 23:56, 1 user, load average: 0.34, 0.23, 0.25"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003640", "end": "2025-12-16 13:04:41.595975", "msg": "", "rc": 0, "start": "2025-12-16 13:04:41.592335", "stderr": "", "stderr_lines": [], "stdout": " 13:04:41 up 16 days, 21:06, 0 user, load average: 0.08, 0.03, 0.01", "stdout_lines": [" 13:04:41 up 16 days, 21:06, 0 user, load average: 0.08, 0.03, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004814", "end": "2025-12-16 13:05:13.344636", "msg": "", "rc": 0, "start": "2025-12-16 13:05:13.339822", "stderr": "", "stderr_lines": [], "stdout": " 13:05:13 up 2 days, 2:36, 1 user, load average: 0.08, 0.05, 0.01", "stdout_lines": [" 13:05:13 up 2 days, 2:36, 1 user, load average: 0.08, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003243", "end": "2025-12-16 13:04:44.505971", "msg": "", "rc": 0, "start": "2025-12-16 13:04:44.502728", "stderr": "", "stderr_lines": [], "stdout": " 13:04:44 up 19 days, 15:59, 0 user, load average: 0.41, 0.48, 0.45", "stdout_lines": [" 13:04:44 up 19 days, 15:59, 0 user, load average: 0.41, 0.48, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002673", "end": "2025-12-16 13:04:50.801758", "msg": "", "rc": 0, "start": "2025-12-16 13:04:50.799085", "stderr": "", "stderr_lines": [], "stdout": " 13:04:50 up 16 days, 2:20, 0 user, load average: 0.09, 0.14, 0.16", "stdout_lines": [" 13:04:50 up 16 days, 2:20, 0 user, load average: 0.09, 0.14, 0.16"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004320", "end": "2025-12-16 10:05:13.598983", "msg": "", "rc": 0, "start": "2025-12-16 10:05:13.594663", "stderr": "", "stderr_lines": [], "stdout": "10:05AM up 20 days, 23:55, 1 user, load averages: 0.25, 0.22, 0.17", "stdout_lines": ["10:05AM up 20 days, 23:55, 1 user, load averages: 0.25, 0.22, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019519", "end": "2025-12-16 13:05:13.538762", "msg": "", "rc": 0, "start": "2025-12-16 13:05:13.519243", "stderr": "", "stderr_lines": [], "stdout": " 13:05:13 up 14 days, 2:31, 1 user, load average: 0.19, 0.09, 0.08", "stdout_lines": [" 13:05:13 up 14 days, 2:31, 1 user, load average: 0.19, 0.09, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007122", "end": "2025-12-16 13:05:14.564388", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.557266", "stderr": "", "stderr_lines": [], "stdout": " 13:05:14 up 14:29, 1 user, load average: 1.32, 1.16, 1.11", "stdout_lines": [" 13:05:14 up 14:29, 1 user, load average: 1.32, 1.16, 1.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003747", "end": "2025-12-16 13:05:13.782902", "msg": "", "rc": 0, "start": "2025-12-16 13:05:13.779155", "stderr": "", "stderr_lines": [], "stdout": " 13:05:13 up 2 days, 2:36, 1 user, load average: 0.04, 0.07, 0.02", "stdout_lines": [" 13:05:13 up 2 days, 2:36, 1 user, load average: 0.04, 0.07, 0.02"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004418", "end": "2025-12-16 13:05:14.205907", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.201489", "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.004305", "end": "2025-12-16 13:05:14.225992", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.221687", "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.004626", "end": "2025-12-16 13:05:14.233164", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.228538", "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.004527", "end": "2025-12-16 13:05:14.263351", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.258824", "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-16 13:05:14.275529", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.269861", "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.005265", "end": "2025-12-16 13:04:49.359389", "msg": "", "rc": 0, "start": "2025-12-16 13:04:49.354124", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005796", "end": "2025-12-16 13:04:43.268309", "msg": "", "rc": 0, "start": "2025-12-16 13:04:43.262513", "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.010675", "end": "2025-12-16 13:05:14.993092", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.982417", "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.011703", "end": "2025-12-16 13:05:15.001481", "msg": "", "rc": 0, "start": "2025-12-16 13:05:14.989778", "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.006042", "end": "2025-12-16 13:05:15.224695", "msg": "", "rc": 0, "start": "2025-12-16 13:05:15.218653", "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.005387", "end": "2025-12-16 13:04:46.437574", "msg": "", "rc": 0, "start": "2025-12-16 13:04:46.432187", "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.005575", "end": "2025-12-16 10:05:15.465454", "msg": "", "rc": 0, "start": "2025-12-16 10:05:15.459879", "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.004850", "end": "2025-12-16 13:04:52.719437", "msg": "", "rc": 0, "start": "2025-12-16 13:04:52.714587", "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.005593", "end": "2025-12-16 13:05:15.655320", "msg": "", "rc": 0, "start": "2025-12-16 13:05:15.649727", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019509", "end": "2025-12-16 13:05:16.549971", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.530462", "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.025558", "end": "2025-12-16 13:05:15.619435", "msg": "", "rc": 0, "start": "2025-12-16 13:05:15.593877", "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.004594", "end": "2025-12-16 13:05:16.154341", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.149747", "stderr": "", "stderr_lines": [], "stdout": "87.1%", "stdout_lines": ["87.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.004925", "end": "2025-12-16 13:05:16.162012", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.157087", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
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.004213", "end": "2025-12-16 13:05:16.161579", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.157366", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004948", "end": "2025-12-16 13:05:16.200526", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.195578", "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.006631", "end": "2025-12-16 13:05:16.220118", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.213487", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.004597", "end": "2025-12-16 13:04:51.285501", "msg": "", "rc": 0, "start": "2025-12-16 13:04:51.280904", "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.005531", "end": "2025-12-16 13:04:45.203257", "msg": "", "rc": 0, "start": "2025-12-16 13:04:45.197726", "stderr": "", "stderr_lines": [], "stdout": "71.5%", "stdout_lines": ["71.5%"]}
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.011093", "end": "2025-12-16 13:05:16.862938", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.851845", "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.011940", "end": "2025-12-16 13:05:16.895647", "msg": "", "rc": 0, "start": "2025-12-16 13:05:16.883707", "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.005834", "end": "2025-12-16 13:05:17.145735", "msg": "", "rc": 0, "start": "2025-12-16 13:05:17.139901", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.004028", "end": "2025-12-16 13:04:48.381025", "msg": "", "rc": 0, "start": "2025-12-16 13:04:48.376997", "stderr": "", "stderr_lines": [], "stdout": "27.7%", "stdout_lines": ["27.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.005235", "end": "2025-12-16 10:05:17.363479", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:05:17.358244", "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.003687", "end": "2025-12-16 13:04:54.599054", "msg": "", "rc": 0, "start": "2025-12-16 13:04:54.595367", "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.005549", "end": "2025-12-16 13:05:17.572992", "msg": "", "rc": 0, "start": "2025-12-16 13:05:17.567443", "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.008531", "end": "2025-12-16 13:05:18.556863", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.548332", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025530", "end": "2025-12-16 13:05:17.566716", "msg": "", "rc": 0, "start": "2025-12-16 13:05:17.541186", "stderr": "", "stderr_lines": [], "stdout": "20.0%", "stdout_lines": ["20.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.005444", "end": "2025-12-16 13:05:18.112779", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.107335", "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.004848", "end": "2025-12-16 13:05:18.126635", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.121787", "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.005536", "end": "2025-12-16 13:05:18.140622", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.135086", "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.002892", "end": "2025-12-16 13:05:18.147030", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.144138", "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.006404", "end": "2025-12-16 13:05:18.172974", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.166570", "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.003301", "end": "2025-12-16 13:04:53.243660", "msg": "", "rc": 0, "start": "2025-12-16 13:04:53.240359", "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.003241", "end": "2025-12-16 13:04:47.157998", "msg": "", "rc": 0, "start": "2025-12-16 13:04:47.154757", "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.011734", "end": "2025-12-16 13:05:18.822589", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.810855", "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.013180", "end": "2025-12-16 13:05:18.858234", "msg": "", "rc": 0, "start": "2025-12-16 13:05:18.845054", "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.003247", "end": "2025-12-16 13:05:19.072919", "msg": "", "rc": 0, "start": "2025-12-16 13:05:19.069672", "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.003158", "end": "2025-12-16 13:04:50.361250", "msg": "", "rc": 0, "start": "2025-12-16 13:04:50.358092", "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.003211", "end": "2025-12-16 13:04:56.558233", "msg": "", "rc": 0, "start": "2025-12-16 13:04:56.555022", "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.004430", "end": "2025-12-16 10:05:19.329236", "msg": "", "rc": 0, "start": "2025-12-16 10:05:19.324806", "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.003036", "end": "2025-12-16 13:05:19.491692", "msg": "", "rc": 0, "start": "2025-12-16 13:05:19.488656", "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.003914", "end": "2025-12-16 13:05:20.604159", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.600245", "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.029180", "end": "2025-12-16 13:05:19.522638", "msg": "", "rc": 0, "start": "2025-12-16 13:05:19.493458", "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.004412", "end": "2025-12-16 13:05:20.041905", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.037493", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.004730", "end": "2025-12-16 13:05:20.068967", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.064237", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.004384", "end": "2025-12-16 13:05:20.072319", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.067935", "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.004783", "end": "2025-12-16 13:05:20.099932", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.095149", "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.005662", "end": "2025-12-16 13:05:20.122150", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.116488", "stderr": "", "stderr_lines": [], "stdout": "0.79", "stdout_lines": ["0.79"]}
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.004390", "end": "2025-12-16 13:04:55.184269", "msg": "", "rc": 0, "start": "2025-12-16 13:04:55.179879", "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.005176", "end": "2025-12-16 13:04:49.116267", "msg": "", "rc": 0, "start": "2025-12-16 13:04:49.111091", "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.010179", "end": "2025-12-16 13:05:20.846553", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.836374", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.011107", "end": "2025-12-16 13:05:20.880946", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.869839", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
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.005728", "end": "2025-12-16 13:05:21.013947", "msg": "", "rc": 0, "start": "2025-12-16 13:05:21.008219", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.004987", "end": "2025-12-16 13:04:52.320222", "msg": "", "rc": 0, "start": "2025-12-16 13:04:52.315235", "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.005978", "end": "2025-12-16 10:05:21.342343", "msg": "", "rc": 0, "start": "2025-12-16 10:05:21.336365", "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.004237", "end": "2025-12-16 13:04:58.579814", "msg": "", "rc": 0, "start": "2025-12-16 13:04:58.575577", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
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.005322", "end": "2025-12-16 13:05:21.439025", "msg": "", "rc": 0, "start": "2025-12-16 13:05:21.433703", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.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.024126", "end": "2025-12-16 13:05:21.433575", "msg": "", "rc": 0, "start": "2025-12-16 13:05:21.409449", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.007388", "end": "2025-12-16 13:05:21.650393", "msg": "", "rc": 0, "start": "2025-12-16 13:05:21.643005", "stderr": "", "stderr_lines": [], "stdout": "1.29", "stdout_lines": ["1.29"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 20 days, 23:56, 1 user, load average: 0.34, 0.23, 0.25\nDisk Usage: 23%\nMemory Usage: 87.1%\nCPU Load: 0.29\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 2 days, 2:37, 1 user, load average: 0.18, 0.20, 0.18\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.16\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 21 days, 16 min, 1 user, load average: 0.30, 0.51, 0.62\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.33\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 21 days, 1:29, 1 user, load average: 0.59, 0.59, 0.65\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 0.79\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 21 days, 2:15, 1 user, load average: 0.05, 0.04, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:13 up 14 days, 2:31, 1 user, load average: 0.19, 0.09, 0.08\nDisk Usage: 21%\nMemory Usage: 20.0%\nCPU Load: 0.26\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 193 days, 4:38, 1 user, load average: 0.08, 0.18, 0.18\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.08\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:12 up 193 days, 4:38, 1 user, load average: 0.30, 0.22, 0.16\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.33\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:04:47 up 10 days, 54 min, 0 user, load average: 0.13, 0.15, 0.13\nDisk Usage: 47%\nMemory Usage: 71.5%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:04:41 up 16 days, 21:06, 0 user, load average: 0.08, 0.03, 0.01\nDisk Usage: 24%\nMemory Usage: 71.5%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:13 up 2 days, 2:36, 1 user, load average: 0.08, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:04:44 up 19 days, 15:59, 0 user, load average: 0.41, 0.48, 0.45\nDisk Usage: 28%\nMemory Usage: 27.7%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:04:50 up 16 days, 2:20, 0 user, load average: 0.09, 0.14, 0.16\nDisk Usage: 75%\nMemory Usage: 57.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:05AM up 20 days, 23:55, 1 user, load averages: 0.25, 0.22, 0.17\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: 13:05:13 up 2 days, 2:36, 1 user, load average: 0.04, 0.07, 0.02\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:05:14 up 14:29, 1 user, load average: 1.32, 1.16, 1.11\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.29\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-16T18:05:22.488222+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a28608dfe73247638927a22cc6a9b237` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:10:00.004078+00:00 |
| **Fin** | 2025-12-16T18:10:21.943931+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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003297", "end": "2025-12-16 13:10:11.371093", "msg": "", "rc": 0, "start": "2025-12-16 13:10:11.367796", "stderr": "", "stderr_lines": [], "stdout": " 13:10:11 up 21 days, 21 min, 1 user, load average: 0.39, 0.41, 0.54", "stdout_lines": [" 13:10:11 up 21 days, 21 min, 1 user, load average: 0.39, 0.41, 0.54"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003696", "end": "2025-12-16 13:10:11.377804", "msg": "", "rc": 0, "start": "2025-12-16 13:10:11.374108", "stderr": "", "stderr_lines": [], "stdout": " 13:10:11 up 21 days, 2:20, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 13:10:11 up 21 days, 2:20, 1 user, load average: 0.04, 0.03, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003922", "end": "2025-12-16 13:10:11.390687", "msg": "", "rc": 0, "start": "2025-12-16 13:10:11.386765", "stderr": "", "stderr_lines": [], "stdout": " 13:10:11 up 21 days, 1:34, 1 user, load average: 0.47, 0.54, 0.62", "stdout_lines": [" 13:10:11 up 21 days, 1:34, 1 user, load average: 0.47, 0.54, 0.62"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002876", "end": "2025-12-16 13:10:11.406597", "msg": "", "rc": 0, "start": "2025-12-16 13:10:11.403721", "stderr": "", "stderr_lines": [], "stdout": " 13:10:11 up 2 days, 2:42, 1 user, load average: 0.37, 0.23, 0.19", "stdout_lines": [" 13:10:11 up 2 days, 2:42, 1 user, load average: 0.37, 0.23, 0.19"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002950", "end": "2025-12-16 13:09:46.492772", "msg": "", "rc": 0, "start": "2025-12-16 13:09:46.489822", "stderr": "", "stderr_lines": [], "stdout": " 13:09:46 up 10 days, 59 min, 0 user, load average: 0.09, 0.10, 0.10", "stdout_lines": [" 13:09:46 up 10 days, 59 min, 0 user, load average: 0.09, 0.10, 0.10"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008353", "end": "2025-12-16 13:10:12.076561", "msg": "", "rc": 0, "start": "2025-12-16 13:10:12.068208", "stderr": "", "stderr_lines": [], "stdout": " 13:10:12 up 193 days, 4:43, 1 user, load average: 0.22, 0.23, 0.18", "stdout_lines": [" 13:10:12 up 193 days, 4:43, 1 user, load average: 0.22, 0.23, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009365", "end": "2025-12-16 13:10:12.102228", "msg": "", "rc": 0, "start": "2025-12-16 13:10:12.092863", "stderr": "", "stderr_lines": [], "stdout": " 13:10:12 up 193 days, 4:43, 1 user, load average: 0.27, 0.24, 0.20", "stdout_lines": [" 13:10:12 up 193 days, 4:43, 1 user, load average: 0.27, 0.24, 0.20"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003799", "end": "2025-12-16 13:10:12.366249", "msg": "", "rc": 0, "start": "2025-12-16 13:10:11.362450", "stderr": "", "stderr_lines": [], "stdout": " 13:10:11 up 21 days, 1 min, 1 user, load average: 0.25, 0.24, 0.25", "stdout_lines": [" 13:10:11 up 21 days, 1 min, 1 user, load average: 0.25, 0.24, 0.25"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003438", "end": "2025-12-16 13:09:40.812690", "msg": "", "rc": 0, "start": "2025-12-16 13:09:40.809252", "stderr": "", "stderr_lines": [], "stdout": " 13:09:40 up 16 days, 21:11, 0 user, load average: 0.05, 0.04, 0.00", "stdout_lines": [" 13:09:40 up 16 days, 21:11, 0 user, load average: 0.05, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004658", "end": "2025-12-16 13:10:12.584796", "msg": "", "rc": 0, "start": "2025-12-16 13:10:12.580138", "stderr": "", "stderr_lines": [], "stdout": " 13:10:12 up 2 days, 2:41, 1 user, load average: 0.08, 0.04, 0.01", "stdout_lines": [" 13:10:12 up 2 days, 2:41, 1 user, load average: 0.08, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003406", "end": "2025-12-16 13:09:43.738567", "msg": "", "rc": 0, "start": "2025-12-16 13:09:43.735161", "stderr": "", "stderr_lines": [], "stdout": " 13:09:43 up 19 days, 16:04, 0 user, load average: 0.36, 0.44, 0.44", "stdout_lines": [" 13:09:43 up 19 days, 16:04, 0 user, load average: 0.36, 0.44, 0.44"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004278", "end": "2025-12-16 10:10:12.816173", "msg": "", "rc": 0, "start": "2025-12-16 10:10:12.811895", "stderr": "", "stderr_lines": [], "stdout": "10:10AM up 21 days, 0 sec, 1 user, load averages: 0.40, 0.27, 0.19", "stdout_lines": ["10:10AM up 21 days, 0 sec, 1 user, load averages: 0.40, 0.27, 0.19"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002825", "end": "2025-12-16 13:09:50.046120", "msg": "", "rc": 0, "start": "2025-12-16 13:09:50.043295", "stderr": "", "stderr_lines": [], "stdout": " 13:09:50 up 16 days, 2:25, 0 user, load average: 0.00, 0.05, 0.11", "stdout_lines": [" 13:09:50 up 16 days, 2:25, 0 user, load average: 0.00, 0.05, 0.11"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019298", "end": "2025-12-16 13:10:12.761983", "msg": "", "rc": 0, "start": "2025-12-16 13:10:12.742685", "stderr": "", "stderr_lines": [], "stdout": " 13:10:12 up 14 days, 2:36, 1 user, load average: 0.30, 0.16, 0.10", "stdout_lines": [" 13:10:12 up 14 days, 2:36, 1 user, load average: 0.30, 0.16, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007214", "end": "2025-12-16 13:10:13.104100", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.096886", "stderr": "", "stderr_lines": [], "stdout": " 13:10:13 up 14:34, 1 user, load average: 1.44, 1.17, 1.11", "stdout_lines": [" 13:10:13 up 14:34, 1 user, load average: 1.44, 1.17, 1.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003695", "end": "2025-12-16 13:10:13.022879", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.019184", "stderr": "", "stderr_lines": [], "stdout": " 13:10:13 up 2 days, 2:41, 1 user, load average: 0.32, 0.20, 0.08", "stdout_lines": [" 13:10:13 up 2 days, 2:41, 1 user, load average: 0.32, 0.20, 0.08"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004600", "end": "2025-12-16 13:10:13.438184", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.433584", "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.004194", "end": "2025-12-16 13:10:13.444165", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.439971", "stderr": "", "stderr_lines": [], "stdout": "22%", "stdout_lines": ["22%"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005385", "end": "2025-12-16 13:10:13.475309", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.469924", "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.004234", "end": "2025-12-16 13:10:13.475857", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.471623", "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.005913", "end": "2025-12-16 13:10:13.479856", "msg": "", "rc": 0, "start": "2025-12-16 13:10:13.473943", "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.005375", "end": "2025-12-16 13:09:48.592565", "msg": "", "rc": 0, "start": "2025-12-16 13:09:48.587190", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005698", "end": "2025-12-16 13:09:42.487476", "msg": "", "rc": 0, "start": "2025-12-16 13:09:42.481778", "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.010537", "end": "2025-12-16 13:10:14.228402", "msg": "", "rc": 0, "start": "2025-12-16 13:10:14.217865", "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.011711", "end": "2025-12-16 13:10:14.219213", "msg": "", "rc": 0, "start": "2025-12-16 13:10:14.207502", "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.005836", "end": "2025-12-16 13:10:14.448397", "msg": "", "rc": 0, "start": "2025-12-16 13:10:14.442561", "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.005518", "end": "2025-12-16 13:09:45.648281", "msg": "", "rc": 0, "start": "2025-12-16 13:09:45.642763", "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.005411", "end": "2025-12-16 10:10:14.707660", "msg": "", "rc": 0, "start": "2025-12-16 10:10:14.702249", "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.004770", "end": "2025-12-16 13:09:51.989465", "msg": "", "rc": 0, "start": "2025-12-16 13:09:51.984695", "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.005404", "end": "2025-12-16 13:10:14.870587", "msg": "", "rc": 0, "start": "2025-12-16 13:10:14.865183", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020380", "end": "2025-12-16 13:10:15.079130", "msg": "", "rc": 0, "start": "2025-12-16 13:10:15.058750", "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.025191", "end": "2025-12-16 13:10:14.843569", "msg": "", "rc": 0, "start": "2025-12-16 13:10:14.818378", "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.004416", "end": "2025-12-16 13:10:15.378393", "msg": "", "rc": 0, "start": "2025-12-16 13:10:15.373977", "stderr": "", "stderr_lines": [], "stdout": "87.0%", "stdout_lines": ["87.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.004258", "end": "2025-12-16 13:10:15.402325", "msg": "", "rc": 0, "start": "2025-12-16 13:10:15.398067", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005103", "end": "2025-12-16 13:10:15.408914", "msg": "", "rc": 0, "start": "2025-12-16 13:10:15.403811", "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.004615", "end": "2025-12-16 13:10:15.407029", "msg": "", "rc": 0, "start": "2025-12-16 13:10:15.402414", "stderr": "", "stderr_lines": [], "stdout": "49.4%", "stdout_lines": ["49.4%"]}
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.005577", "end": "2025-12-16 13:10:15.433130", "msg": "", "rc": 0, "start": "2025-12-16 13:10:15.427553", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.003594", "end": "2025-12-16 13:09:50.515543", "msg": "", "rc": 0, "start": "2025-12-16 13:09:50.511949", "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.004565", "end": "2025-12-16 13:09:44.407782", "msg": "", "rc": 0, "start": "2025-12-16 13:09:44.403217", "stderr": "", "stderr_lines": [], "stdout": "71.4%", "stdout_lines": ["71.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.011097", "end": "2025-12-16 13:10:16.100168", "msg": "", "rc": 0, "start": "2025-12-16 13:10:16.089071", "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.012119", "end": "2025-12-16 13:10:16.121441", "msg": "", "rc": 0, "start": "2025-12-16 13:10:16.109322", "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.006569", "end": "2025-12-16 13:10:16.376466", "msg": "", "rc": 0, "start": "2025-12-16 13:10:16.369897", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004205", "end": "2025-12-16 13:09:47.569645", "msg": "", "rc": 0, "start": "2025-12-16 13:09:47.565440", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005260", "end": "2025-12-16 10:10:16.579051", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:10:16.573791", "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.003452", "end": "2025-12-16 13:09:53.815496", "msg": "", "rc": 0, "start": "2025-12-16 13:09:53.812044", "stderr": "", "stderr_lines": [], "stdout": "58.0%", "stdout_lines": ["58.0%"]}
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.009705", "end": "2025-12-16 13:10:17.045478", "msg": "", "rc": 0, "start": "2025-12-16 13:10:17.035773", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005358", "end": "2025-12-16 13:10:16.805229", "msg": "", "rc": 0, "start": "2025-12-16 13:10:16.799871", "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.025623", "end": "2025-12-16 13:10:16.806497", "msg": "", "rc": 0, "start": "2025-12-16 13:10:16.780874", "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.005179", "end": "2025-12-16 13:10:17.336849", "msg": "", "rc": 0, "start": "2025-12-16 13:10:17.331670", "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.004851", "end": "2025-12-16 13:10:17.349286", "msg": "", "rc": 0, "start": "2025-12-16 13:10:17.344435", "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.005699", "end": "2025-12-16 13:10:17.358518", "msg": "", "rc": 0, "start": "2025-12-16 13:10:17.352819", "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.003112", "end": "2025-12-16 13:10:17.386320", "msg": "", "rc": 0, "start": "2025-12-16 13:10:17.383208", "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.006753", "end": "2025-12-16 13:10:17.396256", "msg": "", "rc": 0, "start": "2025-12-16 13:10:17.389503", "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.006120", "end": "2025-12-16 13:09:52.464657", "msg": "", "rc": 0, "start": "2025-12-16 13:09:52.458537", "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.003391", "end": "2025-12-16 13:09:46.377069", "msg": "", "rc": 0, "start": "2025-12-16 13:09:46.373678", "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.011789", "end": "2025-12-16 13:10:18.056859", "msg": "", "rc": 0, "start": "2025-12-16 13:10:18.045070", "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.013064", "end": "2025-12-16 13:10:18.073972", "msg": "", "rc": 0, "start": "2025-12-16 13:10:18.060908", "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.003377", "end": "2025-12-16 13:10:18.324619", "msg": "", "rc": 0, "start": "2025-12-16 13:10:18.321242", "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.002925", "end": "2025-12-16 13:09:49.556918", "msg": "", "rc": 0, "start": "2025-12-16 13:09:49.553993", "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.004148", "end": "2025-12-16 10:10:18.536372", "msg": "", "rc": 0, "start": "2025-12-16 10:10:18.532224", "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.002755", "end": "2025-12-16 13:09:55.781396", "msg": "", "rc": 0, "start": "2025-12-16 13:09:55.778641", "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-16 13:10:18.738681", "msg": "", "rc": 0, "start": "2025-12-16 13:10:18.735759", "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.003705", "end": "2025-12-16 13:10:19.104166", "msg": "", "rc": 0, "start": "2025-12-16 13:10:19.100461", "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.028521", "end": "2025-12-16 13:10:18.746749", "msg": "", "rc": 0, "start": "2025-12-16 13:10:18.718228", "stderr": "", "stderr_lines": [], "stdout": "36.8°C", "stdout_lines": ["36.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.004236", "end": "2025-12-16 13:10:19.268693", "msg": "", "rc": 0, "start": "2025-12-16 13:10:19.264457", "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.003951", "end": "2025-12-16 13:10:19.295673", "msg": "", "rc": 0, "start": "2025-12-16 13:10:19.291722", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004516", "end": "2025-12-16 13:10:19.310706", "msg": "", "rc": 0, "start": "2025-12-16 13:10:19.306190", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.005251", "end": "2025-12-16 13:10:19.329116", "msg": "", "rc": 0, "start": "2025-12-16 13:10:19.323865", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.005434", "end": "2025-12-16 13:10:19.334523", "msg": "", "rc": 0, "start": "2025-12-16 13:10:19.329089", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.004532", "end": "2025-12-16 13:09:54.423285", "msg": "", "rc": 0, "start": "2025-12-16 13:09:54.418753", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005213", "end": "2025-12-16 13:09:48.294374", "msg": "", "rc": 0, "start": "2025-12-16 13:09:48.289161", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
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-16 13:10:20.056516", "msg": "", "rc": 0, "start": "2025-12-16 13:10:20.046296", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.011208", "end": "2025-12-16 13:10:20.126206", "msg": "", "rc": 0, "start": "2025-12-16 13:10:20.114998", "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.005539", "end": "2025-12-16 13:10:20.287981", "msg": "", "rc": 0, "start": "2025-12-16 13:10:20.282442", "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.007525", "end": "2025-12-16 13:09:51.515531", "msg": "", "rc": 0, "start": "2025-12-16 13:09:51.508006", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
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.004530", "end": "2025-12-16 13:09:57.781896", "msg": "", "rc": 0, "start": "2025-12-16 13:09:57.777366", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
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-16 10:10:20.595016", "msg": "", "rc": 0, "start": "2025-12-16 10:10:20.589086", "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.005276", "end": "2025-12-16 13:10:20.720566", "msg": "", "rc": 0, "start": "2025-12-16 13:10:20.715290", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.007579", "end": "2025-12-16 13:10:21.158982", "msg": "", "rc": 0, "start": "2025-12-16 13:10:21.151403", "stderr": "", "stderr_lines": [], "stdout": "1.49", "stdout_lines": ["1.49"]}
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.024183", "end": "2025-12-16 13:10:20.665869", "msg": "", "rc": 0, "start": "2025-12-16 13:10:20.641686", "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: 13:10:11 up 2 days, 2:42, 1 user, load average: 0.37, 0.23, 0.19\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.31\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:11 up 21 days, 1 min, 1 user, load average: 0.25, 0.24, 0.25\nDisk Usage: 23%\nMemory Usage: 87.0%\nCPU Load: 0.21\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:11 up 21 days, 21 min, 1 user, load average: 0.39, 0.41, 0.54\nDisk Usage: 14%\nMemory Usage: 49.4%\nCPU Load: 0.33\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:11 up 21 days, 1:34, 1 user, load average: 0.47, 0.54, 0.62\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 0.51\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:11 up 21 days, 2:20, 1 user, load average: 0.04, 0.03, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:12 up 14 days, 2:36, 1 user, load average: 0.30, 0.16, 0.10\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.28\nCPU Temp: 36.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:12 up 193 days, 4:43, 1 user, load average: 0.27, 0.24, 0.20\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.23\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:12 up 193 days, 4:43, 1 user, load average: 0.22, 0.23, 0.18\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: 13:09:46 up 10 days, 59 min, 0 user, load average: 0.09, 0.10, 0.10\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:09:40 up 16 days, 21:11, 0 user, load average: 0.05, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 71.4%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:12 up 2 days, 2:41, 1 user, load average: 0.08, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:09:43 up 19 days, 16:04, 0 user, load average: 0.36, 0.44, 0.44\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:09:50 up 16 days, 2:25, 0 user, load average: 0.00, 0.05, 0.11\nDisk Usage: 75%\nMemory Usage: 58.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:10AM up 21 days, 0 sec, 1 user, load averages: 0.40, 0.27, 0.19\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: 13:10:13 up 2 days, 2:41, 1 user, load average: 0.32, 0.20, 0.08\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:10:13 up 14:34, 1 user, load average: 1.44, 1.17, 1.11\nDisk Usage: 1%\nMemory Usage: 20.4%\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-16T18:10:21.984575+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `887c78a208724c3dbc1ab78e211b2f04` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:15:00.000802+00:00 |
| **Fin** | 2025-12-16T18:15:23.611799+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: [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: [hp2.i7.home]
ok: [hp.nas.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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003875", "end": "2025-12-16 13:15:11.325866", "msg": "", "rc": 0, "start": "2025-12-16 13:15:11.321991", "stderr": "", "stderr_lines": [], "stdout": " 13:15:11 up 21 days, 2:25, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 13:15:11 up 21 days, 2:25, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003406", "end": "2025-12-16 13:15:11.340253", "msg": "", "rc": 0, "start": "2025-12-16 13:15:11.336847", "stderr": "", "stderr_lines": [], "stdout": " 13:15:11 up 21 days, 26 min, 1 user, load average: 0.50, 0.58, 0.60", "stdout_lines": [" 13:15:11 up 21 days, 26 min, 1 user, load average: 0.50, 0.58, 0.60"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002899", "end": "2025-12-16 13:15:11.353817", "msg": "", "rc": 0, "start": "2025-12-16 13:15:11.350918", "stderr": "", "stderr_lines": [], "stdout": " 13:15:11 up 2 days, 2:47, 1 user, load average: 0.38, 0.29, 0.22", "stdout_lines": [" 13:15:11 up 2 days, 2:47, 1 user, load average: 0.38, 0.29, 0.22"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008715", "end": "2025-12-16 13:15:12.016355", "msg": "", "rc": 0, "start": "2025-12-16 13:15:12.007640", "stderr": "", "stderr_lines": [], "stdout": " 13:15:12 up 193 days, 4:48, 1 user, load average: 0.23, 0.19, 0.18", "stdout_lines": [" 13:15:12 up 193 days, 4:48, 1 user, load average: 0.23, 0.19, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009476", "end": "2025-12-16 13:15:12.039513", "msg": "", "rc": 0, "start": "2025-12-16 13:15:12.030037", "stderr": "", "stderr_lines": [], "stdout": " 13:15:12 up 193 days, 4:48, 1 user, load average: 0.41, 0.28, 0.21", "stdout_lines": [" 13:15:12 up 193 days, 4:48, 1 user, load average: 0.41, 0.28, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004246", "end": "2025-12-16 13:15:12.315783", "msg": "", "rc": 0, "start": "2025-12-16 13:15:11.311537", "stderr": "", "stderr_lines": [], "stdout": " 13:15:11 up 21 days, 6 min, 1 user, load average: 0.29, 0.26, 0.25", "stdout_lines": [" 13:15:11 up 21 days, 6 min, 1 user, load average: 0.29, 0.26, 0.25"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004521", "end": "2025-12-16 13:15:12.347387", "msg": "", "rc": 0, "start": "2025-12-16 13:15:11.342866", "stderr": "", "stderr_lines": [], "stdout": " 13:15:11 up 21 days, 1:39, 1 user, load average: 0.83, 0.68, 0.65", "stdout_lines": [" 13:15:11 up 21 days, 1:39, 1 user, load average: 0.83, 0.68, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002855", "end": "2025-12-16 13:14:47.119816", "msg": "", "rc": 0, "start": "2025-12-16 13:14:47.116961", "stderr": "", "stderr_lines": [], "stdout": " 13:14:47 up 10 days, 1:04, 0 user, load average: 0.08, 0.15, 0.11", "stdout_lines": [" 13:14:47 up 10 days, 1:04, 0 user, load average: 0.08, 0.15, 0.11"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003437", "end": "2025-12-16 13:14:41.043773", "msg": "", "rc": 0, "start": "2025-12-16 13:14:41.040336", "stderr": "", "stderr_lines": [], "stdout": " 13:14:41 up 16 days, 21:16, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 13:14:41 up 16 days, 21:16, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004661", "end": "2025-12-16 13:15:12.794437", "msg": "", "rc": 0, "start": "2025-12-16 13:15:12.789776", "stderr": "", "stderr_lines": [], "stdout": " 13:15:12 up 2 days, 2:46, 1 user, load average: 0.15, 0.08, 0.02", "stdout_lines": [" 13:15:12 up 2 days, 2:46, 1 user, load average: 0.15, 0.08, 0.02"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019460", "end": "2025-12-16 13:15:12.709302", "msg": "", "rc": 0, "start": "2025-12-16 13:15:12.689842", "stderr": "", "stderr_lines": [], "stdout": " 13:15:12 up 14 days, 2:41, 1 user, load average: 0.14, 0.12, 0.09", "stdout_lines": [" 13:15:12 up 14 days, 2:41, 1 user, load average: 0.14, 0.12, 0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003491", "end": "2025-12-16 13:14:43.942773", "msg": "", "rc": 0, "start": "2025-12-16 13:14:43.939282", "stderr": "", "stderr_lines": [], "stdout": " 13:14:43 up 19 days, 16:09, 0 user, load average: 0.66, 0.50, 0.47", "stdout_lines": [" 13:14:43 up 19 days, 16:09, 0 user, load average: 0.66, 0.50, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005739", "end": "2025-12-16 13:14:50.193232", "msg": "", "rc": 0, "start": "2025-12-16 13:14:50.187493", "stderr": "", "stderr_lines": [], "stdout": " 13:14:50 up 16 days, 2:30, 0 user, load average: 0.05, 0.09, 0.10", "stdout_lines": [" 13:14:50 up 16 days, 2:30, 0 user, load average: 0.05, 0.09, 0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004264", "end": "2025-12-16 10:15:13.053533", "msg": "", "rc": 0, "start": "2025-12-16 10:15:13.049269", "stderr": "", "stderr_lines": [], "stdout": "10:15AM up 21 days, 5 mins, 1 user, load averages: 0.15, 0.22, 0.19", "stdout_lines": ["10:15AM up 21 days, 5 mins, 1 user, load averages: 0.15, 0.22, 0.19"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007241", "end": "2025-12-16 13:15:13.609003", "msg": "", "rc": 0, "start": "2025-12-16 13:15:13.601762", "stderr": "", "stderr_lines": [], "stdout": " 13:15:13 up 14:39, 1 user, load average: 1.38, 1.22, 1.14", "stdout_lines": [" 13:15:13 up 14:39, 1 user, load average: 1.38, 1.22, 1.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005195", "end": "2025-12-16 13:15:14.231188", "msg": "", "rc": 0, "start": "2025-12-16 13:15:13.225993", "stderr": "", "stderr_lines": [], "stdout": " 13:15:13 up 2 days, 2:46, 1 user, load average: 0.02, 0.12, 0.08", "stdout_lines": [" 13:15:13 up 2 days, 2:46, 1 user, load average: 0.02, 0.12, 0.08"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004621", "end": "2025-12-16 13:15:14.684807", "msg": "", "rc": 0, "start": "2025-12-16 13:15:14.680186", "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-16 13:15:14.704576", "msg": "", "rc": 0, "start": "2025-12-16 13:15:14.700502", "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.004742", "end": "2025-12-16 13:15:14.707005", "msg": "", "rc": 0, "start": "2025-12-16 13:15:14.702263", "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.005676", "end": "2025-12-16 13:15:14.748370", "msg": "", "rc": 0, "start": "2025-12-16 13:15:14.742694", "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.004630", "end": "2025-12-16 13:15:14.762930", "msg": "", "rc": 0, "start": "2025-12-16 13:15:14.758300", "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.005069", "end": "2025-12-16 13:14:49.820346", "msg": "", "rc": 0, "start": "2025-12-16 13:14:49.815277", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005251", "end": "2025-12-16 13:14:43.724968", "msg": "", "rc": 0, "start": "2025-12-16 13:14:43.719717", "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.010643", "end": "2025-12-16 13:15:15.497538", "msg": "", "rc": 0, "start": "2025-12-16 13:15:15.486895", "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.012084", "end": "2025-12-16 13:15:15.517944", "msg": "", "rc": 0, "start": "2025-12-16 13:15:15.505860", "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.006233", "end": "2025-12-16 13:15:15.669716", "msg": "", "rc": 0, "start": "2025-12-16 13:15:15.663483", "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.005627", "end": "2025-12-16 13:14:46.901144", "msg": "", "rc": 0, "start": "2025-12-16 13:14:46.895517", "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.005736", "end": "2025-12-16 10:15:15.992517", "msg": "", "rc": 0, "start": "2025-12-16 10:15:15.986781", "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.004767", "end": "2025-12-16 13:14:53.234637", "msg": "", "rc": 0, "start": "2025-12-16 13:14:53.229870", "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.005338", "end": "2025-12-16 13:15:16.089072", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.083734", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020433", "end": "2025-12-16 13:15:16.749959", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.729526", "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.025178", "end": "2025-12-16 13:15:16.084557", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.059379", "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.004340", "end": "2025-12-16 13:15:16.594803", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.590463", "stderr": "", "stderr_lines": [], "stdout": "87.0%", "stdout_lines": ["87.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.004678", "end": "2025-12-16 13:15:16.628137", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.623459", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004087", "end": "2025-12-16 13:15:16.627311", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.623224", "stderr": "", "stderr_lines": [], "stdout": "21.9%", "stdout_lines": ["21.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.005054", "end": "2025-12-16 13:15:16.660647", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.655593", "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.005580", "end": "2025-12-16 13:15:16.671813", "msg": "", "rc": 0, "start": "2025-12-16 13:15:16.666233", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.003829", "end": "2025-12-16 13:14:51.715674", "msg": "", "rc": 0, "start": "2025-12-16 13:14:51.711845", "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.004256", "end": "2025-12-16 13:14:45.632037", "msg": "", "rc": 0, "start": "2025-12-16 13:14:45.627781", "stderr": "", "stderr_lines": [], "stdout": "71.5%", "stdout_lines": ["71.5%"]}
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.010929", "end": "2025-12-16 13:15:17.306808", "msg": "", "rc": 0, "start": "2025-12-16 13:15:17.295879", "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-16 13:15:17.344482", "msg": "", "rc": 0, "start": "2025-12-16 13:15:17.332400", "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.006437", "end": "2025-12-16 13:15:17.578605", "msg": "", "rc": 0, "start": "2025-12-16 13:15:17.572168", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.005026", "end": "2025-12-16 13:14:48.792132", "msg": "", "rc": 0, "start": "2025-12-16 13:14:48.787106", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.006582", "end": "2025-12-16 13:14:55.047262", "msg": "", "rc": 0, "start": "2025-12-16 13:14:55.040680", "stderr": "", "stderr_lines": [], "stdout": "55.6%", "stdout_lines": ["55.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.005737", "end": "2025-12-16 10:15:17.825125", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:15:17.819388", "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.005584", "end": "2025-12-16 13:15:17.995330", "msg": "", "rc": 0, "start": "2025-12-16 13:15:17.989746", "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.008667", "end": "2025-12-16 13:15:18.677862", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.669195", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.025757", "end": "2025-12-16 13:15:17.986211", "msg": "", "rc": 0, "start": "2025-12-16 13:15:17.960454", "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.005111", "end": "2025-12-16 13:15:18.491428", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.486317", "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.004879", "end": "2025-12-16 13:15:18.515402", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.510523", "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.005425", "end": "2025-12-16 13:15:18.532465", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.527040", "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.003454", "end": "2025-12-16 13:15:18.547757", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.544303", "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.006538", "end": "2025-12-16 13:15:18.577387", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.570849", "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.002840", "end": "2025-12-16 13:14:53.649594", "msg": "", "rc": 0, "start": "2025-12-16 13:14:53.646754", "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.003157", "end": "2025-12-16 13:14:47.545048", "msg": "", "rc": 0, "start": "2025-12-16 13:14:47.541891", "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.011901", "end": "2025-12-16 13:15:19.214734", "msg": "", "rc": 0, "start": "2025-12-16 13:15:19.202833", "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.013010", "end": "2025-12-16 13:15:19.263972", "msg": "", "rc": 0, "start": "2025-12-16 13:15:19.250962", "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-16 13:15:19.494498", "msg": "", "rc": 0, "start": "2025-12-16 13:15:19.491373", "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.002883", "end": "2025-12-16 13:14:50.734888", "msg": "", "rc": 0, "start": "2025-12-16 13:14:50.732005", "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.003129", "end": "2025-12-16 13:14:56.932068", "msg": "", "rc": 0, "start": "2025-12-16 13:14:56.928939", "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.003888", "end": "2025-12-16 10:15:19.728569", "msg": "", "rc": 0, "start": "2025-12-16 10:15:19.724681", "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.002887", "end": "2025-12-16 13:15:19.917351", "msg": "", "rc": 0, "start": "2025-12-16 13:15:19.914464", "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.004723", "end": "2025-12-16 13:15:20.728060", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.723337", "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.028634", "end": "2025-12-16 13:15:19.932652", "msg": "", "rc": 0, "start": "2025-12-16 13:15:19.904018", "stderr": "", "stderr_lines": [], "stdout": "36.2°C", "stdout_lines": ["36.2°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.004271", "end": "2025-12-16 13:15:20.455590", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.451319", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.004060", "end": "2025-12-16 13:15:20.488370", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.484310", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.004838", "end": "2025-12-16 13:15:20.486131", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.481293", "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.005477", "end": "2025-12-16 13:15:20.519754", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.514277", "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.005630", "end": "2025-12-16 13:15:20.533686", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.528056", "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.004140", "end": "2025-12-16 13:14:55.565664", "msg": "", "rc": 0, "start": "2025-12-16 13:14:55.561524", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005135", "end": "2025-12-16 13:14:49.471909", "msg": "", "rc": 0, "start": "2025-12-16 13:14:49.466774", "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.011088", "end": "2025-12-16 13:15:21.191167", "msg": "", "rc": 0, "start": "2025-12-16 13:15:21.180079", "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.010410", "end": "2025-12-16 13:15:21.264035", "msg": "", "rc": 0, "start": "2025-12-16 13:15:21.253625", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005660", "end": "2025-12-16 13:15:21.419461", "msg": "", "rc": 0, "start": "2025-12-16 13:15:21.413801", "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.004922", "end": "2025-12-16 13:14:52.638788", "msg": "", "rc": 0, "start": "2025-12-16 13:14:52.633866", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
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.004501", "end": "2025-12-16 13:14:58.932229", "msg": "", "rc": 0, "start": "2025-12-16 13:14:58.927728", "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.006168", "end": "2025-12-16 10:15:21.730371", "msg": "", "rc": 0, "start": "2025-12-16 10:15:21.724203", "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.005227", "end": "2025-12-16 13:15:21.843058", "msg": "", "rc": 0, "start": "2025-12-16 13:15:21.837831", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.007336", "end": "2025-12-16 13:15:22.668776", "msg": "", "rc": 0, "start": "2025-12-16 13:15:22.661440", "stderr": "", "stderr_lines": [], "stdout": "1.48", "stdout_lines": ["1.48"]}
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.024060", "end": "2025-12-16 13:15:21.837653", "msg": "", "rc": 0, "start": "2025-12-16 13:15:21.813593", "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: 13:15:11 up 21 days, 6 min, 1 user, load average: 0.29, 0.26, 0.25\nDisk Usage: 23%\nMemory Usage: 87.0%\nCPU Load: 0.25\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:11 up 2 days, 2:47, 1 user, load average: 0.38, 0.29, 0.22\nDisk Usage: 22%\nMemory Usage: 21.9%\nCPU Load: 0.47\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:11 up 21 days, 26 min, 1 user, load average: 0.50, 0.58, 0.60\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.49\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:11 up 21 days, 1:39, 1 user, load average: 0.83, 0.68, 0.65\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 0.76\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:11 up 21 days, 2:25, 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: 13:15:12 up 14 days, 2:41, 1 user, load average: 0.14, 0.12, 0.09\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.20\nCPU Temp: 36.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:12 up 193 days, 4:48, 1 user, load average: 0.41, 0.28, 0.21\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.34\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:12 up 193 days, 4:48, 1 user, load average: 0.23, 0.19, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.20\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:14:47 up 10 days, 1:04, 0 user, load average: 0.08, 0.15, 0.11\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:14:41 up 16 days, 21:16, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 71.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:14:43 up 19 days, 16:09, 0 user, load average: 0.66, 0.50, 0.47\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.56\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:15:12 up 2 days, 2:46, 1 user, load average: 0.15, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:14:50 up 16 days, 2:30, 0 user, load average: 0.05, 0.09, 0.10\nDisk Usage: 75%\nMemory Usage: 55.6%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:15AM up 21 days, 5 mins, 1 user, load averages: 0.15, 0.22, 0.19\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: 13:15:13 up 2 days, 2:46, 1 user, load average: 0.02, 0.12, 0.08\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: 13:15:13 up 14:39, 1 user, load average: 1.38, 1.22, 1.14\nDisk Usage: 1%\nMemory Usage: 20.5%\nCPU Load: 1.48\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-16T18:15:23.652668+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `b5831b9945d447289c051325c40c4ec8` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:20:00.004916+00:00 |
| **Fin** | 2025-12-16T18:20:22.102495+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: [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.002987", "end": "2025-12-16 13:20:11.909786", "msg": "", "rc": 0, "start": "2025-12-16 13:20:11.906799", "stderr": "", "stderr_lines": [], "stdout": " 13:20:11 up 21 days, 11 min, 1 user, load average: 0.21, 0.24, 0.25", "stdout_lines": [" 13:20:11 up 21 days, 11 min, 1 user, load average: 0.21, 0.24, 0.25"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003767", "end": "2025-12-16 13:20:11.926573", "msg": "", "rc": 0, "start": "2025-12-16 13:20:11.922806", "stderr": "", "stderr_lines": [], "stdout": " 13:20:11 up 21 days, 2:30, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 13:20:11 up 21 days, 2:30, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003435", "end": "2025-12-16 13:20:11.936900", "msg": "", "rc": 0, "start": "2025-12-16 13:20:11.933465", "stderr": "", "stderr_lines": [], "stdout": " 13:20:11 up 21 days, 31 min, 1 user, load average: 0.92, 0.68, 0.63", "stdout_lines": [" 13:20:11 up 21 days, 31 min, 1 user, load average: 0.92, 0.68, 0.63"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002861", "end": "2025-12-16 13:20:11.955451", "msg": "", "rc": 0, "start": "2025-12-16 13:20:11.952590", "stderr": "", "stderr_lines": [], "stdout": " 13:20:11 up 2 days, 2:52, 1 user, load average: 0.41, 0.35, 0.25", "stdout_lines": [" 13:20:11 up 2 days, 2:52, 1 user, load average: 0.41, 0.35, 0.25"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004346", "end": "2025-12-16 13:20:11.948325", "msg": "", "rc": 0, "start": "2025-12-16 13:20:11.943979", "stderr": "", "stderr_lines": [], "stdout": " 13:20:11 up 21 days, 1:44, 1 user, load average: 0.54, 0.62, 0.63", "stdout_lines": [" 13:20:11 up 21 days, 1:44, 1 user, load average: 0.54, 0.62, 0.63"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003303", "end": "2025-12-16 13:19:47.073863", "msg": "", "rc": 0, "start": "2025-12-16 13:19:47.070560", "stderr": "", "stderr_lines": [], "stdout": " 13:19:47 up 10 days, 1:09, 0 user, load average: 0.11, 0.09, 0.09", "stdout_lines": [" 13:19:47 up 10 days, 1:09, 0 user, load average: 0.11, 0.09, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003303", "end": "2025-12-16 13:19:40.919093", "msg": "", "rc": 0, "start": "2025-12-16 13:19:40.915790", "stderr": "", "stderr_lines": [], "stdout": " 13:19:40 up 16 days, 21:21, 0 user, load average: 0.08, 0.02, 0.00", "stdout_lines": [" 13:19:40 up 16 days, 21:21, 0 user, load average: 0.08, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008478", "end": "2025-12-16 13:20:12.621406", "msg": "", "rc": 0, "start": "2025-12-16 13:20:12.612928", "stderr": "", "stderr_lines": [], "stdout": " 13:20:12 up 193 days, 4:53, 1 user, load average: 0.15, 0.21, 0.19", "stdout_lines": [" 13:20:12 up 193 days, 4:53, 1 user, load average: 0.15, 0.21, 0.19"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009257", "end": "2025-12-16 13:20:12.679823", "msg": "", "rc": 0, "start": "2025-12-16 13:20:12.670566", "stderr": "", "stderr_lines": [], "stdout": " 13:20:12 up 193 days, 4:53, 1 user, load average: 0.41, 0.34, 0.25", "stdout_lines": [" 13:20:12 up 193 days, 4:53, 1 user, load average: 0.41, 0.34, 0.25"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004789", "end": "2025-12-16 13:20:12.936045", "msg": "", "rc": 0, "start": "2025-12-16 13:20:12.931256", "stderr": "", "stderr_lines": [], "stdout": " 13:20:12 up 2 days, 2:51, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 13:20:12 up 2 days, 2:51, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003375", "end": "2025-12-16 13:19:44.095246", "msg": "", "rc": 0, "start": "2025-12-16 13:19:44.091871", "stderr": "", "stderr_lines": [], "stdout": " 13:19:44 up 19 days, 16:14, 0 user, load average: 0.58, 0.55, 0.48", "stdout_lines": [" 13:19:44 up 19 days, 16:14, 0 user, load average: 0.58, 0.55, 0.48"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003252", "end": "2025-12-16 13:19:50.363731", "msg": "", "rc": 0, "start": "2025-12-16 13:19:50.360479", "stderr": "", "stderr_lines": [], "stdout": " 13:19:50 up 16 days, 2:35, 0 user, load average: 0.03, 0.11, 0.10", "stdout_lines": [" 13:19:50 up 16 days, 2:35, 0 user, load average: 0.03, 0.11, 0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004260", "end": "2025-12-16 10:20:13.140903", "msg": "", "rc": 0, "start": "2025-12-16 10:20:13.136643", "stderr": "", "stderr_lines": [], "stdout": "10:20AM up 21 days, 10 mins, 1 user, load averages: 0.11, 0.17, 0.17", "stdout_lines": ["10:20AM up 21 days, 10 mins, 1 user, load averages: 0.11, 0.17, 0.17"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008177", "end": "2025-12-16 13:20:14.202854", "msg": "", "rc": 0, "start": "2025-12-16 13:20:14.194677", "stderr": "", "stderr_lines": [], "stdout": " 13:20:14 up 14:44, 1 user, load average: 1.29, 1.19, 1.14", "stdout_lines": [" 13:20:14 up 14:44, 1 user, load average: 1.29, 1.19, 1.14"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003783", "end": "2025-12-16 13:20:13.361819", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.358036", "stderr": "", "stderr_lines": [], "stdout": " 13:20:13 up 2 days, 2:51, 1 user, load average: 0.05, 0.08, 0.08", "stdout_lines": [" 13:20:13 up 2 days, 2:51, 1 user, load average: 0.05, 0.08, 0.08"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019571", "end": "2025-12-16 13:20:13.323430", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.303859", "stderr": "", "stderr_lines": [], "stdout": " 13:20:13 up 14 days, 2:46, 1 user, load average: 0.21, 0.13, 0.10", "stdout_lines": [" 13:20:13 up 14 days, 2:46, 1 user, load average: 0.21, 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.004359", "end": "2025-12-16 13:20:13.840956", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.836597", "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.004086", "end": "2025-12-16 13:20:13.863308", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.859222", "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.004923", "end": "2025-12-16 13:20:13.888710", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.883787", "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.004625", "end": "2025-12-16 13:20:13.904810", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.900185", "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.005584", "end": "2025-12-16 13:20:13.907490", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.901906", "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.005863", "end": "2025-12-16 13:19:48.990093", "msg": "", "rc": 0, "start": "2025-12-16 13:19:48.984230", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005493", "end": "2025-12-16 13:19:42.863337", "msg": "", "rc": 0, "start": "2025-12-16 13:19:42.857844", "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.010820", "end": "2025-12-16 13:20:14.605116", "msg": "", "rc": 0, "start": "2025-12-16 13:20:14.594296", "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.011708", "end": "2025-12-16 13:20:14.630095", "msg": "", "rc": 0, "start": "2025-12-16 13:20:14.618387", "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-16 13:20:14.845298", "msg": "", "rc": 0, "start": "2025-12-16 13:20:14.839577", "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.005255", "end": "2025-12-16 13:19:46.035492", "msg": "", "rc": 0, "start": "2025-12-16 13:19:46.030237", "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.005851", "end": "2025-12-16 10:20:15.102912", "msg": "", "rc": 0, "start": "2025-12-16 10:20:15.097061", "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.005958", "end": "2025-12-16 13:19:52.365907", "msg": "", "rc": 0, "start": "2025-12-16 13:19:52.359949", "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.005484", "end": "2025-12-16 13:20:15.282751", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.277267", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021274", "end": "2025-12-16 13:20:16.236149", "msg": "", "rc": 0, "start": "2025-12-16 13:20:16.214875", "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.025255", "end": "2025-12-16 13:20:15.254107", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.228852", "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.004797", "end": "2025-12-16 13:20:15.768845", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.764048", "stderr": "", "stderr_lines": [], "stdout": "87.0%", "stdout_lines": ["87.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.004157", "end": "2025-12-16 13:20:15.795154", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.790997", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004714", "end": "2025-12-16 13:20:15.810464", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.805750", "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.005059", "end": "2025-12-16 13:20:15.823627", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.818568", "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.005632", "end": "2025-12-16 13:20:15.825069", "msg": "", "rc": 0, "start": "2025-12-16 13:20:15.819437", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.004063", "end": "2025-12-16 13:19:50.933424", "msg": "", "rc": 0, "start": "2025-12-16 13:19:50.929361", "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.004600", "end": "2025-12-16 13:19:44.791038", "msg": "", "rc": 0, "start": "2025-12-16 13:19:44.786438", "stderr": "", "stderr_lines": [], "stdout": "71.5%", "stdout_lines": ["71.5%"]}
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.010900", "end": "2025-12-16 13:20:16.481034", "msg": "", "rc": 0, "start": "2025-12-16 13:20:16.470134", "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.011837", "end": "2025-12-16 13:20:16.543045", "msg": "", "rc": 0, "start": "2025-12-16 13:20:16.531208", "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.005908", "end": "2025-12-16 13:20:16.785536", "msg": "", "rc": 0, "start": "2025-12-16 13:20:16.779628", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004575", "end": "2025-12-16 13:19:47.964904", "msg": "", "rc": 0, "start": "2025-12-16 13:19:47.960329", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.003793", "end": "2025-12-16 13:19:54.195587", "msg": "", "rc": 0, "start": "2025-12-16 13:19:54.191794", "stderr": "", "stderr_lines": [], "stdout": "56.4%", "stdout_lines": ["56.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.005209", "end": "2025-12-16 10:20:17.004228", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:20:16.999019", "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.005351", "end": "2025-12-16 13:20:17.202634", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.197283", "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.010910", "end": "2025-12-16 13:20:18.232358", "msg": "", "rc": 0, "start": "2025-12-16 13:20:18.221448", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025678", "end": "2025-12-16 13:20:17.188055", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.162377", "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.005118", "end": "2025-12-16 13:20:17.712679", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.707561", "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.004828", "end": "2025-12-16 13:20:17.720387", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.715559", "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.005490", "end": "2025-12-16 13:20:17.746503", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.741013", "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.003495", "end": "2025-12-16 13:20:17.753820", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.750325", "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.006714", "end": "2025-12-16 13:20:17.770007", "msg": "", "rc": 0, "start": "2025-12-16 13:20:17.763293", "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.002590", "end": "2025-12-16 13:19:52.829932", "msg": "", "rc": 0, "start": "2025-12-16 13:19:52.827342", "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.002884", "end": "2025-12-16 13:19:46.719921", "msg": "", "rc": 0, "start": "2025-12-16 13:19:46.717037", "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.011680", "end": "2025-12-16 13:20:18.423399", "msg": "", "rc": 0, "start": "2025-12-16 13:20:18.411719", "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.013023", "end": "2025-12-16 13:20:18.455086", "msg": "", "rc": 0, "start": "2025-12-16 13:20:18.442063", "stderr": "", "stderr_lines": [], "stdout": "38.0°C", "stdout_lines": ["38.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.003793", "end": "2025-12-16 13:20:18.661271", "msg": "", "rc": 0, "start": "2025-12-16 13:20:18.657478", "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.002818", "end": "2025-12-16 13:19:49.885188", "msg": "", "rc": 0, "start": "2025-12-16 13:19:49.882370", "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.002743", "end": "2025-12-16 13:19:56.165655", "msg": "", "rc": 0, "start": "2025-12-16 13:19:56.162912", "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-16 10:20:18.942860", "msg": "", "rc": 0, "start": "2025-12-16 10:20:18.938924", "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-16 13:20:19.098335", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.095380", "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.003989", "end": "2025-12-16 13:20:19.177124", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.173135", "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.028555", "end": "2025-12-16 13:20:19.113765", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.085210", "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.004231", "end": "2025-12-16 13:20:19.627604", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.623373", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.004841", "end": "2025-12-16 13:20:19.658557", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.653716", "stderr": "", "stderr_lines": [], "stdout": "1.15", "stdout_lines": ["1.15"]}
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-16 13:20:19.657582", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.653570", "stderr": "", "stderr_lines": [], "stdout": "0.45", "stdout_lines": ["0.45"]}
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.005007", "end": "2025-12-16 13:20:19.678545", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.673538", "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.005251", "end": "2025-12-16 13:20:19.692881", "msg": "", "rc": 0, "start": "2025-12-16 13:20:19.687630", "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.004328", "end": "2025-12-16 13:19:54.750209", "msg": "", "rc": 0, "start": "2025-12-16 13:19:54.745881", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005030", "end": "2025-12-16 13:19:48.629757", "msg": "", "rc": 0, "start": "2025-12-16 13:19:48.624727", "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.010051", "end": "2025-12-16 13:20:20.447201", "msg": "", "rc": 0, "start": "2025-12-16 13:20:20.437150", "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.011262", "end": "2025-12-16 13:20:20.454400", "msg": "", "rc": 0, "start": "2025-12-16 13:20:20.443138", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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-16 13:20:20.612967", "msg": "", "rc": 0, "start": "2025-12-16 13:20:20.607317", "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.004851", "end": "2025-12-16 13:19:51.800799", "msg": "", "rc": 0, "start": "2025-12-16 13:19:51.795948", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
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.005854", "end": "2025-12-16 10:20:20.921024", "msg": "", "rc": 0, "start": "2025-12-16 10:20:20.915170", "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.004235", "end": "2025-12-16 13:19:58.151478", "msg": "", "rc": 0, "start": "2025-12-16 13:19:58.147243", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.005249", "end": "2025-12-16 13:20:21.052051", "msg": "", "rc": 0, "start": "2025-12-16 13:20:21.046802", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.008774", "end": "2025-12-16 13:20:21.188187", "msg": "", "rc": 0, "start": "2025-12-16 13:20:21.179413", "stderr": "", "stderr_lines": [], "stdout": "1.27", "stdout_lines": ["1.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.024300", "end": "2025-12-16 13:20:21.033365", "msg": "", "rc": 0, "start": "2025-12-16 13:20:21.009065", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:11 up 21 days, 11 min, 1 user, load average: 0.21, 0.24, 0.25\nDisk Usage: 23%\nMemory Usage: 87.0%\nCPU Load: 0.26\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:11 up 21 days, 31 min, 1 user, load average: 0.92, 0.68, 0.63\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 1.15\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:11 up 2 days, 2:52, 1 user, load average: 0.41, 0.35, 0.25\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.45\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:11 up 21 days, 1:44, 1 user, load average: 0.54, 0.62, 0.63\nDisk Usage: 14%\nMemory Usage: 59.9%\nCPU Load: 0.58\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:11 up 21 days, 2:30, 1 user, load average: 0.00, 0.00, 0.00\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: 13:20:13 up 14 days, 2:46, 1 user, load average: 0.21, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.28\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:12 up 193 days, 4:53, 1 user, load average: 0.41, 0.34, 0.25\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.43\nCPU Temp: 38.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:12 up 193 days, 4:53, 1 user, load average: 0.15, 0.21, 0.19\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.13\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:19:47 up 10 days, 1:09, 0 user, load average: 0.11, 0.09, 0.09\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:19:40 up 16 days, 21:21, 0 user, load average: 0.08, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 71.5%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:12 up 2 days, 2:51, 1 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:19:44 up 19 days, 16:14, 0 user, load average: 0.58, 0.55, 0.48\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.57\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:19:50 up 16 days, 2:35, 0 user, load average: 0.03, 0.11, 0.10\nDisk Usage: 75%\nMemory Usage: 56.4%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:20AM up 21 days, 10 mins, 1 user, load averages: 0.11, 0.17, 0.17\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: 13:20:13 up 2 days, 2:51, 1 user, load average: 0.05, 0.08, 0.08\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:20:14 up 14:44, 1 user, load average: 1.29, 1.19, 1.14\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.27\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-16T18:20:22.146209+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a16afe5c71cc42faa1fd807908516ab4` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:25:00.002361+00:00 |
| **Fin** | 2025-12-16T18:25:22.270800+00:00 |
| **Durée** | 22.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: [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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003719", "end": "2025-12-16 13:25:11.629230", "msg": "", "rc": 0, "start": "2025-12-16 13:25:11.625511", "stderr": "", "stderr_lines": [], "stdout": " 13:25:11 up 21 days, 36 min, 1 user, load average: 0.73, 0.79, 0.70", "stdout_lines": [" 13:25:11 up 21 days, 36 min, 1 user, load average: 0.73, 0.79, 0.70"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003629", "end": "2025-12-16 13:25:11.632034", "msg": "", "rc": 0, "start": "2025-12-16 13:25:11.628405", "stderr": "", "stderr_lines": [], "stdout": " 13:25:11 up 21 days, 2:35, 1 user, load average: 0.01, 0.00, 0.00", "stdout_lines": [" 13:25:11 up 21 days, 2:35, 1 user, load average: 0.01, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002802", "end": "2025-12-16 13:25:11.659633", "msg": "", "rc": 0, "start": "2025-12-16 13:25:11.656831", "stderr": "", "stderr_lines": [], "stdout": " 13:25:11 up 2 days, 2:57, 1 user, load average: 0.20, 0.26, 0.24", "stdout_lines": [" 13:25:11 up 2 days, 2:57, 1 user, load average: 0.20, 0.26, 0.24"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004047", "end": "2025-12-16 13:25:11.666071", "msg": "", "rc": 0, "start": "2025-12-16 13:25:11.662024", "stderr": "", "stderr_lines": [], "stdout": " 13:25:11 up 21 days, 1:49, 1 user, load average: 0.82, 0.76, 0.69", "stdout_lines": [" 13:25:11 up 21 days, 1:49, 1 user, load average: 0.82, 0.76, 0.69"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002905", "end": "2025-12-16 13:24:46.762143", "msg": "", "rc": 0, "start": "2025-12-16 13:24:46.759238", "stderr": "", "stderr_lines": [], "stdout": " 13:24:46 up 10 days, 1:14, 0 user, load average: 0.11, 0.11, 0.09", "stdout_lines": [" 13:24:46 up 10 days, 1:14, 0 user, load average: 0.11, 0.11, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008646", "end": "2025-12-16 13:25:12.324708", "msg": "", "rc": 0, "start": "2025-12-16 13:25:12.316062", "stderr": "", "stderr_lines": [], "stdout": " 13:25:12 up 193 days, 4:58, 1 user, load average: 0.30, 0.23, 0.19", "stdout_lines": [" 13:25:12 up 193 days, 4:58, 1 user, load average: 0.30, 0.23, 0.19"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.010264", "end": "2025-12-16 13:25:12.352261", "msg": "", "rc": 0, "start": "2025-12-16 13:25:12.341997", "stderr": "", "stderr_lines": [], "stdout": " 13:25:12 up 193 days, 4:58, 1 user, load average: 0.27, 0.27, 0.23", "stdout_lines": [" 13:25:12 up 193 days, 4:58, 1 user, load average: 0.27, 0.27, 0.23"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004091", "end": "2025-12-16 13:25:12.620091", "msg": "", "rc": 0, "start": "2025-12-16 13:25:11.616000", "stderr": "", "stderr_lines": [], "stdout": " 13:25:11 up 21 days, 16 min, 1 user, load average: 0.39, 0.30, 0.28", "stdout_lines": [" 13:25:11 up 21 days, 16 min, 1 user, load average: 0.39, 0.30, 0.28"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003642", "end": "2025-12-16 13:24:41.090605", "msg": "", "rc": 0, "start": "2025-12-16 13:24:41.086963", "stderr": "", "stderr_lines": [], "stdout": " 13:24:41 up 16 days, 21:26, 0 user, load average: 0.06, 0.02, 0.00", "stdout_lines": [" 13:24:41 up 16 days, 21:26, 0 user, load average: 0.06, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004650", "end": "2025-12-16 13:25:12.834398", "msg": "", "rc": 0, "start": "2025-12-16 13:25:12.829748", "stderr": "", "stderr_lines": [], "stdout": " 13:25:12 up 2 days, 2:56, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 13:25:12 up 2 days, 2:56, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003270", "end": "2025-12-16 13:24:43.969441", "msg": "", "rc": 0, "start": "2025-12-16 13:24:43.966171", "stderr": "", "stderr_lines": [], "stdout": " 13:24:43 up 19 days, 16:19, 0 user, load average: 0.89, 0.55, 0.49", "stdout_lines": [" 13:24:43 up 19 days, 16:19, 0 user, load average: 0.89, 0.55, 0.49"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002839", "end": "2025-12-16 13:24:50.279890", "msg": "", "rc": 0, "start": "2025-12-16 13:24:50.277051", "stderr": "", "stderr_lines": [], "stdout": " 13:24:50 up 16 days, 2:40, 0 user, load average: 0.17, 0.17, 0.12", "stdout_lines": [" 13:24:50 up 16 days, 2:40, 0 user, load average: 0.17, 0.17, 0.12"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004382", "end": "2025-12-16 10:25:13.111585", "msg": "", "rc": 0, "start": "2025-12-16 10:25:13.107203", "stderr": "", "stderr_lines": [], "stdout": "10:25AM up 21 days, 15 mins, 1 user, load averages: 0.22, 0.21, 0.17", "stdout_lines": ["10:25AM up 21 days, 15 mins, 1 user, load averages: 0.22, 0.21, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019163", "end": "2025-12-16 13:25:13.017605", "msg": "", "rc": 0, "start": "2025-12-16 13:25:12.998442", "stderr": "", "stderr_lines": [], "stdout": " 13:25:13 up 14 days, 2:51, 1 user, load average: 0.20, 0.15, 0.10", "stdout_lines": [" 13:25:13 up 14 days, 2:51, 1 user, load average: 0.20, 0.15, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008017", "end": "2025-12-16 13:25:13.424415", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.416398", "stderr": "", "stderr_lines": [], "stdout": " 13:25:13 up 14:49, 1 user, load average: 1.61, 1.26, 1.17", "stdout_lines": [" 13:25:13 up 14:49, 1 user, load average: 1.61, 1.26, 1.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003903", "end": "2025-12-16 13:25:13.266420", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.262517", "stderr": "", "stderr_lines": [], "stdout": " 13:25:13 up 2 days, 2:56, 1 user, load average: 0.12, 0.09, 0.07", "stdout_lines": [" 13:25:13 up 2 days, 2:56, 1 user, load average: 0.12, 0.09, 0.07"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004508", "end": "2025-12-16 13:25:13.694292", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.689784", "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.004003", "end": "2025-12-16 13:25:13.693835", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.689832", "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.004767", "end": "2025-12-16 13:25:13.732064", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.727297", "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-16 13:25:13.757277", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.752581", "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.005667", "end": "2025-12-16 13:25:13.778749", "msg": "", "rc": 0, "start": "2025-12-16 13:25:13.773082", "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.005826", "end": "2025-12-16 13:24:48.810188", "msg": "", "rc": 0, "start": "2025-12-16 13:24:48.804362", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005601", "end": "2025-12-16 13:24:42.712697", "msg": "", "rc": 0, "start": "2025-12-16 13:24:42.707096", "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.010517", "end": "2025-12-16 13:25:14.438796", "msg": "", "rc": 0, "start": "2025-12-16 13:25:14.428279", "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-16 13:25:14.464857", "msg": "", "rc": 0, "start": "2025-12-16 13:25:14.453241", "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.005668", "end": "2025-12-16 13:25:14.683986", "msg": "", "rc": 0, "start": "2025-12-16 13:25:14.678318", "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.005184", "end": "2025-12-16 13:24:45.888920", "msg": "", "rc": 0, "start": "2025-12-16 13:24:45.883736", "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.004937", "end": "2025-12-16 13:24:52.159248", "msg": "", "rc": 0, "start": "2025-12-16 13:24:52.154311", "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.005465", "end": "2025-12-16 10:25:14.940669", "msg": "", "rc": 0, "start": "2025-12-16 10:25:14.935204", "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.005329", "end": "2025-12-16 13:25:15.105052", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.099723", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018366", "end": "2025-12-16 13:25:15.400798", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.382432", "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.025283", "end": "2025-12-16 13:25:15.107877", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.082594", "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.004460", "end": "2025-12-16 13:25:15.619808", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.615348", "stderr": "", "stderr_lines": [], "stdout": "86.9%", "stdout_lines": ["86.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.004094", "end": "2025-12-16 13:25:15.642419", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.638325", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004960", "end": "2025-12-16 13:25:15.652872", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.647912", "stderr": "", "stderr_lines": [], "stdout": "48.7%", "stdout_lines": ["48.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.005156", "end": "2025-12-16 13:25:15.673900", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.668744", "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.005582", "end": "2025-12-16 13:25:15.680374", "msg": "", "rc": 0, "start": "2025-12-16 13:25:15.674792", "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.003651", "end": "2025-12-16 13:24:50.732839", "msg": "", "rc": 0, "start": "2025-12-16 13:24:50.729188", "stderr": "", "stderr_lines": [], "stdout": "70.5%", "stdout_lines": ["70.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.004578", "end": "2025-12-16 13:24:44.631293", "msg": "", "rc": 0, "start": "2025-12-16 13:24:44.626715", "stderr": "", "stderr_lines": [], "stdout": "70.5%", "stdout_lines": ["70.5%"]}
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.010883", "end": "2025-12-16 13:25:16.311168", "msg": "", "rc": 0, "start": "2025-12-16 13:25:16.300285", "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.012106", "end": "2025-12-16 13:25:16.358835", "msg": "", "rc": 0, "start": "2025-12-16 13:25:16.346729", "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.005824", "end": "2025-12-16 13:25:16.608727", "msg": "", "rc": 0, "start": "2025-12-16 13:25:16.602903", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.004199", "end": "2025-12-16 13:24:47.804724", "msg": "", "rc": 0, "start": "2025-12-16 13:24:47.800525", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.004231", "end": "2025-12-16 13:24:54.025800", "msg": "", "rc": 0, "start": "2025-12-16 13:24:54.021569", "stderr": "", "stderr_lines": [], "stdout": "55.5%", "stdout_lines": ["55.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.005212", "end": "2025-12-16 10:25:16.812825", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:25:16.807613", "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.005566", "end": "2025-12-16 13:25:17.035925", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.030359", "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.010265", "end": "2025-12-16 13:25:17.362910", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.352645", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025970", "end": "2025-12-16 13:25:17.012423", "msg": "", "rc": 0, "start": "2025-12-16 13:25:16.986453", "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.005270", "end": "2025-12-16 13:25:17.537971", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.532701", "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.005268", "end": "2025-12-16 13:25:17.557300", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.552032", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.006217", "end": "2025-12-16 13:25:17.564743", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.558526", "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.002760", "end": "2025-12-16 13:25:17.583705", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.580945", "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.006214", "end": "2025-12-16 13:25:17.592841", "msg": "", "rc": 0, "start": "2025-12-16 13:25:17.586627", "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.002554", "end": "2025-12-16 13:24:52.637192", "msg": "", "rc": 0, "start": "2025-12-16 13:24:52.634638", "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.003169", "end": "2025-12-16 13:24:46.517019", "msg": "", "rc": 0, "start": "2025-12-16 13:24:46.513850", "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.011798", "end": "2025-12-16 13:25:18.221264", "msg": "", "rc": 0, "start": "2025-12-16 13:25:18.209466", "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.013046", "end": "2025-12-16 13:25:18.273563", "msg": "", "rc": 0, "start": "2025-12-16 13:25:18.260517", "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.003602", "end": "2025-12-16 13:25:18.489294", "msg": "", "rc": 0, "start": "2025-12-16 13:25:18.485692", "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.002989", "end": "2025-12-16 13:24:49.680742", "msg": "", "rc": 0, "start": "2025-12-16 13:24:49.677753", "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.002763", "end": "2025-12-16 13:24:55.937337", "msg": "", "rc": 0, "start": "2025-12-16 13:24:55.934574", "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.004100", "end": "2025-12-16 10:25:18.746054", "msg": "", "rc": 0, "start": "2025-12-16 10:25:18.741954", "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.005290", "end": "2025-12-16 13:25:19.303268", "msg": "", "rc": 0, "start": "2025-12-16 13:25:19.297978", "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.002901", "end": "2025-12-16 13:25:18.935641", "msg": "", "rc": 0, "start": "2025-12-16 13:25:18.932740", "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.028387", "end": "2025-12-16 13:25:18.929487", "msg": "", "rc": 0, "start": "2025-12-16 13:25:18.901100", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.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.004334", "end": "2025-12-16 13:25:19.469000", "msg": "", "rc": 0, "start": "2025-12-16 13:25:19.464666", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.004004", "end": "2025-12-16 13:25:19.494782", "msg": "", "rc": 0, "start": "2025-12-16 13:25:19.490778", "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.004770", "end": "2025-12-16 13:25:19.497605", "msg": "", "rc": 0, "start": "2025-12-16 13:25:19.492835", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.004788", "end": "2025-12-16 13:25:19.523898", "msg": "", "rc": 0, "start": "2025-12-16 13:25:19.519110", "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.005582", "end": "2025-12-16 13:25:19.541283", "msg": "", "rc": 0, "start": "2025-12-16 13:25:19.535701", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
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.004573", "end": "2025-12-16 13:24:54.602599", "msg": "", "rc": 0, "start": "2025-12-16 13:24:54.598026", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005220", "end": "2025-12-16 13:24:48.487283", "msg": "", "rc": 0, "start": "2025-12-16 13:24:48.482063", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.010192", "end": "2025-12-16 13:25:20.268419", "msg": "", "rc": 0, "start": "2025-12-16 13:25:20.258227", "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.011244", "end": "2025-12-16 13:25:20.281973", "msg": "", "rc": 0, "start": "2025-12-16 13:25:20.270729", "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.005607", "end": "2025-12-16 13:25:20.464710", "msg": "", "rc": 0, "start": "2025-12-16 13:25:20.459103", "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.005254", "end": "2025-12-16 13:24:51.669864", "msg": "", "rc": 0, "start": "2025-12-16 13:24:51.664610", "stderr": "", "stderr_lines": [], "stdout": "0.76", "stdout_lines": ["0.76"]}
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.006436", "end": "2025-12-16 10:25:20.728790", "msg": "", "rc": 0, "start": "2025-12-16 10:25:20.722354", "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.004122", "end": "2025-12-16 13:24:57.976941", "msg": "", "rc": 0, "start": "2025-12-16 13:24:57.972819", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005150", "end": "2025-12-16 13:25:20.878992", "msg": "", "rc": 0, "start": "2025-12-16 13:25:20.873842", "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.022693", "end": "2025-12-16 13:25:21.400126", "msg": "", "rc": 0, "start": "2025-12-16 13:25:21.377433", "stderr": "", "stderr_lines": [], "stdout": "1.96", "stdout_lines": ["1.96"]}
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.024111", "end": "2025-12-16 13:25:20.858505", "msg": "", "rc": 0, "start": "2025-12-16 13:25:20.834394", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:11 up 2 days, 2:57, 1 user, load average: 0.20, 0.26, 0.24\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.24\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:11 up 21 days, 16 min, 1 user, load average: 0.39, 0.30, 0.28\nDisk Usage: 23%\nMemory Usage: 86.9%\nCPU Load: 0.33\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:11 up 21 days, 36 min, 1 user, load average: 0.73, 0.79, 0.70\nDisk Usage: 14%\nMemory Usage: 48.7%\nCPU Load: 0.62\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:11 up 21 days, 1:49, 1 user, load average: 0.82, 0.76, 0.69\nDisk Usage: 14%\nMemory Usage: 59.5%\nCPU Load: 0.83\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:11 up 21 days, 2:35, 1 user, load average: 0.01, 0.00, 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: 13:25:13 up 14 days, 2:51, 1 user, load average: 0.20, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 20.1%\nCPU Load: 0.25\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:12 up 193 days, 4:58, 1 user, load average: 0.27, 0.27, 0.23\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.39\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:12 up 193 days, 4:58, 1 user, load average: 0.30, 0.23, 0.19\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.25\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:24:46 up 10 days, 1:14, 0 user, load average: 0.11, 0.11, 0.09\nDisk Usage: 47%\nMemory Usage: 70.5%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:24:41 up 16 days, 21:26, 0 user, load average: 0.06, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 70.5%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:12 up 2 days, 2:56, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:24:43 up 19 days, 16:19, 0 user, load average: 0.89, 0.55, 0.49\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.76\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:24:50 up 16 days, 2:40, 0 user, load average: 0.17, 0.17, 0.12\nDisk Usage: 75%\nMemory Usage: 55.5%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:25AM up 21 days, 15 mins, 1 user, load averages: 0.22, 0.21, 0.17\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: 13:25:13 up 2 days, 2:56, 1 user, load average: 0.12, 0.09, 0.07\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:25:13 up 14:49, 1 user, load average: 1.61, 1.26, 1.17\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.96\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-16T18:25:22.311035+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `bd17383650d14dbbba455a248af137fd` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:30:00.002962+00:00 |
| **Fin** | 2025-12-16T18:30:23.795806+00:00 |
| **Durée** | 23.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: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003705", "end": "2025-12-16 13:30:12.372358", "msg": "", "rc": 0, "start": "2025-12-16 13:30:12.368653", "stderr": "", "stderr_lines": [], "stdout": " 13:30:12 up 21 days, 2:40, 1 user, load average: 0.08, 0.02, 0.01", "stdout_lines": [" 13:30:12 up 21 days, 2:40, 1 user, load average: 0.08, 0.02, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002979", "end": "2025-12-16 13:30:12.400398", "msg": "", "rc": 0, "start": "2025-12-16 13:30:12.397419", "stderr": "", "stderr_lines": [], "stdout": " 13:30:12 up 2 days, 3:02, 1 user, load average: 0.18, 0.21, 0.22", "stdout_lines": [" 13:30:12 up 2 days, 3:02, 1 user, load average: 0.18, 0.21, 0.22"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009296", "end": "2025-12-16 13:30:13.101132", "msg": "", "rc": 0, "start": "2025-12-16 13:30:13.091836", "stderr": "", "stderr_lines": [], "stdout": " 13:30:13 up 193 days, 5:03, 1 user, load average: 0.33, 0.24, 0.22", "stdout_lines": [" 13:30:13 up 193 days, 5:03, 1 user, load average: 0.33, 0.24, 0.22"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003663", "end": "2025-12-16 13:30:13.367080", "msg": "", "rc": 0, "start": "2025-12-16 13:30:12.363417", "stderr": "", "stderr_lines": [], "stdout": " 13:30:12 up 21 days, 21 min, 1 user, load average: 0.24, 0.23, 0.25", "stdout_lines": [" 13:30:12 up 21 days, 21 min, 1 user, load average: 0.24, 0.23, 0.25"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003760", "end": "2025-12-16 13:30:13.372530", "msg": "", "rc": 0, "start": "2025-12-16 13:30:12.368770", "stderr": "", "stderr_lines": [], "stdout": " 13:30:12 up 21 days, 41 min, 1 user, load average: 0.75, 0.60, 0.63", "stdout_lines": [" 13:30:12 up 21 days, 41 min, 1 user, load average: 0.75, 0.60, 0.63"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005301", "end": "2025-12-16 13:30:13.407360", "msg": "", "rc": 0, "start": "2025-12-16 13:30:12.402059", "stderr": "", "stderr_lines": [], "stdout": " 13:30:12 up 21 days, 1:54, 1 user, load average: 0.83, 0.84, 0.75", "stdout_lines": [" 13:30:12 up 21 days, 1:54, 1 user, load average: 0.83, 0.84, 0.75"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002799", "end": "2025-12-16 13:29:48.404909", "msg": "", "rc": 0, "start": "2025-12-16 13:29:48.402110", "stderr": "", "stderr_lines": [], "stdout": " 13:29:48 up 10 days, 1:19, 0 user, load average: 0.37, 0.22, 0.13", "stdout_lines": [" 13:29:48 up 10 days, 1:19, 0 user, load average: 0.37, 0.22, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008553", "end": "2025-12-16 13:30:13.825516", "msg": "", "rc": 0, "start": "2025-12-16 13:30:13.816963", "stderr": "", "stderr_lines": [], "stdout": " 13:30:13 up 193 days, 5:03, 1 user, load average: 0.23, 0.18, 0.18", "stdout_lines": [" 13:30:13 up 193 days, 5:03, 1 user, load average: 0.23, 0.18, 0.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019336", "end": "2025-12-16 13:30:13.757470", "msg": "", "rc": 0, "start": "2025-12-16 13:30:13.738134", "stderr": "", "stderr_lines": [], "stdout": " 13:30:13 up 14 days, 2:56, 1 user, load average: 0.21, 0.14, 0.10", "stdout_lines": [" 13:30:13 up 14 days, 2:56, 1 user, load average: 0.21, 0.14, 0.10"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004734", "end": "2025-12-16 13:30:13.872444", "msg": "", "rc": 0, "start": "2025-12-16 13:30:13.867710", "stderr": "", "stderr_lines": [], "stdout": " 13:30:13 up 2 days, 3:01, 1 user, load average: 0.08, 0.04, 0.01", "stdout_lines": [" 13:30:13 up 2 days, 3:01, 1 user, load average: 0.08, 0.04, 0.01"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004924", "end": "2025-12-16 13:29:42.319997", "msg": "", "rc": 0, "start": "2025-12-16 13:29:42.315073", "stderr": "", "stderr_lines": [], "stdout": " 13:29:42 up 16 days, 21:31, 0 user, load average: 0.17, 0.13, 0.05", "stdout_lines": [" 13:29:42 up 16 days, 21:31, 0 user, load average: 0.17, 0.13, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007935", "end": "2025-12-16 13:30:14.826373", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.818438", "stderr": "", "stderr_lines": [], "stdout": " 13:30:14 up 14:54, 1 user, load average: 1.32, 1.23, 1.18", "stdout_lines": [" 13:30:14 up 14:54, 1 user, load average: 1.32, 1.23, 1.18"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004528", "end": "2025-12-16 10:30:14.306703", "msg": "", "rc": 0, "start": "2025-12-16 10:30:14.302175", "stderr": "", "stderr_lines": [], "stdout": "10:30AM up 21 days, 20 mins, 1 user, load averages: 0.22, 0.23, 0.18", "stdout_lines": ["10:30AM up 21 days, 20 mins, 1 user, load averages: 0.22, 0.23, 0.18"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002737", "end": "2025-12-16 13:29:51.540771", "msg": "", "rc": 0, "start": "2025-12-16 13:29:51.538034", "stderr": "", "stderr_lines": [], "stdout": " 13:29:51 up 16 days, 2:45, 0 user, load average: 0.11, 0.14, 0.10", "stdout_lines": [" 13:29:51 up 16 days, 2:45, 0 user, load average: 0.11, 0.14, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003945", "end": "2025-12-16 13:30:14.331155", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.327210", "stderr": "", "stderr_lines": [], "stdout": " 13:30:14 up 2 days, 3:01, 1 user, load average: 0.00, 0.02, 0.05", "stdout_lines": [" 13:30:14 up 2 days, 3:01, 1 user, load average: 0.00, 0.02, 0.05"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003359", "end": "2025-12-16 13:29:45.381689", "msg": "", "rc": 0, "start": "2025-12-16 13:29:45.378330", "stderr": "", "stderr_lines": [], "stdout": " 13:29:45 up 19 days, 16:24, 0 user, load average: 0.41, 0.50, 0.48", "stdout_lines": [" 13:29:45 up 19 days, 16:24, 0 user, load average: 0.41, 0.50, 0.48"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004368", "end": "2025-12-16 13:30:14.751649", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.747281", "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.004117", "end": "2025-12-16 13:30:14.758389", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.754272", "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.004569", "end": "2025-12-16 13:30:14.778550", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.773981", "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.004332", "end": "2025-12-16 13:30:14.811548", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.807216", "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.005648", "end": "2025-12-16 13:30:14.821338", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.815690", "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.004809", "end": "2025-12-16 13:29:49.873376", "msg": "", "rc": 0, "start": "2025-12-16 13:29:49.868567", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005403", "end": "2025-12-16 13:29:43.761696", "msg": "", "rc": 0, "start": "2025-12-16 13:29:43.756293", "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.010625", "end": "2025-12-16 13:30:15.514196", "msg": "", "rc": 0, "start": "2025-12-16 13:30:15.503571", "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.011706", "end": "2025-12-16 13:30:15.568049", "msg": "", "rc": 0, "start": "2025-12-16 13:30:15.556343", "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.005698", "end": "2025-12-16 13:30:15.757920", "msg": "", "rc": 0, "start": "2025-12-16 13:30:15.752222", "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.005468", "end": "2025-12-16 13:29:46.942716", "msg": "", "rc": 0, "start": "2025-12-16 13:29:46.937248", "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.004859", "end": "2025-12-16 13:29:53.218480", "msg": "", "rc": 0, "start": "2025-12-16 13:29:53.213621", "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.005760", "end": "2025-12-16 10:30:16.036825", "msg": "", "rc": 0, "start": "2025-12-16 10:30:16.031065", "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.005390", "end": "2025-12-16 13:30:16.186654", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.181264", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.023882", "end": "2025-12-16 13:30:16.888942", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.865060", "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.025032", "end": "2025-12-16 13:30:16.233651", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.208619", "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.004324", "end": "2025-12-16 13:30:16.760889", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.756565", "stderr": "", "stderr_lines": [], "stdout": "86.8%", "stdout_lines": ["86.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.004260", "end": "2025-12-16 13:30:16.778790", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.774530", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004763", "end": "2025-12-16 13:30:16.790128", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.785365", "stderr": "", "stderr_lines": [], "stdout": "48.7%", "stdout_lines": ["48.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.005205", "end": "2025-12-16 13:30:16.819699", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.814494", "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.005750", "end": "2025-12-16 13:30:16.825704", "msg": "", "rc": 0, "start": "2025-12-16 13:30:16.819954", "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.003923", "end": "2025-12-16 13:29:51.895380", "msg": "", "rc": 0, "start": "2025-12-16 13:29:51.891457", "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.004554", "end": "2025-12-16 13:29:45.770816", "msg": "", "rc": 0, "start": "2025-12-16 13:29:45.766262", "stderr": "", "stderr_lines": [], "stdout": "70.5%", "stdout_lines": ["70.5%"]}
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.010928", "end": "2025-12-16 13:30:17.465741", "msg": "", "rc": 0, "start": "2025-12-16 13:30:17.454813", "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.011967", "end": "2025-12-16 13:30:17.497175", "msg": "", "rc": 0, "start": "2025-12-16 13:30:17.485208", "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.005864", "end": "2025-12-16 13:30:17.759751", "msg": "", "rc": 0, "start": "2025-12-16 13:30:17.753887", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004198", "end": "2025-12-16 13:29:48.947022", "msg": "", "rc": 0, "start": "2025-12-16 13:29:48.942824", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.004715", "end": "2025-12-16 13:29:55.164585", "msg": "", "rc": 0, "start": "2025-12-16 13:29:55.159870", "stderr": "", "stderr_lines": [], "stdout": "55.8%", "stdout_lines": ["55.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.006008", "end": "2025-12-16 10:30:17.958253", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:30:17.952245", "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.005369", "end": "2025-12-16 13:30:18.181843", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.176474", "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.011827", "end": "2025-12-16 13:30:18.943671", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.931844", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.025747", "end": "2025-12-16 13:30:18.163933", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.138186", "stderr": "", "stderr_lines": [], "stdout": "19.2%", "stdout_lines": ["19.2%"]}
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.005428", "end": "2025-12-16 13:30:18.677124", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.671696", "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.005069", "end": "2025-12-16 13:30:18.699567", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.694498", "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.003516", "end": "2025-12-16 13:30:18.721983", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.718467", "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.005847", "end": "2025-12-16 13:30:18.727453", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.721606", "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.006335", "end": "2025-12-16 13:30:18.750898", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.744563", "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.002598", "end": "2025-12-16 13:29:53.781738", "msg": "", "rc": 0, "start": "2025-12-16 13:29:53.779140", "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-16 13:29:47.681115", "msg": "", "rc": 0, "start": "2025-12-16 13:29:47.678252", "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.011750", "end": "2025-12-16 13:30:19.380192", "msg": "", "rc": 0, "start": "2025-12-16 13:30:19.368442", "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.012925", "end": "2025-12-16 13:30:19.411169", "msg": "", "rc": 0, "start": "2025-12-16 13:30:19.398244", "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.003201", "end": "2025-12-16 13:30:19.647746", "msg": "", "rc": 0, "start": "2025-12-16 13:30:19.644545", "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-16 13:29:50.851273", "msg": "", "rc": 0, "start": "2025-12-16 13:29:50.848233", "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.003898", "end": "2025-12-16 10:30:19.874938", "msg": "", "rc": 0, "start": "2025-12-16 10:30:19.871040", "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.002817", "end": "2025-12-16 13:29:57.101278", "msg": "", "rc": 0, "start": "2025-12-16 13:29:57.098461", "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.002974", "end": "2025-12-16 13:30:20.075906", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.072932", "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.004386", "end": "2025-12-16 13:30:20.923533", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.919147", "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.028873", "end": "2025-12-16 13:30:20.066211", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.037338", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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.004279", "end": "2025-12-16 13:30:20.588270", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.583991", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.004067", "end": "2025-12-16 13:30:20.595271", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.591204", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.004770", "end": "2025-12-16 13:30:20.614161", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.609391", "stderr": "", "stderr_lines": [], "stdout": "0.64", "stdout_lines": ["0.64"]}
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-16 13:30:20.624815", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.620104", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005628", "end": "2025-12-16 13:30:20.641530", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.635902", "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.004620", "end": "2025-12-16 13:29:55.679992", "msg": "", "rc": 0, "start": "2025-12-16 13:29:55.675372", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005098", "end": "2025-12-16 13:29:49.570313", "msg": "", "rc": 0, "start": "2025-12-16 13:29:49.565215", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.010165", "end": "2025-12-16 13:30:21.380920", "msg": "", "rc": 0, "start": "2025-12-16 13:30:21.370755", "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.011219", "end": "2025-12-16 13:30:21.403853", "msg": "", "rc": 0, "start": "2025-12-16 13:30:21.392634", "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.005562", "end": "2025-12-16 13:30:21.538074", "msg": "", "rc": 0, "start": "2025-12-16 13:30:21.532512", "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.005080", "end": "2025-12-16 13:29:52.739717", "msg": "", "rc": 0, "start": "2025-12-16 13:29:52.734637", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
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.005953", "end": "2025-12-16 10:30:21.872595", "msg": "", "rc": 0, "start": "2025-12-16 10:30:21.866642", "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.004630", "end": "2025-12-16 13:29:59.098122", "msg": "", "rc": 0, "start": "2025-12-16 13:29:59.093492", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.005231", "end": "2025-12-16 13:30:21.964122", "msg": "", "rc": 0, "start": "2025-12-16 13:30:21.958891", "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.008017", "end": "2025-12-16 13:30:22.880966", "msg": "", "rc": 0, "start": "2025-12-16 13:30:22.872949", "stderr": "", "stderr_lines": [], "stdout": "1.50", "stdout_lines": ["1.50"]}
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.024111", "end": "2025-12-16 13:30:21.973144", "msg": "", "rc": 0, "start": "2025-12-16 13:30:21.949033", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
TASK [Display health status] ***************************************************
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:12 up 21 days, 41 min, 1 user, load average: 0.75, 0.60, 0.63\nDisk Usage: 14%\nMemory Usage: 48.7%\nCPU Load: 0.64\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:12 up 21 days, 21 min, 1 user, load average: 0.24, 0.23, 0.25\nDisk Usage: 23%\nMemory Usage: 86.8%\nCPU Load: 0.20\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:12 up 2 days, 3:02, 1 user, load average: 0.18, 0.21, 0.22\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.33\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:12 up 21 days, 1:54, 1 user, load average: 0.83, 0.84, 0.75\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.85\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:12 up 21 days, 2:40, 1 user, load average: 0.08, 0.02, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:13 up 14 days, 2:56, 1 user, load average: 0.21, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.2%\nCPU Load: 0.20\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:13 up 193 days, 5:03, 1 user, load average: 0.33, 0.24, 0.22\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.28\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:13 up 193 days, 5:03, 1 user, load average: 0.23, 0.18, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.27\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:29:48 up 10 days, 1:19, 0 user, load average: 0.37, 0.22, 0.13\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:13 up 2 days, 3:01, 1 user, load average: 0.08, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:29:42 up 16 days, 21:31, 0 user, load average: 0.17, 0.13, 0.05\nDisk Usage: 24%\nMemory Usage: 70.5%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:29:45 up 19 days, 16:24, 0 user, load average: 0.41, 0.50, 0.48\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:29:51 up 16 days, 2:45, 0 user, load average: 0.11, 0.14, 0.10\nDisk Usage: 75%\nMemory Usage: 55.8%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:30AM up 21 days, 20 mins, 1 user, load averages: 0.22, 0.23, 0.18\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: 13:30:14 up 2 days, 3:01, 1 user, load average: 0.00, 0.02, 0.05\nDisk Usage: 79%\nMemory Usage: 13.3%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:30:14 up 14:54, 1 user, load average: 1.32, 1.23, 1.18\nDisk Usage: 1%\nMemory Usage: 20.5%\nCPU Load: 1.50\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-16T18:30:23.837285+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `fff65496a308427da31f63e6d8e00764` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:35:00.001109+00:00 |
| **Fin** | 2025-12-16T18:35:22.328375+00:00 |
| **Durée** | 22.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: [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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003157", "end": "2025-12-16 13:35:11.792882", "msg": "", "rc": 0, "start": "2025-12-16 13:35:11.789725", "stderr": "", "stderr_lines": [], "stdout": " 13:35:11 up 21 days, 46 min, 1 user, load average: 0.35, 0.48, 0.58", "stdout_lines": [" 13:35:11 up 21 days, 46 min, 1 user, load average: 0.35, 0.48, 0.58"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004127", "end": "2025-12-16 13:35:11.801649", "msg": "", "rc": 0, "start": "2025-12-16 13:35:11.797522", "stderr": "", "stderr_lines": [], "stdout": " 13:35:11 up 21 days, 2:45, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 13:35:11 up 21 days, 2:45, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002782", "end": "2025-12-16 13:35:11.826184", "msg": "", "rc": 0, "start": "2025-12-16 13:35:11.823402", "stderr": "", "stderr_lines": [], "stdout": " 13:35:11 up 2 days, 3:07, 1 user, load average: 0.16, 0.18, 0.19", "stdout_lines": [" 13:35:11 up 2 days, 3:07, 1 user, load average: 0.16, 0.18, 0.19"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003907", "end": "2025-12-16 13:35:11.831978", "msg": "", "rc": 0, "start": "2025-12-16 13:35:11.828071", "stderr": "", "stderr_lines": [], "stdout": " 13:35:11 up 21 days, 1:59, 1 user, load average: 0.78, 0.80, 0.75", "stdout_lines": [" 13:35:11 up 21 days, 1:59, 1 user, load average: 0.78, 0.80, 0.75"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002807", "end": "2025-12-16 13:34:46.894529", "msg": "", "rc": 0, "start": "2025-12-16 13:34:46.891722", "stderr": "", "stderr_lines": [], "stdout": " 13:34:46 up 10 days, 1:24, 0 user, load average: 0.04, 0.17, 0.14", "stdout_lines": [" 13:34:46 up 10 days, 1:24, 0 user, load average: 0.04, 0.17, 0.14"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008623", "end": "2025-12-16 13:35:12.494288", "msg": "", "rc": 0, "start": "2025-12-16 13:35:12.485665", "stderr": "", "stderr_lines": [], "stdout": " 13:35:12 up 193 days, 5:08, 1 user, load average: 0.20, 0.18, 0.18", "stdout_lines": [" 13:35:12 up 193 days, 5:08, 1 user, load average: 0.20, 0.18, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009476", "end": "2025-12-16 13:35:12.529189", "msg": "", "rc": 0, "start": "2025-12-16 13:35:12.519713", "stderr": "", "stderr_lines": [], "stdout": " 13:35:12 up 193 days, 5:08, 1 user, load average: 0.48, 0.33, 0.25", "stdout_lines": [" 13:35:12 up 193 days, 5:08, 1 user, load average: 0.48, 0.33, 0.25"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003805", "end": "2025-12-16 13:35:12.788014", "msg": "", "rc": 0, "start": "2025-12-16 13:35:11.784209", "stderr": "", "stderr_lines": [], "stdout": " 13:35:11 up 21 days, 26 min, 1 user, load average: 0.10, 0.19, 0.24", "stdout_lines": [" 13:35:11 up 21 days, 26 min, 1 user, load average: 0.10, 0.19, 0.24"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003631", "end": "2025-12-16 13:34:41.263565", "msg": "", "rc": 0, "start": "2025-12-16 13:34:41.259934", "stderr": "", "stderr_lines": [], "stdout": " 13:34:41 up 16 days, 21:36, 0 user, load average: 0.08, 0.06, 0.04", "stdout_lines": [" 13:34:41 up 16 days, 21:36, 0 user, load average: 0.08, 0.06, 0.04"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004673", "end": "2025-12-16 13:35:13.016206", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.011533", "stderr": "", "stderr_lines": [], "stdout": " 13:35:13 up 2 days, 3:06, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 13:35:13 up 2 days, 3:06, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003330", "end": "2025-12-16 13:34:44.175603", "msg": "", "rc": 0, "start": "2025-12-16 13:34:44.172273", "stderr": "", "stderr_lines": [], "stdout": " 13:34:44 up 19 days, 16:29, 0 user, load average: 0.89, 0.66, 0.54", "stdout_lines": [" 13:34:44 up 19 days, 16:29, 0 user, load average: 0.89, 0.66, 0.54"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003101", "end": "2025-12-16 13:34:50.461839", "msg": "", "rc": 0, "start": "2025-12-16 13:34:50.458738", "stderr": "", "stderr_lines": [], "stdout": " 13:34:50 up 16 days, 2:50, 0 user, load average: 0.15, 0.11, 0.09", "stdout_lines": [" 13:34:50 up 16 days, 2:50, 0 user, load average: 0.15, 0.11, 0.09"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019428", "end": "2025-12-16 13:35:13.183316", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.163888", "stderr": "", "stderr_lines": [], "stdout": " 13:35:13 up 14 days, 3:01, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 13:35:13 up 14 days, 3:01, 1 user, load average: 0.22, 0.14, 0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004334", "end": "2025-12-16 10:35:13.335353", "msg": "", "rc": 0, "start": "2025-12-16 10:35:13.331019", "stderr": "", "stderr_lines": [], "stdout": "10:35AM up 21 days, 25 mins, 1 user, load averages: 0.34, 0.25, 0.18", "stdout_lines": ["10:35AM up 21 days, 25 mins, 1 user, load averages: 0.34, 0.25, 0.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003817", "end": "2025-12-16 13:35:13.452427", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.448610", "stderr": "", "stderr_lines": [], "stdout": " 13:35:13 up 2 days, 3:06, 1 user, load average: 0.68, 0.32, 0.15", "stdout_lines": [" 13:35:13 up 2 days, 3:06, 1 user, load average: 0.68, 0.32, 0.15"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008398", "end": "2025-12-16 13:35:14.384301", "msg": "", "rc": 0, "start": "2025-12-16 13:35:14.375903", "stderr": "", "stderr_lines": [], "stdout": " 13:35:14 up 15:00, 1 user, load average: 1.05, 1.12, 1.15", "stdout_lines": [" 13:35:14 up 15:00, 1 user, load average: 1.05, 1.12, 1.15"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004362", "end": "2025-12-16 13:35:13.885246", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.880884", "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.004035", "end": "2025-12-16 13:35:13.891811", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.887776", "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.004710", "end": "2025-12-16 13:35:13.907993", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.903283", "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.004651", "end": "2025-12-16 13:35:13.926808", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.922157", "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.005990", "end": "2025-12-16 13:35:13.964867", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.958877", "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.005169", "end": "2025-12-16 13:34:48.983199", "msg": "", "rc": 0, "start": "2025-12-16 13:34:48.978030", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006878", "end": "2025-12-16 13:34:42.929489", "msg": "", "rc": 0, "start": "2025-12-16 13:34:42.922611", "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.010563", "end": "2025-12-16 13:35:14.620208", "msg": "", "rc": 0, "start": "2025-12-16 13:35:14.609645", "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.011785", "end": "2025-12-16 13:35:14.662515", "msg": "", "rc": 0, "start": "2025-12-16 13:35:14.650730", "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.005674", "end": "2025-12-16 13:35:14.877235", "msg": "", "rc": 0, "start": "2025-12-16 13:35:14.871561", "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.005437", "end": "2025-12-16 13:34:46.145062", "msg": "", "rc": 0, "start": "2025-12-16 13:34:46.139625", "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.005473", "end": "2025-12-16 10:35:15.129148", "msg": "", "rc": 0, "start": "2025-12-16 10:35:15.123675", "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.005125", "end": "2025-12-16 13:34:52.344815", "msg": "", "rc": 0, "start": "2025-12-16 13:34:52.339690", "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.005527", "end": "2025-12-16 13:35:15.298201", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.292674", "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.025007", "end": "2025-12-16 13:35:15.279787", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.254780", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020634", "end": "2025-12-16 13:35:16.424677", "msg": "", "rc": 0, "start": "2025-12-16 13:35:16.404043", "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.004366", "end": "2025-12-16 13:35:15.832646", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.828280", "stderr": "", "stderr_lines": [], "stdout": "86.8%", "stdout_lines": ["86.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.004132", "end": "2025-12-16 13:35:15.853130", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.848998", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005024", "end": "2025-12-16 13:35:15.868594", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.863570", "stderr": "", "stderr_lines": [], "stdout": "48.6%", "stdout_lines": ["48.6%"]}
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.004978", "end": "2025-12-16 13:35:15.886538", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.881560", "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.005725", "end": "2025-12-16 13:35:15.903956", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.898231", "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.004049", "end": "2025-12-16 13:34:50.964138", "msg": "", "rc": 0, "start": "2025-12-16 13:34:50.960089", "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.004433", "end": "2025-12-16 13:34:44.854425", "msg": "", "rc": 0, "start": "2025-12-16 13:34:44.849992", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.011166", "end": "2025-12-16 13:35:16.543628", "msg": "", "rc": 0, "start": "2025-12-16 13:35:16.532462", "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.012028", "end": "2025-12-16 13:35:16.581107", "msg": "", "rc": 0, "start": "2025-12-16 13:35:16.569079", "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.005778", "end": "2025-12-16 13:35:16.836437", "msg": "", "rc": 0, "start": "2025-12-16 13:35:16.830659", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.003979", "end": "2025-12-16 13:34:48.023331", "msg": "", "rc": 0, "start": "2025-12-16 13:34:48.019352", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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-16 13:34:54.259145", "msg": "", "rc": 0, "start": "2025-12-16 13:34:54.255272", "stderr": "", "stderr_lines": [], "stdout": "55.9%", "stdout_lines": ["55.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.005216", "end": "2025-12-16 10:35:17.043791", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:35:17.038575", "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.005543", "end": "2025-12-16 13:35:17.269610", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.264067", "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.009436", "end": "2025-12-16 13:35:17.320453", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.311017", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.025376", "end": "2025-12-16 13:35:17.238290", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.212914", "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.005170", "end": "2025-12-16 13:35:17.765713", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.760543", "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.004921", "end": "2025-12-16 13:35:17.779267", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.774346", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005578", "end": "2025-12-16 13:35:17.794963", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.789385", "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.003340", "end": "2025-12-16 13:35:17.815751", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.812411", "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.006303", "end": "2025-12-16 13:35:17.830334", "msg": "", "rc": 0, "start": "2025-12-16 13:35:17.824031", "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.002613", "end": "2025-12-16 13:34:52.891325", "msg": "", "rc": 0, "start": "2025-12-16 13:34:52.888712", "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.003145", "end": "2025-12-16 13:34:46.764103", "msg": "", "rc": 0, "start": "2025-12-16 13:34:46.760958", "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.011743", "end": "2025-12-16 13:35:18.455182", "msg": "", "rc": 0, "start": "2025-12-16 13:35:18.443439", "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.012866", "end": "2025-12-16 13:35:18.497136", "msg": "", "rc": 0, "start": "2025-12-16 13:35:18.484270", "stderr": "", "stderr_lines": [], "stdout": "37.5°C", "stdout_lines": ["37.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.003209", "end": "2025-12-16 13:35:18.748430", "msg": "", "rc": 0, "start": "2025-12-16 13:35:18.745221", "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.003090", "end": "2025-12-16 13:34:49.952517", "msg": "", "rc": 0, "start": "2025-12-16 13:34:49.949427", "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.002548", "end": "2025-12-16 13:34:56.176705", "msg": "", "rc": 0, "start": "2025-12-16 13:34:56.174157", "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.004085", "end": "2025-12-16 10:35:18.971793", "msg": "", "rc": 0, "start": "2025-12-16 10:35:18.967708", "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.002900", "end": "2025-12-16 13:35:19.166496", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.163596", "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.004413", "end": "2025-12-16 13:35:19.332332", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.327919", "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.028809", "end": "2025-12-16 13:35:19.173543", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.144734", "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.004237", "end": "2025-12-16 13:35:19.710185", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.705948", "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.004042", "end": "2025-12-16 13:35:19.727187", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.723145", "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.005350", "end": "2025-12-16 13:35:19.728858", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.723508", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
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.005301", "end": "2025-12-16 13:35:19.761883", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.756582", "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.005570", "end": "2025-12-16 13:35:19.776482", "msg": "", "rc": 0, "start": "2025-12-16 13:35:19.770912", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.004248", "end": "2025-12-16 13:34:54.810751", "msg": "", "rc": 0, "start": "2025-12-16 13:34:54.806503", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.004921", "end": "2025-12-16 13:34:48.710207", "msg": "", "rc": 0, "start": "2025-12-16 13:34:48.705286", "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.010088", "end": "2025-12-16 13:35:20.493701", "msg": "", "rc": 0, "start": "2025-12-16 13:35:20.483613", "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.011166", "end": "2025-12-16 13:35:20.510893", "msg": "", "rc": 0, "start": "2025-12-16 13:35:20.499727", "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.005696", "end": "2025-12-16 13:35:20.682836", "msg": "", "rc": 0, "start": "2025-12-16 13:35:20.677140", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.004956", "end": "2025-12-16 13:34:51.891075", "msg": "", "rc": 0, "start": "2025-12-16 13:34:51.886119", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
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.006092", "end": "2025-12-16 10:35:20.982181", "msg": "", "rc": 0, "start": "2025-12-16 10:35:20.976089", "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.004348", "end": "2025-12-16 13:34:58.223936", "msg": "", "rc": 0, "start": "2025-12-16 13:34:58.219588", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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-16 13:35:21.114522", "msg": "", "rc": 0, "start": "2025-12-16 13:35:21.109222", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.008709", "end": "2025-12-16 13:35:21.352891", "msg": "", "rc": 0, "start": "2025-12-16 13:35:21.344182", "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.024441", "end": "2025-12-16 13:35:21.109552", "msg": "", "rc": 0, "start": "2025-12-16 13:35:21.085111", "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: 13:35:11 up 21 days, 26 min, 1 user, load average: 0.10, 0.19, 0.24\nDisk Usage: 23%\nMemory Usage: 86.8%\nCPU Load: 0.08\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:11 up 2 days, 3:07, 1 user, load average: 0.16, 0.18, 0.19\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.13\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:11 up 21 days, 46 min, 1 user, load average: 0.35, 0.48, 0.58\nDisk Usage: 14%\nMemory Usage: 48.6%\nCPU Load: 0.38\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:11 up 21 days, 1:59, 1 user, load average: 0.78, 0.80, 0.75\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.80\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:11 up 21 days, 2:45, 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: 13:35:13 up 14 days, 3:01, 1 user, load average: 0.22, 0.14, 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: 13:35:12 up 193 days, 5:08, 1 user, load average: 0.48, 0.33, 0.25\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.48\nCPU Temp: 37.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:12 up 193 days, 5:08, 1 user, load average: 0.20, 0.18, 0.18\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.31\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:34:46 up 10 days, 1:24, 0 user, load average: 0.04, 0.17, 0.14\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.41\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:34:41 up 16 days, 21:36, 0 user, load average: 0.08, 0.06, 0.04\nDisk Usage: 24%\nMemory Usage: 70.6%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:13 up 2 days, 3:06, 1 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:34:44 up 19 days, 16:29, 0 user, load average: 0.89, 0.66, 0.54\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.83\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:34:50 up 16 days, 2:50, 0 user, load average: 0.15, 0.11, 0.09\nDisk Usage: 75%\nMemory Usage: 55.9%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:35AM up 21 days, 25 mins, 1 user, load averages: 0.34, 0.25, 0.18\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: 13:35:13 up 2 days, 3:06, 1 user, load average: 0.68, 0.32, 0.15\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.62\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:35:14 up 15:00, 1 user, load average: 1.05, 1.12, 1.15\nDisk Usage: 1%\nMemory Usage: 20.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-16T18:35:22.375382+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `cc01f50724d8407197f6f47f3fd8fc65` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:40:00.004098+00:00 |
| **Fin** | 2025-12-16T18:40:22.047806+00:00 |
| **Durée** | 22.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: [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.003013", "end": "2025-12-16 13:40:11.455186", "msg": "", "rc": 0, "start": "2025-12-16 13:40:11.452173", "stderr": "", "stderr_lines": [], "stdout": " 13:40:11 up 21 days, 31 min, 1 user, load average: 0.28, 0.23, 0.24", "stdout_lines": [" 13:40:11 up 21 days, 31 min, 1 user, load average: 0.28, 0.23, 0.24"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003379", "end": "2025-12-16 13:40:11.462450", "msg": "", "rc": 0, "start": "2025-12-16 13:40:11.459071", "stderr": "", "stderr_lines": [], "stdout": " 13:40:11 up 21 days, 2:50, 1 user, load average: 0.01, 0.01, 0.00", "stdout_lines": [" 13:40:11 up 21 days, 2:50, 1 user, load average: 0.01, 0.01, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003341", "end": "2025-12-16 13:40:11.469099", "msg": "", "rc": 0, "start": "2025-12-16 13:40:11.465758", "stderr": "", "stderr_lines": [], "stdout": " 13:40:11 up 21 days, 51 min, 1 user, load average: 0.87, 0.66, 0.62", "stdout_lines": [" 13:40:11 up 21 days, 51 min, 1 user, load average: 0.87, 0.66, 0.62"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003914", "end": "2025-12-16 13:40:11.485091", "msg": "", "rc": 0, "start": "2025-12-16 13:40:11.481177", "stderr": "", "stderr_lines": [], "stdout": " 13:40:11 up 21 days, 2:04, 1 user, load average: 0.75, 0.79, 0.75", "stdout_lines": [" 13:40:11 up 21 days, 2:04, 1 user, load average: 0.75, 0.79, 0.75"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002867", "end": "2025-12-16 13:40:11.488044", "msg": "", "rc": 0, "start": "2025-12-16 13:40:11.485177", "stderr": "", "stderr_lines": [], "stdout": " 13:40:11 up 2 days, 3:12, 1 user, load average: 0.35, 0.23, 0.20", "stdout_lines": [" 13:40:11 up 2 days, 3:12, 1 user, load average: 0.35, 0.23, 0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002955", "end": "2025-12-16 13:39:46.565253", "msg": "", "rc": 0, "start": "2025-12-16 13:39:46.562298", "stderr": "", "stderr_lines": [], "stdout": " 13:39:46 up 10 days, 1:29, 0 user, load average: 0.02, 0.11, 0.13", "stdout_lines": [" 13:39:46 up 10 days, 1:29, 0 user, load average: 0.02, 0.11, 0.13"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003549", "end": "2025-12-16 13:39:40.439468", "msg": "", "rc": 0, "start": "2025-12-16 13:39:40.435919", "stderr": "", "stderr_lines": [], "stdout": " 13:39:40 up 16 days, 21:41, 0 user, load average: 0.06, 0.07, 0.04", "stdout_lines": [" 13:39:40 up 16 days, 21:41, 0 user, load average: 0.06, 0.07, 0.04"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008634", "end": "2025-12-16 13:40:12.152598", "msg": "", "rc": 0, "start": "2025-12-16 13:40:12.143964", "stderr": "", "stderr_lines": [], "stdout": " 13:40:12 up 193 days, 5:13, 1 user, load average: 0.03, 0.12, 0.15", "stdout_lines": [" 13:40:12 up 193 days, 5:13, 1 user, load average: 0.03, 0.12, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009232", "end": "2025-12-16 13:40:12.205275", "msg": "", "rc": 0, "start": "2025-12-16 13:40:12.196043", "stderr": "", "stderr_lines": [], "stdout": " 13:40:12 up 193 days, 5:13, 1 user, load average: 0.26, 0.28, 0.26", "stdout_lines": [" 13:40:12 up 193 days, 5:13, 1 user, load average: 0.26, 0.28, 0.26"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004733", "end": "2025-12-16 13:40:12.448278", "msg": "", "rc": 0, "start": "2025-12-16 13:40:12.443545", "stderr": "", "stderr_lines": [], "stdout": " 13:40:12 up 2 days, 3:11, 1 user, load average: 0.03, 0.05, 0.00", "stdout_lines": [" 13:40:12 up 2 days, 3:11, 1 user, load average: 0.03, 0.05, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003374", "end": "2025-12-16 13:39:43.609618", "msg": "", "rc": 0, "start": "2025-12-16 13:39:43.606244", "stderr": "", "stderr_lines": [], "stdout": " 13:39:43 up 19 days, 16:34, 0 user, load average: 0.37, 0.48, 0.50", "stdout_lines": [" 13:39:43 up 19 days, 16:34, 0 user, load average: 0.37, 0.48, 0.50"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002833", "end": "2025-12-16 13:39:49.864754", "msg": "", "rc": 0, "start": "2025-12-16 13:39:49.861921", "stderr": "", "stderr_lines": [], "stdout": " 13:39:49 up 16 days, 2:55, 0 user, load average: 0.04, 0.08, 0.08", "stdout_lines": [" 13:39:49 up 16 days, 2:55, 0 user, load average: 0.04, 0.08, 0.08"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004491", "end": "2025-12-16 10:40:12.678630", "msg": "", "rc": 0, "start": "2025-12-16 10:40:12.674139", "stderr": "", "stderr_lines": [], "stdout": "10:40AM up 21 days, 30 mins, 1 user, load averages: 0.28, 0.26, 0.20", "stdout_lines": ["10:40AM up 21 days, 30 mins, 1 user, load averages: 0.28, 0.26, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003659", "end": "2025-12-16 13:40:12.874246", "msg": "", "rc": 0, "start": "2025-12-16 13:40:12.870587", "stderr": "", "stderr_lines": [], "stdout": " 13:40:12 up 2 days, 3:11, 1 user, load average: 0.08, 0.20, 0.14", "stdout_lines": [" 13:40:12 up 2 days, 3:11, 1 user, load average: 0.08, 0.20, 0.14"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007740", "end": "2025-12-16 13:40:13.110058", "msg": "", "rc": 0, "start": "2025-12-16 13:40:13.102318", "stderr": "", "stderr_lines": [], "stdout": " 13:40:13 up 15:05, 1 user, load average: 1.20, 1.13, 1.14", "stdout_lines": [" 13:40:13 up 15:05, 1 user, load average: 1.20, 1.13, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019536", "end": "2025-12-16 13:40:12.848492", "msg": "", "rc": 0, "start": "2025-12-16 13:40:12.828956", "stderr": "", "stderr_lines": [], "stdout": " 13:40:12 up 14 days, 3:06, 1 user, load average: 0.22, 0.13, 0.10", "stdout_lines": [" 13:40:12 up 14 days, 3:06, 1 user, load average: 0.22, 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.004239", "end": "2025-12-16 13:40:13.387602", "msg": "", "rc": 0, "start": "2025-12-16 13:40:13.383363", "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.004570", "end": "2025-12-16 13:40:13.407202", "msg": "", "rc": 0, "start": "2025-12-16 13:40:13.402632", "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.004308", "end": "2025-12-16 13:40:13.425722", "msg": "", "rc": 0, "start": "2025-12-16 13:40:13.421414", "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.004283", "end": "2025-12-16 13:40:13.435366", "msg": "", "rc": 0, "start": "2025-12-16 13:40:13.431083", "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.005698", "end": "2025-12-16 13:40:13.442000", "msg": "", "rc": 0, "start": "2025-12-16 13:40:13.436302", "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.006244", "end": "2025-12-16 13:39:48.520824", "msg": "", "rc": 0, "start": "2025-12-16 13:39:48.514580", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007430", "end": "2025-12-16 13:39:42.424235", "msg": "", "rc": 0, "start": "2025-12-16 13:39:42.416805", "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-16 13:40:14.158881", "msg": "", "rc": 0, "start": "2025-12-16 13:40:14.148290", "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.011689", "end": "2025-12-16 13:40:14.172523", "msg": "", "rc": 0, "start": "2025-12-16 13:40:14.160834", "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.005681", "end": "2025-12-16 13:40:14.390847", "msg": "", "rc": 0, "start": "2025-12-16 13:40:14.385166", "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.005266", "end": "2025-12-16 13:39:45.614593", "msg": "", "rc": 0, "start": "2025-12-16 13:39:45.609327", "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.005715", "end": "2025-12-16 10:40:14.627080", "msg": "", "rc": 0, "start": "2025-12-16 10:40:14.621365", "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.004979", "end": "2025-12-16 13:39:51.887093", "msg": "", "rc": 0, "start": "2025-12-16 13:39:51.882114", "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.005471", "end": "2025-12-16 13:40:14.806655", "msg": "", "rc": 0, "start": "2025-12-16 13:40:14.801184", "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.025377", "end": "2025-12-16 13:40:14.795203", "msg": "", "rc": 0, "start": "2025-12-16 13:40:14.769826", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020766", "end": "2025-12-16 13:40:15.242057", "msg": "", "rc": 0, "start": "2025-12-16 13:40:15.221291", "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.004238", "end": "2025-12-16 13:40:15.380679", "msg": "", "rc": 0, "start": "2025-12-16 13:40:15.376441", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.0%"]}
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.004770", "end": "2025-12-16 13:40:15.383362", "msg": "", "rc": 0, "start": "2025-12-16 13:40:15.378592", "stderr": "", "stderr_lines": [], "stdout": "86.7%", "stdout_lines": ["86.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.004878", "end": "2025-12-16 13:40:15.420663", "msg": "", "rc": 0, "start": "2025-12-16 13:40:15.415785", "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.005082", "end": "2025-12-16 13:40:15.421367", "msg": "", "rc": 0, "start": "2025-12-16 13:40:15.416285", "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.007654", "end": "2025-12-16 13:40:15.457077", "msg": "", "rc": 0, "start": "2025-12-16 13:40:15.449423", "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.003939", "end": "2025-12-16 13:39:50.499544", "msg": "", "rc": 0, "start": "2025-12-16 13:39:50.495605", "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.004675", "end": "2025-12-16 13:39:44.405009", "msg": "", "rc": 0, "start": "2025-12-16 13:39:44.400334", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.010971", "end": "2025-12-16 13:40:16.075878", "msg": "", "rc": 0, "start": "2025-12-16 13:40:16.064907", "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.012017", "end": "2025-12-16 13:40:16.094287", "msg": "", "rc": 0, "start": "2025-12-16 13:40:16.082270", "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.006011", "end": "2025-12-16 13:40:16.399355", "msg": "", "rc": 0, "start": "2025-12-16 13:40:16.393344", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.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.005229", "end": "2025-12-16 10:40:16.559843", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:40:16.554614", "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.003973", "end": "2025-12-16 13:39:53.780913", "msg": "", "rc": 0, "start": "2025-12-16 13:39:53.776940", "stderr": "", "stderr_lines": [], "stdout": "58.9%", "stdout_lines": ["58.9%"]}
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.005762", "end": "2025-12-16 13:39:47.604787", "msg": "", "rc": 0, "start": "2025-12-16 13:39:47.599025", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.005514", "end": "2025-12-16 13:40:16.829274", "msg": "", "rc": 0, "start": "2025-12-16 13:40:16.823760", "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.009637", "end": "2025-12-16 13:40:17.236605", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.226968", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025780", "end": "2025-12-16 13:40:16.771434", "msg": "", "rc": 0, "start": "2025-12-16 13:40:16.745654", "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.005116", "end": "2025-12-16 13:40:17.289577", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.284461", "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.004865", "end": "2025-12-16 13:40:17.322200", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.317335", "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.006163", "end": "2025-12-16 13:40:17.336880", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.330717", "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.003033", "end": "2025-12-16 13:40:17.360122", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.357089", "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.006602", "end": "2025-12-16 13:40:17.376395", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.369793", "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.002998", "end": "2025-12-16 13:39:52.392519", "msg": "", "rc": 0, "start": "2025-12-16 13:39:52.389521", "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.002977", "end": "2025-12-16 13:39:46.286252", "msg": "", "rc": 0, "start": "2025-12-16 13:39:46.283275", "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.011685", "end": "2025-12-16 13:40:17.985837", "msg": "", "rc": 0, "start": "2025-12-16 13:40:17.974152", "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.012934", "end": "2025-12-16 13:40:18.027279", "msg": "", "rc": 0, "start": "2025-12-16 13:40:18.014345", "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.003410", "end": "2025-12-16 13:40:18.266933", "msg": "", "rc": 0, "start": "2025-12-16 13:40:18.263523", "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.002715", "end": "2025-12-16 13:39:49.472533", "msg": "", "rc": 0, "start": "2025-12-16 13:39:49.469818", "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.004398", "end": "2025-12-16 10:40:18.485764", "msg": "", "rc": 0, "start": "2025-12-16 10:40:18.481366", "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.002813", "end": "2025-12-16 13:39:55.705736", "msg": "", "rc": 0, "start": "2025-12-16 13:39:55.702923", "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.003128", "end": "2025-12-16 13:40:18.688647", "msg": "", "rc": 0, "start": "2025-12-16 13:40:18.685519", "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.004408", "end": "2025-12-16 13:40:19.196956", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.192548", "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.029068", "end": "2025-12-16 13:40:18.674965", "msg": "", "rc": 0, "start": "2025-12-16 13:40:18.645897", "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.004214", "end": "2025-12-16 13:40:19.197485", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.193271", "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.003977", "end": "2025-12-16 13:40:19.204746", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.200769", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.004878", "end": "2025-12-16 13:40:19.219746", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.214868", "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.005153", "end": "2025-12-16 13:40:19.256341", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.251188", "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.005213", "end": "2025-12-16 13:40:19.261000", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.255787", "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.004361", "end": "2025-12-16 13:39:54.302559", "msg": "", "rc": 0, "start": "2025-12-16 13:39:54.298198", "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.005229", "end": "2025-12-16 13:39:48.185606", "msg": "", "rc": 0, "start": "2025-12-16 13:39:48.180377", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.010154", "end": "2025-12-16 13:40:19.961404", "msg": "", "rc": 0, "start": "2025-12-16 13:40:19.951250", "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.011226", "end": "2025-12-16 13:40:20.024620", "msg": "", "rc": 0, "start": "2025-12-16 13:40:20.013394", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.005588", "end": "2025-12-16 13:40:20.183845", "msg": "", "rc": 0, "start": "2025-12-16 13:40:20.178257", "stderr": "", "stderr_lines": [], "stdout": "0.02", "stdout_lines": ["0.02"]}
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.004766", "end": "2025-12-16 13:39:51.355737", "msg": "", "rc": 0, "start": "2025-12-16 13:39:51.350971", "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.004279", "end": "2025-12-16 13:39:57.685085", "msg": "", "rc": 0, "start": "2025-12-16 13:39:57.680806", "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.005968", "end": "2025-12-16 10:40:20.484806", "msg": "", "rc": 0, "start": "2025-12-16 10:40:20.478838", "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.005305", "end": "2025-12-16 13:40:20.607520", "msg": "", "rc": 0, "start": "2025-12-16 13:40:20.602215", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.007894", "end": "2025-12-16 13:40:21.158508", "msg": "", "rc": 0, "start": "2025-12-16 13:40:21.150614", "stderr": "", "stderr_lines": [], "stdout": "1.27", "stdout_lines": ["1.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.024283", "end": "2025-12-16 13:40:20.583313", "msg": "", "rc": 0, "start": "2025-12-16 13:40:20.559030", "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: 13:40:11 up 2 days, 3:12, 1 user, load average: 0.35, 0.23, 0.20\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.29\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:11 up 21 days, 31 min, 1 user, load average: 0.28, 0.23, 0.24\nDisk Usage: 23%\nMemory Usage: 86.7%\nCPU Load: 0.26\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:11 up 21 days, 51 min, 1 user, load average: 0.87, 0.66, 0.62\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: 13:40:11 up 21 days, 2:04, 1 user, load average: 0.75, 0.79, 0.75\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.85\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:11 up 21 days, 2:50, 1 user, load average: 0.01, 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: 13:40:12 up 14 days, 3:06, 1 user, load average: 0.22, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 19.8%\nCPU Load: 0.26\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:12 up 193 days, 5:13, 1 user, load average: 0.26, 0.28, 0.26\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.29\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:12 up 193 days, 5:13, 1 user, load average: 0.03, 0.12, 0.15\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.19\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:39:46 up 10 days, 1:29, 0 user, load average: 0.02, 0.11, 0.13\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:39:40 up 16 days, 21:41, 0 user, load average: 0.06, 0.07, 0.04\nDisk Usage: 24%\nMemory Usage: 70.6%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:12 up 2 days, 3:11, 1 user, load average: 0.03, 0.05, 0.00\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:39:43 up 19 days, 16:34, 0 user, load average: 0.37, 0.48, 0.50\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:39:49 up 16 days, 2:55, 0 user, load average: 0.04, 0.08, 0.08\nDisk Usage: 75%\nMemory Usage: 58.9%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:40AM up 21 days, 30 mins, 1 user, load averages: 0.28, 0.26, 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: 13:40:12 up 2 days, 3:11, 1 user, load average: 0.08, 0.20, 0.14\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:40:13 up 15:05, 1 user, load average: 1.20, 1.13, 1.14\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.27\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-16T18:40:22.090904+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `9239a91ab6654783ae4463f144e2ab61` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:45:00.002183+00:00 |
| **Fin** | 2025-12-16T18:45:23.324949+00:00 |
| **Durée** | 23.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: [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: [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.004029", "end": "2025-12-16 13:45:12.146305", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.142276", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 21 days, 2:55, 1 user, load average: 0.15, 0.07, 0.01", "stdout_lines": [" 13:45:12 up 21 days, 2:55, 1 user, load average: 0.15, 0.07, 0.01"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003476", "end": "2025-12-16 13:45:12.148313", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.144837", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 21 days, 56 min, 1 user, load average: 0.52, 0.69, 0.65", "stdout_lines": [" 13:45:12 up 21 days, 56 min, 1 user, load average: 0.52, 0.69, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002942", "end": "2025-12-16 13:45:12.173821", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.170879", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 2 days, 3:17, 1 user, load average: 0.16, 0.19, 0.18", "stdout_lines": [" 13:45:12 up 2 days, 3:17, 1 user, load average: 0.16, 0.19, 0.18"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006215", "end": "2025-12-16 13:45:12.175890", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.169675", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 21 days, 2:09, 1 user, load average: 0.53, 0.68, 0.71", "stdout_lines": [" 13:45:12 up 21 days, 2:09, 1 user, load average: 0.53, 0.68, 0.71"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002910", "end": "2025-12-16 13:44:47.224971", "msg": "", "rc": 0, "start": "2025-12-16 13:44:47.222061", "stderr": "", "stderr_lines": [], "stdout": " 13:44:47 up 10 days, 1:34, 0 user, load average: 0.11, 0.10, 0.11", "stdout_lines": [" 13:44:47 up 10 days, 1:34, 0 user, load average: 0.11, 0.10, 0.11"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008540", "end": "2025-12-16 13:45:12.831898", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.823358", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 193 days, 5:18, 1 user, load average: 0.12, 0.12, 0.15", "stdout_lines": [" 13:45:12 up 193 days, 5:18, 1 user, load average: 0.12, 0.12, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009345", "end": "2025-12-16 13:45:12.887003", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.877658", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 193 days, 5:18, 1 user, load average: 0.18, 0.22, 0.24", "stdout_lines": [" 13:45:12 up 193 days, 5:18, 1 user, load average: 0.18, 0.22, 0.24"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003395", "end": "2025-12-16 13:45:13.131118", "msg": "", "rc": 0, "start": "2025-12-16 13:45:12.127723", "stderr": "", "stderr_lines": [], "stdout": " 13:45:12 up 21 days, 36 min, 1 user, load average: 0.23, 0.18, 0.20", "stdout_lines": [" 13:45:12 up 21 days, 36 min, 1 user, load average: 0.23, 0.18, 0.20"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003234", "end": "2025-12-16 13:44:41.544414", "msg": "", "rc": 0, "start": "2025-12-16 13:44:41.541180", "stderr": "", "stderr_lines": [], "stdout": " 13:44:41 up 16 days, 21:46, 0 user, load average: 0.15, 0.07, 0.03", "stdout_lines": [" 13:44:41 up 16 days, 21:46, 0 user, load average: 0.15, 0.07, 0.03"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004909", "end": "2025-12-16 13:45:13.341741", "msg": "", "rc": 0, "start": "2025-12-16 13:45:13.336832", "stderr": "", "stderr_lines": [], "stdout": " 13:45:13 up 2 days, 3:16, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 13:45:13 up 2 days, 3:16, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003052", "end": "2025-12-16 13:44:44.478579", "msg": "", "rc": 0, "start": "2025-12-16 13:44:44.475527", "stderr": "", "stderr_lines": [], "stdout": " 13:44:44 up 19 days, 16:39, 0 user, load average: 0.45, 0.48, 0.50", "stdout_lines": [" 13:44:44 up 19 days, 16:39, 0 user, load average: 0.45, 0.48, 0.50"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002710", "end": "2025-12-16 13:44:50.793185", "msg": "", "rc": 0, "start": "2025-12-16 13:44:50.790475", "stderr": "", "stderr_lines": [], "stdout": " 13:44:50 up 16 days, 3:00, 0 user, load average: 0.28, 0.22, 0.14", "stdout_lines": [" 13:44:50 up 16 days, 3:00, 0 user, load average: 0.28, 0.22, 0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004540", "end": "2025-12-16 10:45:13.591018", "msg": "", "rc": 0, "start": "2025-12-16 10:45:13.586478", "stderr": "", "stderr_lines": [], "stdout": "10:45AM up 21 days, 35 mins, 1 user, load averages: 0.15, 0.19, 0.17", "stdout_lines": ["10:45AM up 21 days, 35 mins, 1 user, load averages: 0.15, 0.19, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019374", "end": "2025-12-16 13:45:13.527039", "msg": "", "rc": 0, "start": "2025-12-16 13:45:13.507665", "stderr": "", "stderr_lines": [], "stdout": " 13:45:13 up 14 days, 3:11, 1 user, load average: 0.17, 0.17, 0.12", "stdout_lines": [" 13:45:13 up 14 days, 3:11, 1 user, load average: 0.17, 0.17, 0.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003906", "end": "2025-12-16 13:45:13.768858", "msg": "", "rc": 0, "start": "2025-12-16 13:45:13.764952", "stderr": "", "stderr_lines": [], "stdout": " 13:45:13 up 2 days, 3:16, 1 user, load average: 0.01, 0.13, 0.13", "stdout_lines": [" 13:45:13 up 2 days, 3:16, 1 user, load average: 0.01, 0.13, 0.13"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009038", "end": "2025-12-16 13:45:14.414955", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.405917", "stderr": "", "stderr_lines": [], "stdout": " 13:45:14 up 15:10, 1 user, load average: 1.32, 1.21, 1.18", "stdout_lines": [" 13:45:14 up 15:10, 1 user, load average: 1.32, 1.21, 1.18"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004293", "end": "2025-12-16 13:45:14.206012", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.201719", "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.004300", "end": "2025-12-16 13:45:14.203162", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.198862", "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.005085", "end": "2025-12-16 13:45:14.225390", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.220305", "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.005438", "end": "2025-12-16 13:45:14.242107", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.236669", "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-16 13:45:14.255073", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.250322", "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.005597", "end": "2025-12-16 13:44:49.303819", "msg": "", "rc": 0, "start": "2025-12-16 13:44:49.298222", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005904", "end": "2025-12-16 13:44:43.195047", "msg": "", "rc": 0, "start": "2025-12-16 13:44:43.189143", "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.010762", "end": "2025-12-16 13:45:14.956275", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.945513", "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.012653", "end": "2025-12-16 13:45:14.988942", "msg": "", "rc": 0, "start": "2025-12-16 13:45:14.976289", "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.005932", "end": "2025-12-16 13:45:15.192390", "msg": "", "rc": 0, "start": "2025-12-16 13:45:15.186458", "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.005664", "end": "2025-12-16 13:44:46.403771", "msg": "", "rc": 0, "start": "2025-12-16 13:44:46.398107", "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.005346", "end": "2025-12-16 10:45:15.462077", "msg": "", "rc": 0, "start": "2025-12-16 10:45:15.456731", "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.004534", "end": "2025-12-16 13:44:52.675721", "msg": "", "rc": 0, "start": "2025-12-16 13:44:52.671187", "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.005614", "end": "2025-12-16 13:45:15.615887", "msg": "", "rc": 0, "start": "2025-12-16 13:45:15.610273", "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.025503", "end": "2025-12-16 13:45:15.603203", "msg": "", "rc": 0, "start": "2025-12-16 13:45:15.577700", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020001", "end": "2025-12-16 13:45:16.471047", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.451046", "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.004392", "end": "2025-12-16 13:45:16.165647", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.161255", "stderr": "", "stderr_lines": [], "stdout": "86.7%", "stdout_lines": ["86.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.004687", "end": "2025-12-16 13:45:16.189526", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.184839", "stderr": "", "stderr_lines": [], "stdout": "48.8%", "stdout_lines": ["48.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.004114", "end": "2025-12-16 13:45:16.195809", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.191695", "stderr": "", "stderr_lines": [], "stdout": "21.9%", "stdout_lines": ["21.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.005044", "end": "2025-12-16 13:45:16.231505", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.226461", "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.005872", "end": "2025-12-16 13:45:16.235404", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.229532", "stderr": "", "stderr_lines": [], "stdout": "59.7%", "stdout_lines": ["59.7%"]}
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.003908", "end": "2025-12-16 13:44:51.265048", "msg": "", "rc": 0, "start": "2025-12-16 13:44:51.261140", "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.005577", "end": "2025-12-16 13:44:45.187807", "msg": "", "rc": 0, "start": "2025-12-16 13:44:45.182230", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.011020", "end": "2025-12-16 13:45:16.877719", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.866699", "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.012060", "end": "2025-12-16 13:45:16.907998", "msg": "", "rc": 0, "start": "2025-12-16 13:45:16.895938", "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.006140", "end": "2025-12-16 13:45:17.140597", "msg": "", "rc": 0, "start": "2025-12-16 13:45:17.134457", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.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.003800", "end": "2025-12-16 13:44:54.579483", "msg": "", "rc": 0, "start": "2025-12-16 13:44:54.575683", "stderr": "", "stderr_lines": [], "stdout": "57.6%", "stdout_lines": ["57.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.005569", "end": "2025-12-16 10:45:17.376488", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:45:17.370919", "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.004613", "end": "2025-12-16 13:44:48.413024", "msg": "", "rc": 0, "start": "2025-12-16 13:44:48.408411", "stderr": "", "stderr_lines": [], "stdout": "26.8%", "stdout_lines": ["26.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.005392", "end": "2025-12-16 13:45:17.573080", "msg": "", "rc": 0, "start": "2025-12-16 13:45:17.567688", "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.025671", "end": "2025-12-16 13:45:17.552539", "msg": "", "rc": 0, "start": "2025-12-16 13:45:17.526868", "stderr": "", "stderr_lines": [], "stdout": "19.6%", "stdout_lines": ["19.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.008361", "end": "2025-12-16 13:45:18.476461", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.468100", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.005175", "end": "2025-12-16 13:45:18.100268", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.095093", "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-16 13:45:18.118266", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.113324", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005436", "end": "2025-12-16 13:45:18.130146", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.124710", "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.003232", "end": "2025-12-16 13:45:18.156063", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.152831", "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.007167", "end": "2025-12-16 13:45:18.195140", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.187973", "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.002464", "end": "2025-12-16 13:44:53.196874", "msg": "", "rc": 0, "start": "2025-12-16 13:44:53.194410", "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.003119", "end": "2025-12-16 13:44:47.143884", "msg": "", "rc": 0, "start": "2025-12-16 13:44:47.140765", "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.011830", "end": "2025-12-16 13:45:18.787042", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.775212", "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.012995", "end": "2025-12-16 13:45:18.836238", "msg": "", "rc": 0, "start": "2025-12-16 13:45:18.823243", "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.003142", "end": "2025-12-16 13:45:19.071102", "msg": "", "rc": 0, "start": "2025-12-16 13:45:19.067960", "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.002800", "end": "2025-12-16 13:44:56.501750", "msg": "", "rc": 0, "start": "2025-12-16 13:44:56.498950", "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.002904", "end": "2025-12-16 13:44:50.327348", "msg": "", "rc": 0, "start": "2025-12-16 13:44:50.324444", "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.004996", "end": "2025-12-16 10:45:19.331666", "msg": "", "rc": 0, "start": "2025-12-16 10:45:19.326670", "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.003129", "end": "2025-12-16 13:45:19.496093", "msg": "", "rc": 0, "start": "2025-12-16 13:45:19.492964", "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.028760", "end": "2025-12-16 13:45:19.490960", "msg": "", "rc": 0, "start": "2025-12-16 13:45:19.462200", "stderr": "", "stderr_lines": [], "stdout": "35.8°C", "stdout_lines": ["35.8°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.004449", "end": "2025-12-16 13:45:20.460992", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.456543", "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.004672", "end": "2025-12-16 13:45:20.031366", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.026694", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
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.003999", "end": "2025-12-16 13:45:20.046168", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.042169", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.004855", "end": "2025-12-16 13:45:20.072137", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.067282", "stderr": "", "stderr_lines": [], "stdout": "0.67", "stdout_lines": ["0.67"]}
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.005177", "end": "2025-12-16 13:45:20.081746", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.076569", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.005206", "end": "2025-12-16 13:45:20.097638", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.092432", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004326", "end": "2025-12-16 13:44:55.172696", "msg": "", "rc": 0, "start": "2025-12-16 13:44:55.168370", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.005212", "end": "2025-12-16 13:44:49.030283", "msg": "", "rc": 0, "start": "2025-12-16 13:44:49.025071", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
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.010374", "end": "2025-12-16 13:45:20.854715", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.844341", "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.011214", "end": "2025-12-16 13:45:20.877016", "msg": "", "rc": 0, "start": "2025-12-16 13:45:20.865802", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005958", "end": "2025-12-16 13:45:21.063987", "msg": "", "rc": 0, "start": "2025-12-16 13:45:21.058029", "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.005142", "end": "2025-12-16 13:44:52.204556", "msg": "", "rc": 0, "start": "2025-12-16 13:44:52.199414", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
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-16 10:45:21.350578", "msg": "", "rc": 0, "start": "2025-12-16 10:45:21.344278", "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.004305", "end": "2025-12-16 13:44:58.570406", "msg": "", "rc": 0, "start": "2025-12-16 13:44:58.566101", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.005261", "end": "2025-12-16 13:45:21.502043", "msg": "", "rc": 0, "start": "2025-12-16 13:45:21.496782", "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.009322", "end": "2025-12-16 13:45:22.409607", "msg": "", "rc": 0, "start": "2025-12-16 13:45:22.400285", "stderr": "", "stderr_lines": [], "stdout": "1.72", "stdout_lines": ["1.72"]}
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.024109", "end": "2025-12-16 13:45:21.432918", "msg": "", "rc": 0, "start": "2025-12-16 13:45:21.408809", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 21 days, 36 min, 1 user, load average: 0.23, 0.18, 0.20\nDisk Usage: 23%\nMemory Usage: 86.7%\nCPU Load: 0.42\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 2 days, 3:17, 1 user, load average: 0.16, 0.19, 0.18\nDisk Usage: 22%\nMemory Usage: 21.9%\nCPU Load: 0.23\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 21 days, 56 min, 1 user, load average: 0.52, 0.69, 0.65\nDisk Usage: 14%\nMemory Usage: 48.8%\nCPU Load: 0.67\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 21 days, 2:09, 1 user, load average: 0.53, 0.68, 0.71\nDisk Usage: 14%\nMemory Usage: 59.7%\nCPU Load: 0.65\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 21 days, 2:55, 1 user, load average: 0.15, 0.07, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:13 up 14 days, 3:11, 1 user, load average: 0.17, 0.17, 0.12\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.30\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 193 days, 5:18, 1 user, load average: 0.18, 0.22, 0.24\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.15\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:12 up 193 days, 5:18, 1 user, load average: 0.12, 0.12, 0.15\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.17\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:44:47 up 10 days, 1:34, 0 user, load average: 0.11, 0.10, 0.11\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.33\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:44:41 up 16 days, 21:46, 0 user, load average: 0.15, 0.07, 0.03\nDisk Usage: 24%\nMemory Usage: 70.6%\nCPU Load: 0.37\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:13 up 2 days, 3:16, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:44:44 up 19 days, 16:39, 0 user, load average: 0.45, 0.48, 0.50\nDisk Usage: 28%\nMemory Usage: 26.8%\nCPU Load: 0.52\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:44:50 up 16 days, 3:00, 0 user, load average: 0.28, 0.22, 0.14\nDisk Usage: 75%\nMemory Usage: 57.6%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:45AM up 21 days, 35 mins, 1 user, load averages: 0.15, 0.19, 0.17\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: 13:45:13 up 2 days, 3:16, 1 user, load average: 0.01, 0.13, 0.13\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:45:14 up 15:10, 1 user, load average: 1.32, 1.21, 1.18\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.72\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-16T18:45:23.369095+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `52c6ddb03000480a92d82248c116c62e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:50:00.002852+00:00 |
| **Fin** | 2025-12-16T18:50:22.094942+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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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.003015", "end": "2025-12-16 13:50:11.726841", "msg": "", "rc": 0, "start": "2025-12-16 13:50:11.723826", "stderr": "", "stderr_lines": [], "stdout": " 13:50:11 up 21 days, 41 min, 1 user, load average: 0.33, 0.29, 0.23", "stdout_lines": [" 13:50:11 up 21 days, 41 min, 1 user, load average: 0.33, 0.29, 0.23"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003521", "end": "2025-12-16 13:50:11.733029", "msg": "", "rc": 0, "start": "2025-12-16 13:50:11.729508", "stderr": "", "stderr_lines": [], "stdout": " 13:50:11 up 21 days, 3:00, 1 user, load average: 0.06, 0.14, 0.06", "stdout_lines": [" 13:50:11 up 21 days, 3:00, 1 user, load average: 0.06, 0.14, 0.06"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003221", "end": "2025-12-16 13:50:11.739640", "msg": "", "rc": 0, "start": "2025-12-16 13:50:11.736419", "stderr": "", "stderr_lines": [], "stdout": " 13:50:11 up 21 days, 1:01, 1 user, load average: 0.63, 0.68, 0.65", "stdout_lines": [" 13:50:11 up 21 days, 1:01, 1 user, load average: 0.63, 0.68, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002995", "end": "2025-12-16 13:50:11.765441", "msg": "", "rc": 0, "start": "2025-12-16 13:50:11.762446", "stderr": "", "stderr_lines": [], "stdout": " 13:50:11 up 2 days, 3:22, 1 user, load average: 0.52, 0.42, 0.28", "stdout_lines": [" 13:50:11 up 2 days, 3:22, 1 user, load average: 0.52, 0.42, 0.28"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002844", "end": "2025-12-16 13:49:46.808786", "msg": "", "rc": 0, "start": "2025-12-16 13:49:46.805942", "stderr": "", "stderr_lines": [], "stdout": " 13:49:46 up 10 days, 1:39, 0 user, load average: 0.06, 0.30, 0.23", "stdout_lines": [" 13:49:46 up 10 days, 1:39, 0 user, load average: 0.06, 0.30, 0.23"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008558", "end": "2025-12-16 13:50:12.415627", "msg": "", "rc": 0, "start": "2025-12-16 13:50:12.407069", "stderr": "", "stderr_lines": [], "stdout": " 13:50:12 up 193 days, 5:23, 1 user, load average: 0.08, 0.11, 0.14", "stdout_lines": [" 13:50:12 up 193 days, 5:23, 1 user, load average: 0.08, 0.11, 0.14"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009345", "end": "2025-12-16 13:50:12.459746", "msg": "", "rc": 0, "start": "2025-12-16 13:50:12.450401", "stderr": "", "stderr_lines": [], "stdout": " 13:50:12 up 193 days, 5:23, 1 user, load average: 0.25, 0.23, 0.24", "stdout_lines": [" 13:50:12 up 193 days, 5:23, 1 user, load average: 0.25, 0.23, 0.24"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004684", "end": "2025-12-16 13:50:12.758381", "msg": "", "rc": 0, "start": "2025-12-16 13:50:11.753697", "stderr": "", "stderr_lines": [], "stdout": " 13:50:11 up 21 days, 2:14, 1 user, load average: 0.61, 0.64, 0.69", "stdout_lines": [" 13:50:11 up 21 days, 2:14, 1 user, load average: 0.61, 0.64, 0.69"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003462", "end": "2025-12-16 13:49:41.135944", "msg": "", "rc": 0, "start": "2025-12-16 13:49:41.132482", "stderr": "", "stderr_lines": [], "stdout": " 13:49:41 up 16 days, 21:51, 0 user, load average: 0.03, 0.07, 0.04", "stdout_lines": [" 13:49:41 up 16 days, 21:51, 0 user, load average: 0.03, 0.07, 0.04"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004709", "end": "2025-12-16 13:50:12.932883", "msg": "", "rc": 0, "start": "2025-12-16 13:50:12.928174", "stderr": "", "stderr_lines": [], "stdout": " 13:50:12 up 2 days, 3:21, 1 user, load average: 0.05, 0.05, 0.01", "stdout_lines": [" 13:50:12 up 2 days, 3:21, 1 user, load average: 0.05, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003190", "end": "2025-12-16 13:49:44.059610", "msg": "", "rc": 0, "start": "2025-12-16 13:49:44.056420", "stderr": "", "stderr_lines": [], "stdout": " 13:49:44 up 19 days, 16:44, 0 user, load average: 0.39, 0.45, 0.48", "stdout_lines": [" 13:49:44 up 19 days, 16:44, 0 user, load average: 0.39, 0.45, 0.48"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004641", "end": "2025-12-16 10:50:13.187635", "msg": "", "rc": 0, "start": "2025-12-16 10:50:13.182994", "stderr": "", "stderr_lines": [], "stdout": "10:50AM up 21 days, 40 mins, 1 user, load averages: 0.20, 0.23, 0.18", "stdout_lines": ["10:50AM up 21 days, 40 mins, 1 user, load averages: 0.20, 0.23, 0.18"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003033", "end": "2025-12-16 13:49:50.427422", "msg": "", "rc": 0, "start": "2025-12-16 13:49:50.424389", "stderr": "", "stderr_lines": [], "stdout": " 13:49:50 up 16 days, 3:05, 0 user, load average: 0.21, 0.24, 0.17", "stdout_lines": [" 13:49:50 up 16 days, 3:05, 0 user, load average: 0.21, 0.24, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019440", "end": "2025-12-16 13:50:13.109224", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.089784", "stderr": "", "stderr_lines": [], "stdout": " 13:50:13 up 14 days, 3:16, 1 user, load average: 0.18, 0.14, 0.10", "stdout_lines": [" 13:50:13 up 14 days, 3:16, 1 user, load average: 0.18, 0.14, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007133", "end": "2025-12-16 13:50:14.343738", "msg": "", "rc": 0, "start": "2025-12-16 13:50:14.336605", "stderr": "", "stderr_lines": [], "stdout": " 13:50:14 up 15:15, 1 user, load average: 1.14, 1.14, 1.16", "stdout_lines": [" 13:50:14 up 15:15, 1 user, load average: 1.14, 1.14, 1.16"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003801", "end": "2025-12-16 13:50:13.366916", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.363115", "stderr": "", "stderr_lines": [], "stdout": " 13:50:13 up 2 days, 3:21, 1 user, load average: 0.10, 0.15, 0.13", "stdout_lines": [" 13:50:13 up 2 days, 3:21, 1 user, load average: 0.10, 0.15, 0.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004346", "end": "2025-12-16 13:50:13.766964", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.762618", "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.004042", "end": "2025-12-16 13:50:13.778261", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.774219", "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.004864", "end": "2025-12-16 13:50:13.788132", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.783268", "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.004668", "end": "2025-12-16 13:50:13.821404", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.816736", "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.005519", "end": "2025-12-16 13:50:13.836173", "msg": "", "rc": 0, "start": "2025-12-16 13:50:13.830654", "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-16 13:49:48.863282", "msg": "", "rc": 0, "start": "2025-12-16 13:49:48.858156", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006073", "end": "2025-12-16 13:49:42.778659", "msg": "", "rc": 0, "start": "2025-12-16 13:49:42.772586", "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.011304", "end": "2025-12-16 13:50:14.525314", "msg": "", "rc": 0, "start": "2025-12-16 13:50:14.514010", "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.011664", "end": "2025-12-16 13:50:14.553636", "msg": "", "rc": 0, "start": "2025-12-16 13:50:14.541972", "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.005743", "end": "2025-12-16 13:50:14.742112", "msg": "", "rc": 0, "start": "2025-12-16 13:50:14.736369", "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.005227", "end": "2025-12-16 13:49:45.940442", "msg": "", "rc": 0, "start": "2025-12-16 13:49:45.935215", "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.004651", "end": "2025-12-16 13:49:52.211403", "msg": "", "rc": 0, "start": "2025-12-16 13:49:52.206752", "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.005626", "end": "2025-12-16 10:50:15.020146", "msg": "", "rc": 0, "start": "2025-12-16 10:50:15.014520", "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.005297", "end": "2025-12-16 13:50:15.169336", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.164039", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019866", "end": "2025-12-16 13:50:15.268827", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.248961", "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.025085", "end": "2025-12-16 13:50:15.168347", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.143262", "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.004528", "end": "2025-12-16 13:50:15.689011", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.684483", "stderr": "", "stderr_lines": [], "stdout": "86.7%", "stdout_lines": ["86.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.004117", "end": "2025-12-16 13:50:15.698166", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.694049", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004850", "end": "2025-12-16 13:50:15.714473", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.709623", "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.004746", "end": "2025-12-16 13:50:15.746864", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.742118", "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.005924", "end": "2025-12-16 13:50:15.750122", "msg": "", "rc": 0, "start": "2025-12-16 13:50:15.744198", "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.003382", "end": "2025-12-16 13:49:50.788305", "msg": "", "rc": 0, "start": "2025-12-16 13:49:50.784923", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.004360", "end": "2025-12-16 13:49:44.658625", "msg": "", "rc": 0, "start": "2025-12-16 13:49:44.654265", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.011113", "end": "2025-12-16 13:50:16.396092", "msg": "", "rc": 0, "start": "2025-12-16 13:50:16.384979", "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.011937", "end": "2025-12-16 13:50:16.407460", "msg": "", "rc": 0, "start": "2025-12-16 13:50:16.395523", "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.005996", "end": "2025-12-16 13:50:16.661657", "msg": "", "rc": 0, "start": "2025-12-16 13:50:16.655661", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.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.007367", "end": "2025-12-16 10:50:16.872552", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:50:16.865185", "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.004594", "end": "2025-12-16 13:49:47.906879", "msg": "", "rc": 0, "start": "2025-12-16 13:49:47.902285", "stderr": "", "stderr_lines": [], "stdout": "26.1%", "stdout_lines": ["26.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.004047", "end": "2025-12-16 13:49:54.094197", "msg": "", "rc": 0, "start": "2025-12-16 13:49:54.090150", "stderr": "", "stderr_lines": [], "stdout": "59.2%", "stdout_lines": ["59.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.005298", "end": "2025-12-16 13:50:17.093111", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.087813", "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.009017", "end": "2025-12-16 13:50:17.273303", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.264286", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025866", "end": "2025-12-16 13:50:17.077847", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.051981", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.005069", "end": "2025-12-16 13:50:17.606302", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.601233", "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.004934", "end": "2025-12-16 13:50:17.613007", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.608073", "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.006018", "end": "2025-12-16 13:50:17.625298", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.619280", "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.002993", "end": "2025-12-16 13:50:17.654038", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.651045", "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.007229", "end": "2025-12-16 13:50:17.690746", "msg": "", "rc": 0, "start": "2025-12-16 13:50:17.683517", "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.002622", "end": "2025-12-16 13:49:52.734049", "msg": "", "rc": 0, "start": "2025-12-16 13:49:52.731427", "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.003142", "end": "2025-12-16 13:49:46.639371", "msg": "", "rc": 0, "start": "2025-12-16 13:49:46.636229", "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.011791", "end": "2025-12-16 13:50:18.292031", "msg": "", "rc": 0, "start": "2025-12-16 13:50:18.280240", "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.013627", "end": "2025-12-16 13:50:18.341947", "msg": "", "rc": 0, "start": "2025-12-16 13:50:18.328320", "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.003150", "end": "2025-12-16 13:50:18.596609", "msg": "", "rc": 0, "start": "2025-12-16 13:50:18.593459", "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.002482", "end": "2025-12-16 13:49:55.976578", "msg": "", "rc": 0, "start": "2025-12-16 13:49:55.974096", "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.004324", "end": "2025-12-16 10:50:18.803185", "msg": "", "rc": 0, "start": "2025-12-16 10:50:18.798861", "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.002842", "end": "2025-12-16 13:49:49.846797", "msg": "", "rc": 0, "start": "2025-12-16 13:49:49.843955", "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.002938", "end": "2025-12-16 13:50:19.027757", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.024819", "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.004725", "end": "2025-12-16 13:50:19.234832", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.230107", "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.028235", "end": "2025-12-16 13:50:19.012975", "msg": "", "rc": 0, "start": "2025-12-16 13:50:18.984740", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.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.004275", "end": "2025-12-16 13:50:19.541555", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.537280", "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.004043", "end": "2025-12-16 13:50:19.553403", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.549360", "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.004582", "end": "2025-12-16 13:50:19.558166", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.553584", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
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.005088", "end": "2025-12-16 13:50:19.592504", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.587416", "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.005713", "end": "2025-12-16 13:50:19.617300", "msg": "", "rc": 0, "start": "2025-12-16 13:50:19.611587", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.004279", "end": "2025-12-16 13:49:54.633771", "msg": "", "rc": 0, "start": "2025-12-16 13:49:54.629492", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.005114", "end": "2025-12-16 13:49:48.557020", "msg": "", "rc": 0, "start": "2025-12-16 13:49:48.551906", "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.010229", "end": "2025-12-16 13:50:20.314771", "msg": "", "rc": 0, "start": "2025-12-16 13:50:20.304542", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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.011352", "end": "2025-12-16 13:50:20.359730", "msg": "", "rc": 0, "start": "2025-12-16 13:50:20.348378", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.005714", "end": "2025-12-16 13:50:20.520093", "msg": "", "rc": 0, "start": "2025-12-16 13:50:20.514379", "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.005023", "end": "2025-12-16 13:49:51.743651", "msg": "", "rc": 0, "start": "2025-12-16 13:49:51.738628", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
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.004361", "end": "2025-12-16 13:49:58.024241", "msg": "", "rc": 0, "start": "2025-12-16 13:49:58.019880", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.007950", "end": "2025-12-16 10:50:20.832583", "msg": "", "rc": 0, "start": "2025-12-16 10:50:20.824633", "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.005382", "end": "2025-12-16 13:50:20.948557", "msg": "", "rc": 0, "start": "2025-12-16 13:50:20.943175", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.009612", "end": "2025-12-16 13:50:21.256699", "msg": "", "rc": 0, "start": "2025-12-16 13:50:21.247087", "stderr": "", "stderr_lines": [], "stdout": "1.19", "stdout_lines": ["1.19"]}
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-16 13:50:20.928948", "msg": "", "rc": 0, "start": "2025-12-16 13:50:20.904883", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:11 up 2 days, 3:22, 1 user, load average: 0.52, 0.42, 0.28\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.52\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:11 up 21 days, 41 min, 1 user, load average: 0.33, 0.29, 0.23\nDisk Usage: 23%\nMemory Usage: 86.7%\nCPU Load: 0.28\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:11 up 21 days, 1:01, 1 user, load average: 0.63, 0.68, 0.65\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.61\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:11 up 21 days, 2:14, 1 user, load average: 0.61, 0.64, 0.69\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.80\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:11 up 21 days, 3:00, 1 user, load average: 0.06, 0.14, 0.06\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: 13:50:13 up 14 days, 3:16, 1 user, load average: 0.18, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.23\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:12 up 193 days, 5:23, 1 user, load average: 0.25, 0.23, 0.24\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: 13:50:12 up 193 days, 5:23, 1 user, load average: 0.08, 0.11, 0.14\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.14\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:49:46 up 10 days, 1:39, 0 user, load average: 0.06, 0.30, 0.23\nDisk Usage: 47%\nMemory Usage: 70.6%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:49:41 up 16 days, 21:51, 0 user, load average: 0.03, 0.07, 0.04\nDisk Usage: 24%\nMemory Usage: 70.6%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:12 up 2 days, 3:21, 1 user, load average: 0.05, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:49:44 up 19 days, 16:44, 0 user, load average: 0.39, 0.45, 0.48\nDisk Usage: 28%\nMemory Usage: 26.1%\nCPU Load: 0.48\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:49:50 up 16 days, 3:05, 0 user, load average: 0.21, 0.24, 0.17\nDisk Usage: 75%\nMemory Usage: 59.2%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:50AM up 21 days, 40 mins, 1 user, load averages: 0.20, 0.23, 0.18\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: 13:50:13 up 2 days, 3:21, 1 user, load average: 0.10, 0.15, 0.13\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:50:14 up 15:15, 1 user, load average: 1.14, 1.14, 1.16\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.19\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-16T18:50:22.133710+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `41e1a4b65f294447bf875eacdf256538` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T18:55:00.003944+00:00 |
| **Fin** | 2025-12-16T18:55:22.195575+00:00 |
| **Durée** | 22.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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003774", "end": "2025-12-16 13:55:11.317526", "msg": "", "rc": 0, "start": "2025-12-16 13:55:11.313752", "stderr": "", "stderr_lines": [], "stdout": " 13:55:11 up 21 days, 3:05, 1 user, load average: 0.09, 0.08, 0.05", "stdout_lines": [" 13:55:11 up 21 days, 3:05, 1 user, load average: 0.09, 0.08, 0.05"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003339", "end": "2025-12-16 13:55:11.316881", "msg": "", "rc": 0, "start": "2025-12-16 13:55:11.313542", "stderr": "", "stderr_lines": [], "stdout": " 13:55:11 up 21 days, 1:06, 1 user, load average: 0.52, 0.49, 0.56", "stdout_lines": [" 13:55:11 up 21 days, 1:06, 1 user, load average: 0.52, 0.49, 0.56"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004058", "end": "2025-12-16 13:55:11.332946", "msg": "", "rc": 0, "start": "2025-12-16 13:55:11.328888", "stderr": "", "stderr_lines": [], "stdout": " 13:55:11 up 21 days, 2:19, 1 user, load average: 0.89, 0.84, 0.76", "stdout_lines": [" 13:55:11 up 21 days, 2:19, 1 user, load average: 0.89, 0.84, 0.76"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002973", "end": "2025-12-16 13:55:11.345409", "msg": "", "rc": 0, "start": "2025-12-16 13:55:11.342436", "stderr": "", "stderr_lines": [], "stdout": " 13:55:11 up 2 days, 3:27, 1 user, load average: 0.18, 0.24, 0.23", "stdout_lines": [" 13:55:11 up 2 days, 3:27, 1 user, load average: 0.18, 0.24, 0.23"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003130", "end": "2025-12-16 13:54:46.389170", "msg": "", "rc": 0, "start": "2025-12-16 13:54:46.386040", "stderr": "", "stderr_lines": [], "stdout": " 13:54:46 up 10 days, 1:44, 0 user, load average: 0.22, 0.17, 0.18", "stdout_lines": [" 13:54:46 up 10 days, 1:44, 0 user, load average: 0.22, 0.17, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008641", "end": "2025-12-16 13:55:11.996201", "msg": "", "rc": 0, "start": "2025-12-16 13:55:11.987560", "stderr": "", "stderr_lines": [], "stdout": " 13:55:11 up 193 days, 5:28, 1 user, load average: 0.07, 0.10, 0.12", "stdout_lines": [" 13:55:11 up 193 days, 5:28, 1 user, load average: 0.07, 0.10, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009385", "end": "2025-12-16 13:55:12.041735", "msg": "", "rc": 0, "start": "2025-12-16 13:55:12.032350", "stderr": "", "stderr_lines": [], "stdout": " 13:55:12 up 193 days, 5:28, 1 user, load average: 0.17, 0.19, 0.21", "stdout_lines": [" 13:55:12 up 193 days, 5:28, 1 user, load average: 0.17, 0.19, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004243", "end": "2025-12-16 13:55:12.305722", "msg": "", "rc": 0, "start": "2025-12-16 13:55:11.301479", "stderr": "", "stderr_lines": [], "stdout": " 13:55:11 up 21 days, 46 min, 1 user, load average: 0.34, 0.34, 0.27", "stdout_lines": [" 13:55:11 up 21 days, 46 min, 1 user, load average: 0.34, 0.34, 0.27"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003525", "end": "2025-12-16 13:54:40.718439", "msg": "", "rc": 0, "start": "2025-12-16 13:54:40.714914", "stderr": "", "stderr_lines": [], "stdout": " 13:54:40 up 16 days, 21:56, 0 user, load average: 0.04, 0.05, 0.02", "stdout_lines": [" 13:54:40 up 16 days, 21:56, 0 user, load average: 0.04, 0.05, 0.02"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004662", "end": "2025-12-16 13:55:12.504200", "msg": "", "rc": 0, "start": "2025-12-16 13:55:12.499538", "stderr": "", "stderr_lines": [], "stdout": " 13:55:12 up 2 days, 3:26, 1 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 13:55:12 up 2 days, 3:26, 1 user, load average: 0.01, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003224", "end": "2025-12-16 13:54:43.622778", "msg": "", "rc": 0, "start": "2025-12-16 13:54:43.619554", "stderr": "", "stderr_lines": [], "stdout": " 13:54:43 up 19 days, 16:49, 0 user, load average: 0.78, 0.53, 0.49", "stdout_lines": [" 13:54:43 up 19 days, 16:49, 0 user, load average: 0.78, 0.53, 0.49"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002738", "end": "2025-12-16 13:54:49.935091", "msg": "", "rc": 0, "start": "2025-12-16 13:54:49.932353", "stderr": "", "stderr_lines": [], "stdout": " 13:54:49 up 16 days, 3:10, 0 user, load average: 0.13, 0.14, 0.15", "stdout_lines": [" 13:54:49 up 16 days, 3:10, 0 user, load average: 0.13, 0.14, 0.15"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004563", "end": "2025-12-16 10:55:12.765078", "msg": "", "rc": 0, "start": "2025-12-16 10:55:12.760515", "stderr": "", "stderr_lines": [], "stdout": "10:55AM up 21 days, 45 mins, 1 user, load averages: 0.28, 0.25, 0.19", "stdout_lines": ["10:55AM up 21 days, 45 mins, 1 user, load averages: 0.28, 0.25, 0.19"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019381", "end": "2025-12-16 13:55:12.709154", "msg": "", "rc": 0, "start": "2025-12-16 13:55:12.689773", "stderr": "", "stderr_lines": [], "stdout": " 13:55:12 up 14 days, 3:21, 1 user, load average: 0.26, 0.17, 0.11", "stdout_lines": [" 13:55:12 up 14 days, 3:21, 1 user, load average: 0.26, 0.17, 0.11"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007710", "end": "2025-12-16 13:55:13.219044", "msg": "", "rc": 0, "start": "2025-12-16 13:55:13.211334", "stderr": "", "stderr_lines": [], "stdout": " 13:55:13 up 15:20, 1 user, load average: 1.55, 1.23, 1.19", "stdout_lines": [" 13:55:13 up 15:20, 1 user, load average: 1.55, 1.23, 1.19"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003677", "end": "2025-12-16 13:55:12.931267", "msg": "", "rc": 0, "start": "2025-12-16 13:55:12.927590", "stderr": "", "stderr_lines": [], "stdout": " 13:55:12 up 2 days, 3:26, 1 user, load average: 0.23, 0.16, 0.13", "stdout_lines": [" 13:55:12 up 2 days, 3:26, 1 user, load average: 0.23, 0.16, 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-16 13:55:13.344519", "msg": "", "rc": 0, "start": "2025-12-16 13:55:13.340172", "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.004171", "end": "2025-12-16 13:55:13.349351", "msg": "", "rc": 0, "start": "2025-12-16 13:55:13.345180", "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.004727", "end": "2025-12-16 13:55:13.360420", "msg": "", "rc": 0, "start": "2025-12-16 13:55:13.355693", "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.004695", "end": "2025-12-16 13:55:13.389525", "msg": "", "rc": 0, "start": "2025-12-16 13:55:13.384830", "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.005422", "end": "2025-12-16 13:55:13.398850", "msg": "", "rc": 0, "start": "2025-12-16 13:55:13.393428", "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.005224", "end": "2025-12-16 13:54:48.452865", "msg": "", "rc": 0, "start": "2025-12-16 13:54:48.447641", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005657", "end": "2025-12-16 13:54:42.321281", "msg": "", "rc": 0, "start": "2025-12-16 13:54:42.315624", "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.010592", "end": "2025-12-16 13:55:14.098795", "msg": "", "rc": 0, "start": "2025-12-16 13:55:14.088203", "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.011600", "end": "2025-12-16 13:55:14.126807", "msg": "", "rc": 0, "start": "2025-12-16 13:55:14.115207", "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.005786", "end": "2025-12-16 13:55:14.344157", "msg": "", "rc": 0, "start": "2025-12-16 13:55:14.338371", "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-16 13:54:45.486510", "msg": "", "rc": 0, "start": "2025-12-16 13:54:45.481316", "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.005580", "end": "2025-12-16 10:55:14.592081", "msg": "", "rc": 0, "start": "2025-12-16 10:55:14.586501", "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.004774", "end": "2025-12-16 13:54:51.802725", "msg": "", "rc": 0, "start": "2025-12-16 13:54:51.797951", "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.005351", "end": "2025-12-16 13:55:14.762506", "msg": "", "rc": 0, "start": "2025-12-16 13:55:14.757155", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020946", "end": "2025-12-16 13:55:15.165663", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.144717", "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.025318", "end": "2025-12-16 13:55:14.739943", "msg": "", "rc": 0, "start": "2025-12-16 13:55:14.714625", "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.004429", "end": "2025-12-16 13:55:15.292968", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.288539", "stderr": "", "stderr_lines": [], "stdout": "86.6%", "stdout_lines": ["86.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.004314", "end": "2025-12-16 13:55:15.295942", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.291628", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004577", "end": "2025-12-16 13:55:15.312425", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.307848", "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.005561", "end": "2025-12-16 13:55:15.352328", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.346767", "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.005779", "end": "2025-12-16 13:55:15.349629", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.343850", "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.003538", "end": "2025-12-16 13:54:50.410319", "msg": "", "rc": 0, "start": "2025-12-16 13:54:50.406781", "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.005452", "end": "2025-12-16 13:54:44.303561", "msg": "", "rc": 0, "start": "2025-12-16 13:54:44.298109", "stderr": "", "stderr_lines": [], "stdout": "70.6%", "stdout_lines": ["70.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.011630", "end": "2025-12-16 13:55:15.998155", "msg": "", "rc": 0, "start": "2025-12-16 13:55:15.986525", "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.011964", "end": "2025-12-16 13:55:16.034104", "msg": "", "rc": 0, "start": "2025-12-16 13:55:16.022140", "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.005816", "end": "2025-12-16 13:55:16.304568", "msg": "", "rc": 0, "start": "2025-12-16 13:55:16.298752", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004302", "end": "2025-12-16 13:54:47.483699", "msg": "", "rc": 0, "start": "2025-12-16 13:54:47.479397", "stderr": "", "stderr_lines": [], "stdout": "27.6%", "stdout_lines": ["27.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.003724", "end": "2025-12-16 13:54:53.711099", "msg": "", "rc": 0, "start": "2025-12-16 13:54:53.707375", "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.005294", "end": "2025-12-16 10:55:16.509665", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 10:55:16.504371", "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.005414", "end": "2025-12-16 13:55:16.731952", "msg": "", "rc": 0, "start": "2025-12-16 13:55:16.726538", "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.008943", "end": "2025-12-16 13:55:17.233179", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.224236", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025904", "end": "2025-12-16 13:55:16.710572", "msg": "", "rc": 0, "start": "2025-12-16 13:55:16.684668", "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.005383", "end": "2025-12-16 13:55:17.244038", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.238655", "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.004775", "end": "2025-12-16 13:55:17.260597", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.255822", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005969", "end": "2025-12-16 13:55:17.274504", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.268535", "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.003276", "end": "2025-12-16 13:55:17.300092", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.296816", "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.006504", "end": "2025-12-16 13:55:17.304237", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.297733", "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.002612", "end": "2025-12-16 13:54:52.341400", "msg": "", "rc": 0, "start": "2025-12-16 13:54:52.338788", "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.003007", "end": "2025-12-16 13:54:46.220210", "msg": "", "rc": 0, "start": "2025-12-16 13:54:46.217203", "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.011922", "end": "2025-12-16 13:55:17.941420", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.929498", "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.013058", "end": "2025-12-16 13:55:17.986587", "msg": "", "rc": 0, "start": "2025-12-16 13:55:17.973529", "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.003421", "end": "2025-12-16 13:55:18.240308", "msg": "", "rc": 0, "start": "2025-12-16 13:55:18.236887", "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.002928", "end": "2025-12-16 13:54:49.415218", "msg": "", "rc": 0, "start": "2025-12-16 13:54:49.412290", "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.002658", "end": "2025-12-16 13:54:55.656005", "msg": "", "rc": 0, "start": "2025-12-16 13:54:55.653347", "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.003926", "end": "2025-12-16 10:55:18.456446", "msg": "", "rc": 0, "start": "2025-12-16 10:55:18.452520", "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.003071", "end": "2025-12-16 13:55:18.670182", "msg": "", "rc": 0, "start": "2025-12-16 13:55:18.667111", "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.004706", "end": "2025-12-16 13:55:19.228566", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.223860", "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.028569", "end": "2025-12-16 13:55:18.663371", "msg": "", "rc": 0, "start": "2025-12-16 13:55:18.634802", "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.004257", "end": "2025-12-16 13:55:19.199179", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.194922", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.004158", "end": "2025-12-16 13:55:19.197093", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.192935", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.005017", "end": "2025-12-16 13:55:19.215191", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.210174", "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.004926", "end": "2025-12-16 13:55:19.231634", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.226708", "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.005927", "end": "2025-12-16 13:55:19.263294", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.257367", "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.004631", "end": "2025-12-16 13:54:54.305495", "msg": "", "rc": 0, "start": "2025-12-16 13:54:54.300864", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.010421", "end": "2025-12-16 13:54:48.220370", "msg": "", "rc": 0, "start": "2025-12-16 13:54:48.209949", "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.010141", "end": "2025-12-16 13:55:19.983554", "msg": "", "rc": 0, "start": "2025-12-16 13:55:19.973413", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.011902", "end": "2025-12-16 13:55:20.025162", "msg": "", "rc": 0, "start": "2025-12-16 13:55:20.013260", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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-16 13:55:20.190584", "msg": "", "rc": 0, "start": "2025-12-16 13:55:20.185037", "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.005051", "end": "2025-12-16 13:54:51.418689", "msg": "", "rc": 0, "start": "2025-12-16 13:54:51.413638", "stderr": "", "stderr_lines": [], "stdout": "0.82", "stdout_lines": ["0.82"]}
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.004349", "end": "2025-12-16 13:54:57.665682", "msg": "", "rc": 0, "start": "2025-12-16 13:54:57.661333", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.006276", "end": "2025-12-16 10:55:20.489623", "msg": "", "rc": 0, "start": "2025-12-16 10:55:20.483347", "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.005227", "end": "2025-12-16 13:55:20.612715", "msg": "", "rc": 0, "start": "2025-12-16 13:55:20.607488", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.024235", "end": "2025-12-16 13:55:20.599574", "msg": "", "rc": 0, "start": "2025-12-16 13:55:20.575339", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
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.008721", "end": "2025-12-16 13:55:21.308055", "msg": "", "rc": 0, "start": "2025-12-16 13:55:21.299334", "stderr": "", "stderr_lines": [], "stdout": "1.55", "stdout_lines": ["1.55"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:11 up 2 days, 3:27, 1 user, load average: 0.18, 0.24, 0.23\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.23\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:11 up 21 days, 46 min, 1 user, load average: 0.34, 0.34, 0.27\nDisk Usage: 23%\nMemory Usage: 86.6%\nCPU Load: 0.47\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:11 up 21 days, 1:06, 1 user, load average: 0.52, 0.49, 0.56\nDisk Usage: 14%\nMemory Usage: 48.9%\nCPU Load: 0.52\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:11 up 21 days, 2:19, 1 user, load average: 0.89, 0.84, 0.76\nDisk Usage: 14%\nMemory Usage: 59.6%\nCPU Load: 0.76\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:11 up 21 days, 3:05, 1 user, load average: 0.09, 0.08, 0.05\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:12 up 14 days, 3:21, 1 user, load average: 0.26, 0.17, 0.11\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.37\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:12 up 193 days, 5:28, 1 user, load average: 0.17, 0.19, 0.21\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.22\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:11 up 193 days, 5:28, 1 user, load average: 0.07, 0.10, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.07\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:54:46 up 10 days, 1:44, 0 user, load average: 0.22, 0.17, 0.18\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:54:40 up 16 days, 21:56, 0 user, load average: 0.04, 0.05, 0.02\nDisk Usage: 24%\nMemory Usage: 70.6%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:12 up 2 days, 3:26, 1 user, load average: 0.01, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:54:43 up 19 days, 16:49, 0 user, load average: 0.78, 0.53, 0.49\nDisk Usage: 28%\nMemory Usage: 27.6%\nCPU Load: 0.82\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:54:49 up 16 days, 3:10, 0 user, load average: 0.13, 0.14, 0.15\nDisk Usage: 75%\nMemory Usage: 58.1%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 10:55AM up 21 days, 45 mins, 1 user, load averages: 0.28, 0.25, 0.19\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: 13:55:12 up 2 days, 3:26, 1 user, load average: 0.23, 0.16, 0.13\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:55:13 up 15:20, 1 user, load average: 1.55, 1.23, 1.19\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.55\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-16T18:55:22.237863+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `e0e5ab1d8ac2432eb4689b8146153238` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:00:00.003964+00:00 |
| **Fin** | 2025-12-16T19:00:23.019614+00:00 |
| **Durée** | 23.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: [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.003072", "end": "2025-12-16 14:00:11.995248", "msg": "", "rc": 0, "start": "2025-12-16 14:00:11.992176", "stderr": "", "stderr_lines": [], "stdout": " 14:00:11 up 21 days, 51 min, 1 user, load average: 0.20, 0.22, 0.24", "stdout_lines": [" 14:00:11 up 21 days, 51 min, 1 user, load average: 0.20, 0.22, 0.24"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003669", "end": "2025-12-16 14:00:12.005339", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.001670", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 21 days, 3:10, 1 user, load average: 0.05, 0.05, 0.04", "stdout_lines": [" 14:00:12 up 21 days, 3:10, 1 user, load average: 0.05, 0.05, 0.04"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003831", "end": "2025-12-16 14:00:12.021799", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.017968", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 21 days, 2:24, 1 user, load average: 0.72, 0.81, 0.78", "stdout_lines": [" 14:00:12 up 21 days, 2:24, 1 user, load average: 0.72, 0.81, 0.78"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003132", "end": "2025-12-16 14:00:12.032756", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.029624", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 2 days, 3:32, 1 user, load average: 0.21, 0.19, 0.21", "stdout_lines": [" 14:00:12 up 2 days, 3:32, 1 user, load average: 0.21, 0.19, 0.21"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003427", "end": "2025-12-16 14:00:12.031202", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.027775", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 21 days, 1:11, 1 user, load average: 0.58, 0.49, 0.53", "stdout_lines": [" 14:00:12 up 21 days, 1:11, 1 user, load average: 0.58, 0.49, 0.53"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003069", "end": "2025-12-16 13:59:47.069215", "msg": "", "rc": 0, "start": "2025-12-16 13:59:47.066146", "stderr": "", "stderr_lines": [], "stdout": " 13:59:47 up 10 days, 1:49, 0 user, load average: 0.17, 0.16, 0.17", "stdout_lines": [" 13:59:47 up 10 days, 1:49, 0 user, load average: 0.17, 0.16, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003330", "end": "2025-12-16 13:59:40.956784", "msg": "", "rc": 0, "start": "2025-12-16 13:59:40.953454", "stderr": "", "stderr_lines": [], "stdout": " 13:59:40 up 16 days, 22:01, 0 user, load average: 0.01, 0.03, 0.01", "stdout_lines": [" 13:59:40 up 16 days, 22:01, 0 user, load average: 0.01, 0.03, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008516", "end": "2025-12-16 14:00:12.705861", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.697345", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 193 days, 5:33, 1 user, load average: 0.14, 0.11, 0.10", "stdout_lines": [" 14:00:12 up 193 days, 5:33, 1 user, load average: 0.14, 0.11, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009377", "end": "2025-12-16 14:00:12.743198", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.733821", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 193 days, 5:33, 1 user, load average: 0.33, 0.21, 0.19", "stdout_lines": [" 14:00:12 up 193 days, 5:33, 1 user, load average: 0.33, 0.21, 0.19"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004715", "end": "2025-12-16 14:00:12.971487", "msg": "", "rc": 0, "start": "2025-12-16 14:00:12.966772", "stderr": "", "stderr_lines": [], "stdout": " 14:00:12 up 2 days, 3:31, 1 user, load average: 0.10, 0.03, 0.01", "stdout_lines": [" 14:00:12 up 2 days, 3:31, 1 user, load average: 0.10, 0.03, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003204", "end": "2025-12-16 13:59:44.121175", "msg": "", "rc": 0, "start": "2025-12-16 13:59:44.117971", "stderr": "", "stderr_lines": [], "stdout": " 13:59:44 up 19 days, 16:54, 0 user, load average: 0.91, 0.61, 0.52", "stdout_lines": [" 13:59:44 up 19 days, 16:54, 0 user, load average: 0.91, 0.61, 0.52"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004205", "end": "2025-12-16 11:00:13.201462", "msg": "", "rc": 0, "start": "2025-12-16 11:00:13.197257", "stderr": "", "stderr_lines": [], "stdout": "11:00AM up 21 days, 50 mins, 1 user, load averages: 0.16, 0.23, 0.19", "stdout_lines": ["11:00AM up 21 days, 50 mins, 1 user, load averages: 0.16, 0.23, 0.19"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003152", "end": "2025-12-16 13:59:50.410328", "msg": "", "rc": 0, "start": "2025-12-16 13:59:50.407176", "stderr": "", "stderr_lines": [], "stdout": " 13:59:50 up 16 days, 3:15, 0 user, load average: 0.58, 0.42, 0.27", "stdout_lines": [" 13:59:50 up 16 days, 3:15, 0 user, load average: 0.58, 0.42, 0.27"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003767", "end": "2025-12-16 14:00:13.402823", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.399056", "stderr": "", "stderr_lines": [], "stdout": " 14:00:13 up 2 days, 3:31, 1 user, load average: 0.11, 0.08, 0.09", "stdout_lines": [" 14:00:13 up 2 days, 3:31, 1 user, load average: 0.11, 0.08, 0.09"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008483", "end": "2025-12-16 14:00:14.110668", "msg": "", "rc": 0, "start": "2025-12-16 14:00:14.102185", "stderr": "", "stderr_lines": [], "stdout": " 14:00:14 up 15:25, 1 user, load average: 1.25, 1.16, 1.16", "stdout_lines": [" 14:00:14 up 15:25, 1 user, load average: 1.25, 1.16, 1.16"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019778", "end": "2025-12-16 14:00:13.397465", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.377687", "stderr": "", "stderr_lines": [], "stdout": " 14:00:13 up 14 days, 3:26, 1 user, load average: 0.33, 0.18, 0.11", "stdout_lines": [" 14:00:13 up 14 days, 3:26, 1 user, load average: 0.33, 0.18, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004370", "end": "2025-12-16 14:00:13.921809", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.917439", "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-16 14:00:13.945885", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.941736", "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.004667", "end": "2025-12-16 14:00:13.954589", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.949922", "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-16 14:00:13.977967", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.973082", "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.005996", "end": "2025-12-16 14:00:13.994150", "msg": "", "rc": 0, "start": "2025-12-16 14:00:13.988154", "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.004973", "end": "2025-12-16 13:59:49.005689", "msg": "", "rc": 0, "start": "2025-12-16 13:59:49.000716", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005621", "end": "2025-12-16 13:59:42.891599", "msg": "", "rc": 0, "start": "2025-12-16 13:59:42.885978", "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.010646", "end": "2025-12-16 14:00:14.670611", "msg": "", "rc": 0, "start": "2025-12-16 14:00:14.659965", "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.011645", "end": "2025-12-16 14:00:14.700849", "msg": "", "rc": 0, "start": "2025-12-16 14:00:14.689204", "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.005765", "end": "2025-12-16 14:00:14.902651", "msg": "", "rc": 0, "start": "2025-12-16 14:00:14.896886", "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-16 13:59:46.063446", "msg": "", "rc": 0, "start": "2025-12-16 13:59:46.058252", "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.005111", "end": "2025-12-16 13:59:52.369624", "msg": "", "rc": 0, "start": "2025-12-16 13:59:52.364513", "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.005663", "end": "2025-12-16 11:00:15.183133", "msg": "", "rc": 0, "start": "2025-12-16 11:00:15.177470", "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.005911", "end": "2025-12-16 14:00:15.340794", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.334883", "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-16 14:00:16.143301", "msg": "", "rc": 0, "start": "2025-12-16 14:00:16.120833", "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.025110", "end": "2025-12-16 14:00:15.320863", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.295753", "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.004540", "end": "2025-12-16 14:00:15.857975", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.853435", "stderr": "", "stderr_lines": [], "stdout": "86.6%", "stdout_lines": ["86.6%"]}
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.004865", "end": "2025-12-16 14:00:15.872143", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.867278", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004251", "end": "2025-12-16 14:00:15.877491", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.873240", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004478", "end": "2025-12-16 14:00:15.896126", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.891648", "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.005915", "end": "2025-12-16 14:00:15.911707", "msg": "", "rc": 0, "start": "2025-12-16 14:00:15.905792", "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.003559", "end": "2025-12-16 13:59:50.960445", "msg": "", "rc": 0, "start": "2025-12-16 13:59:50.956886", "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.004335", "end": "2025-12-16 13:59:44.841913", "msg": "", "rc": 0, "start": "2025-12-16 13:59:44.837578", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.011440", "end": "2025-12-16 14:00:16.568438", "msg": "", "rc": 0, "start": "2025-12-16 14:00:16.556998", "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.012146", "end": "2025-12-16 14:00:16.604304", "msg": "", "rc": 0, "start": "2025-12-16 14:00:16.592158", "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.005748", "end": "2025-12-16 14:00:16.841384", "msg": "", "rc": 0, "start": "2025-12-16 14:00:16.835636", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004068", "end": "2025-12-16 13:59:48.012597", "msg": "", "rc": 0, "start": "2025-12-16 13:59:48.008529", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.003663", "end": "2025-12-16 13:59:54.260639", "msg": "", "rc": 0, "start": "2025-12-16 13:59:54.256976", "stderr": "", "stderr_lines": [], "stdout": "59.8%", "stdout_lines": ["59.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.005198", "end": "2025-12-16 11:00:17.080522", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:00:17.075324", "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.005381", "end": "2025-12-16 14:00:17.269517", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.264136", "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.008499", "end": "2025-12-16 14:00:18.161101", "msg": "", "rc": 0, "start": "2025-12-16 14:00:18.152602", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025880", "end": "2025-12-16 14:00:17.260621", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.234741", "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.005310", "end": "2025-12-16 14:00:17.785164", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.779854", "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.004774", "end": "2025-12-16 14:00:17.800370", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.795596", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005456", "end": "2025-12-16 14:00:17.811004", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.805548", "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.003299", "end": "2025-12-16 14:00:17.823882", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.820583", "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.008217", "end": "2025-12-16 14:00:17.860794", "msg": "", "rc": 0, "start": "2025-12-16 14:00:17.852577", "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.002852", "end": "2025-12-16 13:59:52.861978", "msg": "", "rc": 0, "start": "2025-12-16 13:59:52.859126", "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.003170", "end": "2025-12-16 13:59:46.763919", "msg": "", "rc": 0, "start": "2025-12-16 13:59:46.760749", "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.011843", "end": "2025-12-16 14:00:18.476536", "msg": "", "rc": 0, "start": "2025-12-16 14:00:18.464693", "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.013401", "end": "2025-12-16 14:00:18.502927", "msg": "", "rc": 0, "start": "2025-12-16 14:00:18.489526", "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.003387", "end": "2025-12-16 14:00:18.719895", "msg": "", "rc": 0, "start": "2025-12-16 14:00:18.716508", "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.003085", "end": "2025-12-16 13:59:49.926745", "msg": "", "rc": 0, "start": "2025-12-16 13:59:49.923660", "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.003963", "end": "2025-12-16 11:00:18.966379", "msg": "", "rc": 0, "start": "2025-12-16 11:00:18.962416", "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.002992", "end": "2025-12-16 13:59:56.187636", "msg": "", "rc": 0, "start": "2025-12-16 13:59:56.184644", "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.002988", "end": "2025-12-16 14:00:19.132951", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.129963", "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.005130", "end": "2025-12-16 14:00:20.143803", "msg": "", "rc": 0, "start": "2025-12-16 14:00:20.138673", "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.028306", "end": "2025-12-16 14:00:19.179375", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.151069", "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.004291", "end": "2025-12-16 14:00:19.695420", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.691129", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.003980", "end": "2025-12-16 14:00:19.718001", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.714021", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.005273", "end": "2025-12-16 14:00:19.744800", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.739527", "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.005605", "end": "2025-12-16 14:00:19.744940", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.739335", "stderr": "", "stderr_lines": [], "stdout": "0.83", "stdout_lines": ["0.83"]}
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.004803", "end": "2025-12-16 14:00:19.774272", "msg": "", "rc": 0, "start": "2025-12-16 14:00:19.769469", "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.004189", "end": "2025-12-16 13:59:54.795996", "msg": "", "rc": 0, "start": "2025-12-16 13:59:54.791807", "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.006127", "end": "2025-12-16 13:59:48.687607", "msg": "", "rc": 0, "start": "2025-12-16 13:59:48.681480", "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.010139", "end": "2025-12-16 14:00:20.497808", "msg": "", "rc": 0, "start": "2025-12-16 14:00:20.487669", "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.011277", "end": "2025-12-16 14:00:20.515930", "msg": "", "rc": 0, "start": "2025-12-16 14:00:20.504653", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.005803", "end": "2025-12-16 14:00:20.686157", "msg": "", "rc": 0, "start": "2025-12-16 14:00:20.680354", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.004904", "end": "2025-12-16 13:59:51.879729", "msg": "", "rc": 0, "start": "2025-12-16 13:59:51.874825", "stderr": "", "stderr_lines": [], "stdout": "1.81", "stdout_lines": ["1.81"]}
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.006012", "end": "2025-12-16 11:00:20.972031", "msg": "", "rc": 0, "start": "2025-12-16 11:00:20.966019", "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.005295", "end": "2025-12-16 13:59:58.194805", "msg": "", "rc": 0, "start": "2025-12-16 13:59:58.189510", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
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.005249", "end": "2025-12-16 14:00:21.116074", "msg": "", "rc": 0, "start": "2025-12-16 14:00:21.110825", "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.024282", "end": "2025-12-16 14:00:21.082046", "msg": "", "rc": 0, "start": "2025-12-16 14:00:21.057764", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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.009346", "end": "2025-12-16 14:00:22.197112", "msg": "", "rc": 0, "start": "2025-12-16 14:00:22.187766", "stderr": "", "stderr_lines": [], "stdout": "1.36", "stdout_lines": ["1.36"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 2 days, 3:32, 1 user, load average: 0.21, 0.19, 0.21\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.25\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:11 up 21 days, 51 min, 1 user, load average: 0.20, 0.22, 0.24\nDisk Usage: 23%\nMemory Usage: 86.6%\nCPU Load: 0.17\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 21 days, 1:11, 1 user, load average: 0.58, 0.49, 0.53\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.58\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 21 days, 2:24, 1 user, load average: 0.72, 0.81, 0.78\nDisk Usage: 14%\nMemory Usage: 59.3%\nCPU Load: 0.83\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 21 days, 3:10, 1 user, load average: 0.05, 0.05, 0.04\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: 14:00:13 up 14 days, 3:26, 1 user, load average: 0.33, 0.18, 0.11\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.43\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 193 days, 5:33, 1 user, load average: 0.33, 0.21, 0.19\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.36\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 193 days, 5:33, 1 user, load average: 0.14, 0.11, 0.10\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.13\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:59:47 up 10 days, 1:49, 0 user, load average: 0.17, 0.16, 0.17\nDisk Usage: 47%\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: 13:59:40 up 16 days, 22:01, 0 user, load average: 0.01, 0.03, 0.01\nDisk Usage: 24%\nMemory Usage: 70.0%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:12 up 2 days, 3:31, 1 user, load average: 0.10, 0.03, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:59:44 up 19 days, 16:54, 0 user, load average: 0.91, 0.61, 0.52\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 1.81\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 13:59:50 up 16 days, 3:15, 0 user, load average: 0.58, 0.42, 0.27\nDisk Usage: 75%\nMemory Usage: 59.8%\nCPU Load: 0.57\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:00AM up 21 days, 50 mins, 1 user, load averages: 0.16, 0.23, 0.19\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: 14:00:13 up 2 days, 3:31, 1 user, load average: 0.11, 0.08, 0.09\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:00:14 up 15:25, 1 user, load average: 1.25, 1.16, 1.16\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.36\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-16T19:00:23.062729+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `ed0a827c5bbd41d78f0b18d18df616ca` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:05:00.003790+00:00 |
| **Fin** | 2025-12-16T19:05:22.155177+00:00 |
| **Durée** | 22.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: [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.003107", "end": "2025-12-16 14:05:11.818364", "msg": "", "rc": 0, "start": "2025-12-16 14:05:11.815257", "stderr": "", "stderr_lines": [], "stdout": " 14:05:11 up 21 days, 56 min, 1 user, load average: 0.08, 0.14, 0.19", "stdout_lines": [" 14:05:11 up 21 days, 56 min, 1 user, load average: 0.08, 0.14, 0.19"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003735", "end": "2025-12-16 14:05:11.833535", "msg": "", "rc": 0, "start": "2025-12-16 14:05:11.829800", "stderr": "", "stderr_lines": [], "stdout": " 14:05:11 up 21 days, 3:15, 1 user, load average: 0.08, 0.06, 0.03", "stdout_lines": [" 14:05:11 up 21 days, 3:15, 1 user, load average: 0.08, 0.06, 0.03"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003869", "end": "2025-12-16 14:05:11.837032", "msg": "", "rc": 0, "start": "2025-12-16 14:05:11.833163", "stderr": "", "stderr_lines": [], "stdout": " 14:05:11 up 21 days, 1:16, 1 user, load average: 0.30, 0.56, 0.57", "stdout_lines": [" 14:05:11 up 21 days, 1:16, 1 user, load average: 0.30, 0.56, 0.57"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002814", "end": "2025-12-16 14:05:11.858116", "msg": "", "rc": 0, "start": "2025-12-16 14:05:11.855302", "stderr": "", "stderr_lines": [], "stdout": " 14:05:11 up 2 days, 3:37, 1 user, load average: 0.10, 0.17, 0.20", "stdout_lines": [" 14:05:11 up 2 days, 3:37, 1 user, load average: 0.10, 0.17, 0.20"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004090", "end": "2025-12-16 14:05:11.850495", "msg": "", "rc": 0, "start": "2025-12-16 14:05:11.846405", "stderr": "", "stderr_lines": [], "stdout": " 14:05:11 up 21 days, 2:29, 1 user, load average: 1.11, 0.91, 0.83", "stdout_lines": [" 14:05:11 up 21 days, 2:29, 1 user, load average: 1.11, 0.91, 0.83"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002835", "end": "2025-12-16 14:04:46.922425", "msg": "", "rc": 0, "start": "2025-12-16 14:04:46.919590", "stderr": "", "stderr_lines": [], "stdout": " 14:04:46 up 10 days, 1:54, 0 user, load average: 0.09, 0.15, 0.16", "stdout_lines": [" 14:04:46 up 10 days, 1:54, 0 user, load average: 0.09, 0.15, 0.16"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003165", "end": "2025-12-16 14:04:40.780235", "msg": "", "rc": 0, "start": "2025-12-16 14:04:40.777070", "stderr": "", "stderr_lines": [], "stdout": " 14:04:40 up 16 days, 22:06, 0 user, load average: 0.02, 0.03, 0.00", "stdout_lines": [" 14:04:40 up 16 days, 22:06, 0 user, load average: 0.02, 0.03, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008582", "end": "2025-12-16 14:05:12.513049", "msg": "", "rc": 0, "start": "2025-12-16 14:05:12.504467", "stderr": "", "stderr_lines": [], "stdout": " 14:05:12 up 193 days, 5:38, 1 user, load average: 0.15, 0.11, 0.09", "stdout_lines": [" 14:05:12 up 193 days, 5:38, 1 user, load average: 0.15, 0.11, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009281", "end": "2025-12-16 14:05:12.554189", "msg": "", "rc": 0, "start": "2025-12-16 14:05:12.544908", "stderr": "", "stderr_lines": [], "stdout": " 14:05:12 up 193 days, 5:38, 1 user, load average: 0.27, 0.24, 0.20", "stdout_lines": [" 14:05:12 up 193 days, 5:38, 1 user, load average: 0.27, 0.24, 0.20"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005113", "end": "2025-12-16 14:05:12.814975", "msg": "", "rc": 0, "start": "2025-12-16 14:05:12.809862", "stderr": "", "stderr_lines": [], "stdout": " 14:05:12 up 2 days, 3:36, 1 user, load average: 0.01, 0.04, 0.01", "stdout_lines": [" 14:05:12 up 2 days, 3:36, 1 user, load average: 0.01, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003153", "end": "2025-12-16 14:04:43.952322", "msg": "", "rc": 0, "start": "2025-12-16 14:04:43.949169", "stderr": "", "stderr_lines": [], "stdout": " 14:04:43 up 19 days, 16:59, 0 user, load average: 0.32, 0.53, 0.52", "stdout_lines": [" 14:04:43 up 19 days, 16:59, 0 user, load average: 0.32, 0.53, 0.52"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002851", "end": "2025-12-16 14:04:50.206497", "msg": "", "rc": 0, "start": "2025-12-16 14:04:50.203646", "stderr": "", "stderr_lines": [], "stdout": " 14:04:50 up 16 days, 3:20, 0 user, load average: 0.58, 0.58, 0.38", "stdout_lines": [" 14:04:50 up 16 days, 3:20, 0 user, load average: 0.58, 0.58, 0.38"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004302", "end": "2025-12-16 11:05:13.023421", "msg": "", "rc": 0, "start": "2025-12-16 11:05:13.019119", "stderr": "", "stderr_lines": [], "stdout": "11:05AM up 21 days, 55 mins, 1 user, load averages: 0.29, 0.25, 0.20", "stdout_lines": ["11:05AM up 21 days, 55 mins, 1 user, load averages: 0.29, 0.25, 0.20"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003689", "end": "2025-12-16 14:05:13.249281", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.245592", "stderr": "", "stderr_lines": [], "stdout": " 14:05:13 up 2 days, 3:36, 1 user, load average: 0.15, 0.07, 0.08", "stdout_lines": [" 14:05:13 up 2 days, 3:36, 1 user, load average: 0.15, 0.07, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008824", "end": "2025-12-16 14:05:13.291929", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.283105", "stderr": "", "stderr_lines": [], "stdout": " 14:05:13 up 15:31, 1 user, load average: 1.38, 1.16, 1.15", "stdout_lines": [" 14:05:13 up 15:31, 1 user, load average: 1.38, 1.16, 1.15"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019531", "end": "2025-12-16 14:05:13.213432", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.193901", "stderr": "", "stderr_lines": [], "stdout": " 14:05:13 up 14 days, 3:31, 1 user, load average: 0.23, 0.16, 0.11", "stdout_lines": [" 14:05:13 up 14 days, 3:31, 1 user, load average: 0.23, 0.16, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004417", "end": "2025-12-16 14:05:13.756820", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.752403", "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.004413", "end": "2025-12-16 14:05:13.765155", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.760742", "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.005086", "end": "2025-12-16 14:05:13.806105", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.801019", "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.004788", "end": "2025-12-16 14:05:13.806978", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.802190", "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.005504", "end": "2025-12-16 14:05:13.811040", "msg": "", "rc": 0, "start": "2025-12-16 14:05:13.805536", "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.006065", "end": "2025-12-16 14:04:48.910088", "msg": "", "rc": 0, "start": "2025-12-16 14:04:48.904023", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005381", "end": "2025-12-16 14:04:42.739317", "msg": "", "rc": 0, "start": "2025-12-16 14:04:42.733936", "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.010685", "end": "2025-12-16 14:05:14.527341", "msg": "", "rc": 0, "start": "2025-12-16 14:05:14.516656", "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.011590", "end": "2025-12-16 14:05:14.549572", "msg": "", "rc": 0, "start": "2025-12-16 14:05:14.537982", "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.005613", "end": "2025-12-16 14:05:14.802414", "msg": "", "rc": 0, "start": "2025-12-16 14:05:14.796801", "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.005154", "end": "2025-12-16 14:04:45.915019", "msg": "", "rc": 0, "start": "2025-12-16 14:04:45.909865", "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.005692", "end": "2025-12-16 11:05:15.018574", "msg": "", "rc": 0, "start": "2025-12-16 11:05:15.012882", "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.005155", "end": "2025-12-16 14:04:52.249754", "msg": "", "rc": 0, "start": "2025-12-16 14:04:52.244599", "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.005515", "end": "2025-12-16 14:05:15.238230", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.232715", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020917", "end": "2025-12-16 14:05:15.324085", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.303168", "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.025156", "end": "2025-12-16 14:05:15.167574", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.142418", "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.004420", "end": "2025-12-16 14:05:15.696858", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.692438", "stderr": "", "stderr_lines": [], "stdout": "86.2%", "stdout_lines": ["86.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.004109", "end": "2025-12-16 14:05:15.724268", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.720159", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004959", "end": "2025-12-16 14:05:15.750840", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.745881", "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.004887", "end": "2025-12-16 14:05:15.742043", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.737156", "stderr": "", "stderr_lines": [], "stdout": "49.1%", "stdout_lines": ["49.1%"]}
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.006078", "end": "2025-12-16 14:05:15.767893", "msg": "", "rc": 0, "start": "2025-12-16 14:05:15.761815", "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.004355", "end": "2025-12-16 14:04:50.811471", "msg": "", "rc": 0, "start": "2025-12-16 14:04:50.807116", "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.004385", "end": "2025-12-16 14:04:44.690338", "msg": "", "rc": 0, "start": "2025-12-16 14:04:44.685953", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.010838", "end": "2025-12-16 14:05:16.417689", "msg": "", "rc": 0, "start": "2025-12-16 14:05:16.406851", "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.011991", "end": "2025-12-16 14:05:16.444242", "msg": "", "rc": 0, "start": "2025-12-16 14:05:16.432251", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005715", "end": "2025-12-16 14:05:16.704347", "msg": "", "rc": 0, "start": "2025-12-16 14:05:16.698632", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004038", "end": "2025-12-16 14:04:47.871839", "msg": "", "rc": 0, "start": "2025-12-16 14:04:47.867801", "stderr": "", "stderr_lines": [], "stdout": "27.4%", "stdout_lines": ["27.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.005506", "end": "2025-12-16 11:05:16.916012", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:05:16.910506", "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.004003", "end": "2025-12-16 14:04:54.122543", "msg": "", "rc": 0, "start": "2025-12-16 14:04:54.118540", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.005498", "end": "2025-12-16 14:05:17.125253", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.119755", "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.008888", "end": "2025-12-16 14:05:17.317480", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.308592", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025973", "end": "2025-12-16 14:05:17.095868", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.069895", "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.005607", "end": "2025-12-16 14:05:17.626691", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.621084", "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.004823", "end": "2025-12-16 14:05:17.631963", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.627140", "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.005718", "end": "2025-12-16 14:05:17.634413", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.628695", "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.003113", "end": "2025-12-16 14:05:17.665866", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.662753", "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.006337", "end": "2025-12-16 14:05:17.686091", "msg": "", "rc": 0, "start": "2025-12-16 14:05:17.679754", "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.003527", "end": "2025-12-16 14:04:52.696892", "msg": "", "rc": 0, "start": "2025-12-16 14:04:52.693365", "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.002820", "end": "2025-12-16 14:04:46.598879", "msg": "", "rc": 0, "start": "2025-12-16 14:04:46.596059", "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-16 14:05:18.338630", "msg": "", "rc": 0, "start": "2025-12-16 14:05:18.326715", "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.012968", "end": "2025-12-16 14:05:18.367032", "msg": "", "rc": 0, "start": "2025-12-16 14:05:18.354064", "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.003291", "end": "2025-12-16 14:05:18.572496", "msg": "", "rc": 0, "start": "2025-12-16 14:05:18.569205", "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.002916", "end": "2025-12-16 14:04:49.790898", "msg": "", "rc": 0, "start": "2025-12-16 14:04:49.787982", "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.003879", "end": "2025-12-16 11:05:18.830221", "msg": "", "rc": 0, "start": "2025-12-16 11:05:18.826342", "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.002678", "end": "2025-12-16 14:04:56.046342", "msg": "", "rc": 0, "start": "2025-12-16 14:04:56.043664", "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.003541", "end": "2025-12-16 14:05:19.015722", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.012181", "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.004464", "end": "2025-12-16 14:05:19.307410", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.302946", "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.028570", "end": "2025-12-16 14:05:19.030613", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.002043", "stderr": "", "stderr_lines": [], "stdout": "36.8°C", "stdout_lines": ["36.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.004232", "end": "2025-12-16 14:05:19.546710", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.542478", "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.003973", "end": "2025-12-16 14:05:19.557592", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.553619", "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.004570", "end": "2025-12-16 14:05:19.582198", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.577628", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.005111", "end": "2025-12-16 14:05:19.607274", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.602163", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005470", "end": "2025-12-16 14:05:19.624388", "msg": "", "rc": 0, "start": "2025-12-16 14:05:19.618918", "stderr": "", "stderr_lines": [], "stdout": "1.18", "stdout_lines": ["1.18"]}
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.005048", "end": "2025-12-16 14:04:54.632168", "msg": "", "rc": 0, "start": "2025-12-16 14:04:54.627120", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.005084", "end": "2025-12-16 14:04:48.526879", "msg": "", "rc": 0, "start": "2025-12-16 14:04:48.521795", "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.010093", "end": "2025-12-16 14:05:20.323002", "msg": "", "rc": 0, "start": "2025-12-16 14:05:20.312909", "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.011154", "end": "2025-12-16 14:05:20.367137", "msg": "", "rc": 0, "start": "2025-12-16 14:05:20.355983", "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.005613", "end": "2025-12-16 14:05:20.541017", "msg": "", "rc": 0, "start": "2025-12-16 14:05:20.535404", "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.005195", "end": "2025-12-16 14:04:51.713946", "msg": "", "rc": 0, "start": "2025-12-16 14:04:51.708751", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.006132", "end": "2025-12-16 11:05:20.833104", "msg": "", "rc": 0, "start": "2025-12-16 11:05:20.826972", "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.004464", "end": "2025-12-16 14:04:58.040709", "msg": "", "rc": 0, "start": "2025-12-16 14:04:58.036245", "stderr": "", "stderr_lines": [], "stdout": "0.49", "stdout_lines": ["0.49"]}
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.005250", "end": "2025-12-16 14:05:20.967991", "msg": "", "rc": 0, "start": "2025-12-16 14:05:20.962741", "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.008017", "end": "2025-12-16 14:05:21.315996", "msg": "", "rc": 0, "start": "2025-12-16 14:05:21.307979", "stderr": "", "stderr_lines": [], "stdout": "1.47", "stdout_lines": ["1.47"]}
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.024380", "end": "2025-12-16 14:05:20.933601", "msg": "", "rc": 0, "start": "2025-12-16 14:05:20.909221", "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: 14:05:11 up 21 days, 56 min, 1 user, load average: 0.08, 0.14, 0.19\nDisk Usage: 23%\nMemory Usage: 86.2%\nCPU Load: 0.22\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:11 up 2 days, 3:37, 1 user, load average: 0.10, 0.17, 0.20\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.16\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:11 up 21 days, 1:16, 1 user, load average: 0.30, 0.56, 0.57\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.33\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:11 up 21 days, 2:29, 1 user, load average: 1.11, 0.91, 0.83\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 1.18\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:11 up 21 days, 3:15, 1 user, load average: 0.08, 0.06, 0.03\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:13 up 14 days, 3:31, 1 user, load average: 0.23, 0.16, 0.11\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.27\nCPU Temp: 36.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:12 up 193 days, 5:38, 1 user, load average: 0.27, 0.24, 0.20\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.39\nCPU Temp: 35.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:12 up 193 days, 5:38, 1 user, load average: 0.15, 0.11, 0.09\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.13\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:04:46 up 10 days, 1:54, 0 user, load average: 0.09, 0.15, 0.16\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:04:40 up 16 days, 22:06, 0 user, load average: 0.02, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 70.0%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:12 up 2 days, 3:36, 1 user, load average: 0.01, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:04:43 up 19 days, 16:59, 0 user, load average: 0.32, 0.53, 0.52\nDisk Usage: 28%\nMemory Usage: 27.4%\nCPU Load: 0.35\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:04:50 up 16 days, 3:20, 0 user, load average: 0.58, 0.58, 0.38\nDisk Usage: 75%\nMemory Usage: 59.0%\nCPU Load: 0.49\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:05AM up 21 days, 55 mins, 1 user, load averages: 0.29, 0.25, 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: 14:05:13 up 2 days, 3:36, 1 user, load average: 0.15, 0.07, 0.08\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:05:13 up 15:31, 1 user, load average: 1.38, 1.16, 1.15\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.47\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-16T19:05:22.195481+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6b8a10cb28a24ad6917b5d44b0a414d4` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:10:00.001365+00:00 |
| **Fin** | 2025-12-16T19:10:21.763589+00:00 |
| **Durée** | 21.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.003157", "end": "2025-12-16 14:10:11.078391", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.075234", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 21 days, 1:01, 1 user, load average: 0.31, 0.20, 0.19", "stdout_lines": [" 14:10:11 up 21 days, 1:01, 1 user, load average: 0.31, 0.20, 0.19"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004032", "end": "2025-12-16 14:10:11.095988", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.091956", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 21 days, 3:20, 1 user, load average: 0.01, 0.03, 0.02", "stdout_lines": [" 14:10:11 up 21 days, 3:20, 1 user, load average: 0.01, 0.03, 0.02"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003158", "end": "2025-12-16 14:10:11.100843", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.097685", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 21 days, 1:21, 1 user, load average: 0.77, 0.59, 0.57", "stdout_lines": [" 14:10:11 up 21 days, 1:21, 1 user, load average: 0.77, 0.59, 0.57"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003958", "end": "2025-12-16 14:10:11.114456", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.110498", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 21 days, 2:34, 1 user, load average: 1.25, 0.91, 0.84", "stdout_lines": [" 14:10:11 up 21 days, 2:34, 1 user, load average: 1.25, 0.91, 0.84"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002972", "end": "2025-12-16 14:10:11.119153", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.116181", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 2 days, 3:42, 1 user, load average: 0.20, 0.21, 0.20", "stdout_lines": [" 14:10:11 up 2 days, 3:42, 1 user, load average: 0.20, 0.21, 0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002880", "end": "2025-12-16 14:09:46.208301", "msg": "", "rc": 0, "start": "2025-12-16 14:09:46.205421", "stderr": "", "stderr_lines": [], "stdout": " 14:09:46 up 10 days, 1:59, 0 user, load average: 0.25, 0.21, 0.18", "stdout_lines": [" 14:09:46 up 10 days, 1:59, 0 user, load average: 0.25, 0.21, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003406", "end": "2025-12-16 14:09:40.083713", "msg": "", "rc": 0, "start": "2025-12-16 14:09:40.080307", "stderr": "", "stderr_lines": [], "stdout": " 14:09:40 up 16 days, 22:11, 0 user, load average: 0.07, 0.04, 0.00", "stdout_lines": [" 14:09:40 up 16 days, 22:11, 0 user, load average: 0.07, 0.04, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008555", "end": "2025-12-16 14:10:11.831647", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.823092", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 193 days, 5:43, 1 user, load average: 0.23, 0.14, 0.10", "stdout_lines": [" 14:10:11 up 193 days, 5:43, 1 user, load average: 0.23, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009255", "end": "2025-12-16 14:10:11.872127", "msg": "", "rc": 0, "start": "2025-12-16 14:10:11.862872", "stderr": "", "stderr_lines": [], "stdout": " 14:10:11 up 193 days, 5:43, 1 user, load average: 0.20, 0.20, 0.18", "stdout_lines": [" 14:10:11 up 193 days, 5:43, 1 user, load average: 0.20, 0.20, 0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004895", "end": "2025-12-16 14:10:12.099150", "msg": "", "rc": 0, "start": "2025-12-16 14:10:12.094255", "stderr": "", "stderr_lines": [], "stdout": " 14:10:12 up 2 days, 3:41, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 14:10:12 up 2 days, 3:41, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003286", "end": "2025-12-16 14:09:43.243847", "msg": "", "rc": 0, "start": "2025-12-16 14:09:43.240561", "stderr": "", "stderr_lines": [], "stdout": " 14:09:43 up 19 days, 17:04, 0 user, load average: 0.37, 0.48, 0.51", "stdout_lines": [" 14:09:43 up 19 days, 17:04, 0 user, load average: 0.37, 0.48, 0.51"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002999", "end": "2025-12-16 14:09:49.515050", "msg": "", "rc": 0, "start": "2025-12-16 14:09:49.512051", "stderr": "", "stderr_lines": [], "stdout": " 14:09:49 up 16 days, 3:25, 0 user, load average: 0.36, 0.48, 0.38", "stdout_lines": [" 14:09:49 up 16 days, 3:25, 0 user, load average: 0.36, 0.48, 0.38"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004336", "end": "2025-12-16 11:10:12.333443", "msg": "", "rc": 0, "start": "2025-12-16 11:10:12.329107", "stderr": "", "stderr_lines": [], "stdout": "11:10AM up 21 days, 59 mins, 1 user, load averages: 0.09, 0.17, 0.17", "stdout_lines": ["11:10AM up 21 days, 59 mins, 1 user, load averages: 0.09, 0.17, 0.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003828", "end": "2025-12-16 14:10:12.526491", "msg": "", "rc": 0, "start": "2025-12-16 14:10:12.522663", "stderr": "", "stderr_lines": [], "stdout": " 14:10:12 up 2 days, 3:41, 1 user, load average: 0.16, 0.06, 0.07", "stdout_lines": [" 14:10:12 up 2 days, 3:41, 1 user, load average: 0.16, 0.06, 0.07"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007759", "end": "2025-12-16 14:10:12.901704", "msg": "", "rc": 0, "start": "2025-12-16 14:10:12.893945", "stderr": "", "stderr_lines": [], "stdout": " 14:10:12 up 15:36, 1 user, load average: 1.30, 1.18, 1.16", "stdout_lines": [" 14:10:12 up 15:36, 1 user, load average: 1.30, 1.18, 1.16"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019356", "end": "2025-12-16 14:10:12.511461", "msg": "", "rc": 0, "start": "2025-12-16 14:10:12.492105", "stderr": "", "stderr_lines": [], "stdout": " 14:10:12 up 14 days, 3:36, 1 user, load average: 0.16, 0.15, 0.10", "stdout_lines": [" 14:10:12 up 14 days, 3:36, 1 user, load average: 0.16, 0.15, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004377", "end": "2025-12-16 14:10:13.041212", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.036835", "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.004067", "end": "2025-12-16 14:10:13.060594", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.056527", "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.004688", "end": "2025-12-16 14:10:13.063350", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.058662", "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.004581", "end": "2025-12-16 14:10:13.091883", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.087302", "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.005584", "end": "2025-12-16 14:10:13.100624", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.095040", "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.005107", "end": "2025-12-16 14:09:48.122591", "msg": "", "rc": 0, "start": "2025-12-16 14:09:48.117484", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005706", "end": "2025-12-16 14:09:42.006406", "msg": "", "rc": 0, "start": "2025-12-16 14:09:42.000700", "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.010677", "end": "2025-12-16 14:10:13.776951", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.766274", "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.011366", "end": "2025-12-16 14:10:13.830681", "msg": "", "rc": 0, "start": "2025-12-16 14:10:13.819315", "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.005848", "end": "2025-12-16 14:10:14.030302", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.024454", "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.005548", "end": "2025-12-16 14:09:45.181027", "msg": "", "rc": 0, "start": "2025-12-16 14:09:45.175479", "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.005448", "end": "2025-12-16 14:09:51.470106", "msg": "", "rc": 0, "start": "2025-12-16 14:09:51.464658", "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.005472", "end": "2025-12-16 11:10:14.307030", "msg": "", "rc": 0, "start": "2025-12-16 11:10:14.301558", "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.005448", "end": "2025-12-16 14:10:14.462460", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.457012", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021437", "end": "2025-12-16 14:10:14.913508", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.892071", "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.025303", "end": "2025-12-16 14:10:14.432367", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.407064", "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.004397", "end": "2025-12-16 14:10:14.963320", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.958923", "stderr": "", "stderr_lines": [], "stdout": "86.2%", "stdout_lines": ["86.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.004110", "end": "2025-12-16 14:10:14.987017", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.982907", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004672", "end": "2025-12-16 14:10:14.986666", "msg": "", "rc": 0, "start": "2025-12-16 14:10:14.981994", "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.005137", "end": "2025-12-16 14:10:15.015001", "msg": "", "rc": 0, "start": "2025-12-16 14:10:15.009864", "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.005700", "end": "2025-12-16 14:10:15.021843", "msg": "", "rc": 0, "start": "2025-12-16 14:10:15.016143", "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.004125", "end": "2025-12-16 14:09:50.068969", "msg": "", "rc": 0, "start": "2025-12-16 14:09:50.064844", "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.004378", "end": "2025-12-16 14:09:43.924202", "msg": "", "rc": 0, "start": "2025-12-16 14:09:43.919824", "stderr": "", "stderr_lines": [], "stdout": "69.9%", "stdout_lines": ["69.9%"]}
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.010953", "end": "2025-12-16 14:10:15.669583", "msg": "", "rc": 0, "start": "2025-12-16 14:10:15.658630", "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.012294", "end": "2025-12-16 14:10:15.709268", "msg": "", "rc": 0, "start": "2025-12-16 14:10:15.696974", "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.005723", "end": "2025-12-16 14:10:15.963596", "msg": "", "rc": 0, "start": "2025-12-16 14:10:15.957873", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004776", "end": "2025-12-16 14:09:47.094280", "msg": "", "rc": 0, "start": "2025-12-16 14:09:47.089504", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.003596", "end": "2025-12-16 14:09:53.353858", "msg": "", "rc": 0, "start": "2025-12-16 14:09:53.350262", "stderr": "", "stderr_lines": [], "stdout": "57.2%", "stdout_lines": ["57.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.005298", "end": "2025-12-16 11:10:16.175743", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:10:16.170445", "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.005475", "end": "2025-12-16 14:10:16.395030", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.389555", "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.009816", "end": "2025-12-16 14:10:16.896902", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.887086", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025878", "end": "2025-12-16 14:10:16.356038", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.330160", "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.005038", "end": "2025-12-16 14:10:16.879715", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.874677", "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.005021", "end": "2025-12-16 14:10:16.908756", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.903735", "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.005840", "end": "2025-12-16 14:10:16.923945", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.918105", "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.006193", "end": "2025-12-16 14:10:16.951989", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.945796", "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.003256", "end": "2025-12-16 14:10:16.955306", "msg": "", "rc": 0, "start": "2025-12-16 14:10:16.952050", "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.002554", "end": "2025-12-16 14:09:51.970407", "msg": "", "rc": 0, "start": "2025-12-16 14:09:51.967853", "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.003393", "end": "2025-12-16 14:09:45.867500", "msg": "", "rc": 0, "start": "2025-12-16 14:09:45.864107", "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.012206", "end": "2025-12-16 14:10:17.594024", "msg": "", "rc": 0, "start": "2025-12-16 14:10:17.581818", "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.012928", "end": "2025-12-16 14:10:17.632058", "msg": "", "rc": 0, "start": "2025-12-16 14:10:17.619130", "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.003212", "end": "2025-12-16 14:10:17.866532", "msg": "", "rc": 0, "start": "2025-12-16 14:10:17.863320", "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.002875", "end": "2025-12-16 14:09:49.041835", "msg": "", "rc": 0, "start": "2025-12-16 14:09:49.038960", "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.004102", "end": "2025-12-16 11:10:18.094552", "msg": "", "rc": 0, "start": "2025-12-16 11:10:18.090450", "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.002632", "end": "2025-12-16 14:09:55.288695", "msg": "", "rc": 0, "start": "2025-12-16 14:09:55.286063", "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.003797", "end": "2025-12-16 14:10:18.296936", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.293139", "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.004281", "end": "2025-12-16 14:10:18.925854", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.921573", "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.028897", "end": "2025-12-16 14:10:18.271286", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.242389", "stderr": "", "stderr_lines": [], "stdout": "36.8°C", "stdout_lines": ["36.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.004265", "end": "2025-12-16 14:10:18.786053", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.781788", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.004738", "end": "2025-12-16 14:10:18.817746", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.813008", "stderr": "", "stderr_lines": [], "stdout": "1.04", "stdout_lines": ["1.04"]}
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.003985", "end": "2025-12-16 14:10:18.823932", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.819947", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005214", "end": "2025-12-16 14:10:18.847934", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.842720", "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.005593", "end": "2025-12-16 14:10:18.860503", "msg": "", "rc": 0, "start": "2025-12-16 14:10:18.854910", "stderr": "", "stderr_lines": [], "stdout": "1.13", "stdout_lines": ["1.13"]}
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.004440", "end": "2025-12-16 14:09:53.902062", "msg": "", "rc": 0, "start": "2025-12-16 14:09:53.897622", "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.005168", "end": "2025-12-16 14:09:47.745752", "msg": "", "rc": 0, "start": "2025-12-16 14:09:47.740584", "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.010268", "end": "2025-12-16 14:10:19.576726", "msg": "", "rc": 0, "start": "2025-12-16 14:10:19.566458", "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.011221", "end": "2025-12-16 14:10:19.637284", "msg": "", "rc": 0, "start": "2025-12-16 14:10:19.626063", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005718", "end": "2025-12-16 14:10:19.796277", "msg": "", "rc": 0, "start": "2025-12-16 14:10:19.790559", "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.004851", "end": "2025-12-16 14:09:50.908323", "msg": "", "rc": 0, "start": "2025-12-16 14:09:50.903472", "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.006033", "end": "2025-12-16 11:10:20.088898", "msg": "", "rc": 0, "start": "2025-12-16 11:10:20.082865", "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.004554", "end": "2025-12-16 14:09:57.295403", "msg": "", "rc": 0, "start": "2025-12-16 14:09:57.290849", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.005276", "end": "2025-12-16 14:10:20.234787", "msg": "", "rc": 0, "start": "2025-12-16 14:10:20.229511", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.008484", "end": "2025-12-16 14:10:20.882728", "msg": "", "rc": 0, "start": "2025-12-16 14:10:20.874244", "stderr": "", "stderr_lines": [], "stdout": "1.33", "stdout_lines": ["1.33"]}
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.024162", "end": "2025-12-16 14:10:20.176668", "msg": "", "rc": 0, "start": "2025-12-16 14:10:20.152506", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 21 days, 1:01, 1 user, load average: 0.31, 0.20, 0.19\nDisk Usage: 23%\nMemory Usage: 86.2%\nCPU Load: 0.29\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 2 days, 3:42, 1 user, load average: 0.20, 0.21, 0.20\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.17\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 21 days, 1:21, 1 user, load average: 0.77, 0.59, 0.57\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.04\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 21 days, 2:34, 1 user, load average: 1.25, 0.91, 0.84\nDisk Usage: 14%\nMemory Usage: 59.3%\nCPU Load: 1.13\nCPU Temp: 53.0°C\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:12 up 14 days, 3:36, 1 user, load average: 0.16, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.23\nCPU Temp: 36.8°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 21 days, 3:20, 1 user, load average: 0.01, 0.03, 0.02\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 193 days, 5:43, 1 user, load average: 0.20, 0.20, 0.18\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.27\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:11 up 193 days, 5:43, 1 user, load average: 0.23, 0.14, 0.10\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.22\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:09:46 up 10 days, 1:59, 0 user, load average: 0.25, 0.21, 0.18\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:09:40 up 16 days, 22:11, 0 user, load average: 0.07, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:12 up 2 days, 3:41, 1 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:09:43 up 19 days, 17:04, 0 user, load average: 0.37, 0.48, 0.51\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:09:49 up 16 days, 3:25, 0 user, load average: 0.36, 0.48, 0.38\nDisk Usage: 75%\nMemory Usage: 57.2%\nCPU Load: 0.41\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:10AM up 21 days, 59 mins, 1 user, load averages: 0.09, 0.17, 0.17\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: 14:10:12 up 2 days, 3:41, 1 user, load average: 0.16, 0.06, 0.07\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:10:12 up 15:36, 1 user, load average: 1.30, 1.18, 1.16\nDisk Usage: 1%\nMemory Usage: 20.4%\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-16T19:10:21.803589+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `52a4306311f74de79c0c70762b9c198b` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:15:00.001964+00:00 |
| **Fin** | 2025-12-16T19:15:22.118693+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: [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.003044", "end": "2025-12-16 14:15:11.887999", "msg": "", "rc": 0, "start": "2025-12-16 14:15:11.884955", "stderr": "", "stderr_lines": [], "stdout": " 14:15:11 up 21 days, 1:06, 1 user, load average: 0.09, 0.13, 0.16", "stdout_lines": [" 14:15:11 up 21 days, 1:06, 1 user, load average: 0.09, 0.13, 0.16"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003801", "end": "2025-12-16 14:15:11.900139", "msg": "", "rc": 0, "start": "2025-12-16 14:15:11.896338", "stderr": "", "stderr_lines": [], "stdout": " 14:15:11 up 21 days, 3:25, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 14:15:11 up 21 days, 3:25, 1 user, load average: 0.04, 0.03, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002816", "end": "2025-12-16 14:15:11.926522", "msg": "", "rc": 0, "start": "2025-12-16 14:15:11.923706", "stderr": "", "stderr_lines": [], "stdout": " 14:15:11 up 2 days, 3:47, 1 user, load average: 1.04, 0.44, 0.27", "stdout_lines": [" 14:15:11 up 2 days, 3:47, 1 user, load average: 1.04, 0.44, 0.27"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004197", "end": "2025-12-16 14:15:11.928858", "msg": "", "rc": 0, "start": "2025-12-16 14:15:11.924661", "stderr": "", "stderr_lines": [], "stdout": " 14:15:11 up 21 days, 2:39, 1 user, load average: 1.01, 0.85, 0.83", "stdout_lines": [" 14:15:11 up 21 days, 2:39, 1 user, load average: 1.01, 0.85, 0.83"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003069", "end": "2025-12-16 14:14:46.953055", "msg": "", "rc": 0, "start": "2025-12-16 14:14:46.949986", "stderr": "", "stderr_lines": [], "stdout": " 14:14:46 up 10 days, 2:04, 0 user, load average: 0.68, 0.27, 0.20", "stdout_lines": [" 14:14:46 up 10 days, 2:04, 0 user, load average: 0.68, 0.27, 0.20"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008790", "end": "2025-12-16 14:15:12.576757", "msg": "", "rc": 0, "start": "2025-12-16 14:15:12.567967", "stderr": "", "stderr_lines": [], "stdout": " 14:15:12 up 193 days, 5:48, 1 user, load average: 0.09, 0.10, 0.09", "stdout_lines": [" 14:15:12 up 193 days, 5:48, 1 user, load average: 0.09, 0.10, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009286", "end": "2025-12-16 14:15:12.598434", "msg": "", "rc": 0, "start": "2025-12-16 14:15:12.589148", "stderr": "", "stderr_lines": [], "stdout": " 14:15:12 up 193 days, 5:48, 1 user, load average: 0.13, 0.17, 0.17", "stdout_lines": [" 14:15:12 up 193 days, 5:48, 1 user, load average: 0.13, 0.17, 0.17"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004474", "end": "2025-12-16 14:15:12.893382", "msg": "", "rc": 0, "start": "2025-12-16 14:15:11.888908", "stderr": "", "stderr_lines": [], "stdout": " 14:15:11 up 21 days, 1:26, 1 user, load average: 0.57, 0.67, 0.62", "stdout_lines": [" 14:15:11 up 21 days, 1:26, 1 user, load average: 0.57, 0.67, 0.62"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003428", "end": "2025-12-16 14:14:41.277762", "msg": "", "rc": 0, "start": "2025-12-16 14:14:41.274334", "stderr": "", "stderr_lines": [], "stdout": " 14:14:41 up 16 days, 22:16, 0 user, load average: 0.06, 0.02, 0.00", "stdout_lines": [" 14:14:41 up 16 days, 22:16, 0 user, load average: 0.06, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004660", "end": "2025-12-16 14:15:13.084511", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.079851", "stderr": "", "stderr_lines": [], "stdout": " 14:15:13 up 2 days, 3:46, 1 user, load average: 0.04, 0.07, 0.02", "stdout_lines": [" 14:15:13 up 2 days, 3:46, 1 user, load average: 0.04, 0.07, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003490", "end": "2025-12-16 14:14:44.187955", "msg": "", "rc": 0, "start": "2025-12-16 14:14:44.184465", "stderr": "", "stderr_lines": [], "stdout": " 14:14:44 up 19 days, 17:09, 0 user, load average: 0.69, 0.65, 0.57", "stdout_lines": [" 14:14:44 up 19 days, 17:09, 0 user, load average: 0.69, 0.65, 0.57"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004235", "end": "2025-12-16 11:15:13.348175", "msg": "", "rc": 0, "start": "2025-12-16 11:15:13.343940", "stderr": "", "stderr_lines": [], "stdout": "11:15AM up 21 days, 1:05, 1 user, load averages: 0.19, 0.18, 0.16", "stdout_lines": ["11:15AM up 21 days, 1:05, 1 user, load averages: 0.19, 0.18, 0.16"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003361", "end": "2025-12-16 14:14:50.555530", "msg": "", "rc": 0, "start": "2025-12-16 14:14:50.552169", "stderr": "", "stderr_lines": [], "stdout": " 14:14:50 up 16 days, 3:30, 0 user, load average: 0.24, 0.37, 0.35", "stdout_lines": [" 14:14:50 up 16 days, 3:30, 0 user, load average: 0.24, 0.37, 0.35"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019731", "end": "2025-12-16 14:15:13.264767", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.245036", "stderr": "", "stderr_lines": [], "stdout": " 14:15:13 up 14 days, 3:41, 1 user, load average: 0.30, 0.20, 0.12", "stdout_lines": [" 14:15:13 up 14 days, 3:41, 1 user, load average: 0.30, 0.20, 0.12"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003651", "end": "2025-12-16 14:15:13.502098", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.498447", "stderr": "", "stderr_lines": [], "stdout": " 14:15:13 up 2 days, 3:46, 1 user, load average: 0.08, 0.05, 0.06", "stdout_lines": [" 14:15:13 up 2 days, 3:46, 1 user, load average: 0.08, 0.05, 0.06"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007376", "end": "2025-12-16 14:15:14.282210", "msg": "", "rc": 0, "start": "2025-12-16 14:15:14.274834", "stderr": "", "stderr_lines": [], "stdout": " 14:15:14 up 15:41, 1 user, load average: 1.21, 1.15, 1.15", "stdout_lines": [" 14:15:14 up 15:41, 1 user, load average: 1.21, 1.15, 1.15"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004428", "end": "2025-12-16 14:15:13.924815", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.920387", "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.004233", "end": "2025-12-16 14:15:13.938571", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.934338", "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.004848", "end": "2025-12-16 14:15:13.951996", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.947148", "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.004927", "end": "2025-12-16 14:15:13.982300", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.977373", "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.005321", "end": "2025-12-16 14:15:13.977184", "msg": "", "rc": 0, "start": "2025-12-16 14:15:13.971863", "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.004757", "end": "2025-12-16 14:14:49.018139", "msg": "", "rc": 0, "start": "2025-12-16 14:14:49.013382", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005336", "end": "2025-12-16 14:14:42.882895", "msg": "", "rc": 0, "start": "2025-12-16 14:14:42.877559", "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.010643", "end": "2025-12-16 14:15:14.674485", "msg": "", "rc": 0, "start": "2025-12-16 14:15:14.663842", "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.011704", "end": "2025-12-16 14:15:14.708636", "msg": "", "rc": 0, "start": "2025-12-16 14:15:14.696932", "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.005699", "end": "2025-12-16 14:15:14.922607", "msg": "", "rc": 0, "start": "2025-12-16 14:15:14.916908", "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.005081", "end": "2025-12-16 14:14:46.059330", "msg": "", "rc": 0, "start": "2025-12-16 14:14:46.054249", "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.005970", "end": "2025-12-16 11:15:15.176531", "msg": "", "rc": 0, "start": "2025-12-16 11:15:15.170561", "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.005007", "end": "2025-12-16 14:14:52.385677", "msg": "", "rc": 0, "start": "2025-12-16 14:14:52.380670", "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.005469", "end": "2025-12-16 14:15:15.351250", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.345781", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019405", "end": "2025-12-16 14:15:16.207902", "msg": "", "rc": 0, "start": "2025-12-16 14:15:16.188497", "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.025266", "end": "2025-12-16 14:15:15.321606", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.296340", "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.004344", "end": "2025-12-16 14:15:15.848629", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.844285", "stderr": "", "stderr_lines": [], "stdout": "86.0%", "stdout_lines": ["86.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.004127", "end": "2025-12-16 14:15:15.866737", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.862610", "stderr": "", "stderr_lines": [], "stdout": "21.9%", "stdout_lines": ["21.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.005174", "end": "2025-12-16 14:15:15.880450", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.875276", "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.005370", "end": "2025-12-16 14:15:15.898230", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.892860", "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.005471", "end": "2025-12-16 14:15:15.910321", "msg": "", "rc": 0, "start": "2025-12-16 14:15:15.904850", "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.004069", "end": "2025-12-16 14:14:50.932273", "msg": "", "rc": 0, "start": "2025-12-16 14:14:50.928204", "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.004719", "end": "2025-12-16 14:14:44.816840", "msg": "", "rc": 0, "start": "2025-12-16 14:14:44.812121", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.011068", "end": "2025-12-16 14:15:16.539116", "msg": "", "rc": 0, "start": "2025-12-16 14:15:16.528048", "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.011902", "end": "2025-12-16 14:15:16.574795", "msg": "", "rc": 0, "start": "2025-12-16 14:15:16.562893", "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.005910", "end": "2025-12-16 14:15:16.837368", "msg": "", "rc": 0, "start": "2025-12-16 14:15:16.831458", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004362", "end": "2025-12-16 14:14:47.989100", "msg": "", "rc": 0, "start": "2025-12-16 14:14:47.984738", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.004191", "end": "2025-12-16 14:14:54.208623", "msg": "", "rc": 0, "start": "2025-12-16 14:14:54.204432", "stderr": "", "stderr_lines": [], "stdout": "58.2%", "stdout_lines": ["58.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.006350", "end": "2025-12-16 11:15:17.036303", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:15:17.029953", "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.005306", "end": "2025-12-16 14:15:17.261503", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.256197", "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.010221", "end": "2025-12-16 14:15:18.215002", "msg": "", "rc": 0, "start": "2025-12-16 14:15:18.204781", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025505", "end": "2025-12-16 14:15:17.250103", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.224598", "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.005258", "end": "2025-12-16 14:15:17.784917", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.779659", "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.005027", "end": "2025-12-16 14:15:17.806001", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.800974", "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.006088", "end": "2025-12-16 14:15:17.810041", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.803953", "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.002694", "end": "2025-12-16 14:15:17.835704", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.833010", "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.006310", "end": "2025-12-16 14:15:17.853220", "msg": "", "rc": 0, "start": "2025-12-16 14:15:17.846910", "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.002846", "end": "2025-12-16 14:14:52.858639", "msg": "", "rc": 0, "start": "2025-12-16 14:14:52.855793", "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.002909", "end": "2025-12-16 14:14:46.744358", "msg": "", "rc": 0, "start": "2025-12-16 14:14:46.741449", "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.011984", "end": "2025-12-16 14:15:18.483999", "msg": "", "rc": 0, "start": "2025-12-16 14:15:18.472015", "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.012937", "end": "2025-12-16 14:15:18.524133", "msg": "", "rc": 0, "start": "2025-12-16 14:15:18.511196", "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.003424", "end": "2025-12-16 14:15:18.740287", "msg": "", "rc": 0, "start": "2025-12-16 14:15:18.736863", "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.003005", "end": "2025-12-16 14:14:49.923530", "msg": "", "rc": 0, "start": "2025-12-16 14:14:49.920525", "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-16 14:14:56.166315", "msg": "", "rc": 0, "start": "2025-12-16 14:14:56.163636", "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.003887", "end": "2025-12-16 11:15:18.992849", "msg": "", "rc": 0, "start": "2025-12-16 11:15:18.988962", "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.003016", "end": "2025-12-16 14:15:19.164988", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.161972", "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.004265", "end": "2025-12-16 14:15:20.224014", "msg": "", "rc": 0, "start": "2025-12-16 14:15:20.219749", "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.028191", "end": "2025-12-16 14:15:19.190772", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.162581", "stderr": "", "stderr_lines": [], "stdout": "36.7°C", "stdout_lines": ["36.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.004383", "end": "2025-12-16 14:15:19.713604", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.709221", "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.003995", "end": "2025-12-16 14:15:19.736077", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.732082", "stderr": "", "stderr_lines": [], "stdout": "0.88", "stdout_lines": ["0.88"]}
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.004770", "end": "2025-12-16 14:15:19.740928", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.736158", "stderr": "", "stderr_lines": [], "stdout": "0.71", "stdout_lines": ["0.71"]}
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.005057", "end": "2025-12-16 14:15:19.770698", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.765641", "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.005915", "end": "2025-12-16 14:15:19.788418", "msg": "", "rc": 0, "start": "2025-12-16 14:15:19.782503", "stderr": "", "stderr_lines": [], "stdout": "1.01", "stdout_lines": ["1.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.004553", "end": "2025-12-16 14:14:54.807745", "msg": "", "rc": 0, "start": "2025-12-16 14:14:54.803192", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
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-16 14:14:48.693749", "msg": "", "rc": 0, "start": "2025-12-16 14:14:48.688690", "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.010090", "end": "2025-12-16 14:15:20.481555", "msg": "", "rc": 0, "start": "2025-12-16 14:15:20.471465", "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.011151", "end": "2025-12-16 14:15:20.549793", "msg": "", "rc": 0, "start": "2025-12-16 14:15:20.538642", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005607", "end": "2025-12-16 14:15:20.716428", "msg": "", "rc": 0, "start": "2025-12-16 14:15:20.710821", "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.005041", "end": "2025-12-16 14:14:51.887233", "msg": "", "rc": 0, "start": "2025-12-16 14:14:51.882192", "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.004151", "end": "2025-12-16 14:14:58.165239", "msg": "", "rc": 0, "start": "2025-12-16 14:14:58.161088", "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.006058", "end": "2025-12-16 11:15:21.010899", "msg": "", "rc": 0, "start": "2025-12-16 11:15:21.004841", "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.005277", "end": "2025-12-16 14:15:21.147409", "msg": "", "rc": 0, "start": "2025-12-16 14:15:21.142132", "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.008807", "end": "2025-12-16 14:15:22.258248", "msg": "", "rc": 0, "start": "2025-12-16 14:15:22.249441", "stderr": "", "stderr_lines": [], "stdout": "1.58", "stdout_lines": ["1.58"]}
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.024023", "end": "2025-12-16 14:15:21.104556", "msg": "", "rc": 0, "start": "2025-12-16 14:15:21.080533", "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: 14:15:11 up 2 days, 3:47, 1 user, load average: 1.04, 0.44, 0.27\nDisk Usage: 22%\nMemory Usage: 21.9%\nCPU Load: 0.88\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:11 up 21 days, 1:06, 1 user, load average: 0.09, 0.13, 0.16\nDisk Usage: 23%\nMemory Usage: 86.0%\nCPU Load: 0.24\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:11 up 21 days, 1:26, 1 user, load average: 0.57, 0.67, 0.62\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.71\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:11 up 21 days, 2:39, 1 user, load average: 1.01, 0.85, 0.83\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 1.01\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:11 up 21 days, 3:25, 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: 14:15:13 up 14 days, 3:41, 1 user, load average: 0.30, 0.20, 0.12\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.33\nCPU Temp: 36.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:12 up 193 days, 5:48, 1 user, load average: 0.13, 0.17, 0.17\nDisk Usage: 6%\nMemory Usage: 12.6%\nCPU Load: 0.20\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:12 up 193 days, 5:48, 1 user, load average: 0.09, 0.10, 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: 14:14:46 up 10 days, 2:04, 0 user, load average: 0.68, 0.27, 0.20\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.63\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:14:41 up 16 days, 22:16, 0 user, load average: 0.06, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 70.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:13 up 2 days, 3:46, 1 user, load average: 0.04, 0.07, 0.02\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:14:44 up 19 days, 17:09, 0 user, load average: 0.69, 0.65, 0.57\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.63\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:14:50 up 16 days, 3:30, 0 user, load average: 0.24, 0.37, 0.35\nDisk Usage: 75%\nMemory Usage: 58.2%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:15AM up 21 days, 1:05, 1 user, load averages: 0.19, 0.18, 0.16\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: 14:15:13 up 2 days, 3:46, 1 user, load average: 0.08, 0.05, 0.06\nDisk Usage: 79%\nMemory Usage: 13.4%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:15:14 up 15:41, 1 user, load average: 1.21, 1.15, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T19:15:22.159292+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6a2d49e5e8414e3e9cb1743d2cbdf2b9` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:20:00.001879+00:00 |
| **Fin** | 2025-12-16T19:20:22.160778+00:00 |
| **Durée** | 22.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: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.003395", "end": "2025-12-16 14:20:11.696180", "msg": "", "rc": 0, "start": "2025-12-16 14:20:11.692785", "stderr": "", "stderr_lines": [], "stdout": " 14:20:11 up 21 days, 1:11, 1 user, load average: 0.18, 0.17, 0.17", "stdout_lines": [" 14:20:11 up 21 days, 1:11, 1 user, load average: 0.18, 0.17, 0.17"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003252", "end": "2025-12-16 14:20:11.704045", "msg": "", "rc": 0, "start": "2025-12-16 14:20:11.700793", "stderr": "", "stderr_lines": [], "stdout": " 14:20:11 up 21 days, 1:31, 1 user, load average: 1.18, 0.75, 0.66", "stdout_lines": [" 14:20:11 up 21 days, 1:31, 1 user, load average: 1.18, 0.75, 0.66"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003969", "end": "2025-12-16 14:20:11.718460", "msg": "", "rc": 0, "start": "2025-12-16 14:20:11.714491", "stderr": "", "stderr_lines": [], "stdout": " 14:20:11 up 21 days, 3:30, 1 user, load average: 0.03, 0.05, 0.01", "stdout_lines": [" 14:20:11 up 21 days, 3:30, 1 user, load average: 0.03, 0.05, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002914", "end": "2025-12-16 14:20:11.736874", "msg": "", "rc": 0, "start": "2025-12-16 14:20:11.733960", "stderr": "", "stderr_lines": [], "stdout": " 14:20:11 up 2 days, 3:52, 1 user, load average: 0.40, 0.37, 0.28", "stdout_lines": [" 14:20:11 up 2 days, 3:52, 1 user, load average: 0.40, 0.37, 0.28"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004055", "end": "2025-12-16 14:20:11.749677", "msg": "", "rc": 0, "start": "2025-12-16 14:20:11.745622", "stderr": "", "stderr_lines": [], "stdout": " 14:20:11 up 21 days, 2:44, 1 user, load average: 0.95, 0.90, 0.85", "stdout_lines": [" 14:20:11 up 21 days, 2:44, 1 user, load average: 0.95, 0.90, 0.85"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002847", "end": "2025-12-16 14:19:46.754189", "msg": "", "rc": 0, "start": "2025-12-16 14:19:46.751342", "stderr": "", "stderr_lines": [], "stdout": " 14:19:46 up 10 days, 2:09, 0 user, load average: 0.15, 0.24, 0.21", "stdout_lines": [" 14:19:46 up 10 days, 2:09, 0 user, load average: 0.15, 0.24, 0.21"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005813", "end": "2025-12-16 14:19:40.658702", "msg": "", "rc": 0, "start": "2025-12-16 14:19:40.652889", "stderr": "", "stderr_lines": [], "stdout": " 14:19:40 up 16 days, 22:21, 0 user, load average: 0.20, 0.07, 0.02", "stdout_lines": [" 14:19:40 up 16 days, 22:21, 0 user, load average: 0.20, 0.07, 0.02"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008560", "end": "2025-12-16 14:20:12.385580", "msg": "", "rc": 0, "start": "2025-12-16 14:20:12.377020", "stderr": "", "stderr_lines": [], "stdout": " 14:20:12 up 193 days, 5:53, 1 user, load average: 0.03, 0.08, 0.08", "stdout_lines": [" 14:20:12 up 193 days, 5:53, 1 user, load average: 0.03, 0.08, 0.08"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009353", "end": "2025-12-16 14:20:12.418201", "msg": "", "rc": 0, "start": "2025-12-16 14:20:12.408848", "stderr": "", "stderr_lines": [], "stdout": " 14:20:12 up 193 days, 5:53, 1 user, load average: 0.10, 0.17, 0.17", "stdout_lines": [" 14:20:12 up 193 days, 5:53, 1 user, load average: 0.10, 0.17, 0.17"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004789", "end": "2025-12-16 14:20:12.659381", "msg": "", "rc": 0, "start": "2025-12-16 14:20:12.654592", "stderr": "", "stderr_lines": [], "stdout": " 14:20:12 up 2 days, 3:51, 1 user, load average: 0.01, 0.04, 0.01", "stdout_lines": [" 14:20:12 up 2 days, 3:51, 1 user, load average: 0.01, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003412", "end": "2025-12-16 14:19:43.857006", "msg": "", "rc": 0, "start": "2025-12-16 14:19:43.853594", "stderr": "", "stderr_lines": [], "stdout": " 14:19:43 up 19 days, 17:14, 0 user, load average: 1.00, 0.92, 0.69", "stdout_lines": [" 14:19:43 up 19 days, 17:14, 0 user, load average: 1.00, 0.92, 0.69"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004454", "end": "2025-12-16 11:20:12.884973", "msg": "", "rc": 0, "start": "2025-12-16 11:20:12.880519", "stderr": "", "stderr_lines": [], "stdout": "11:20AM up 21 days, 1:10, 1 user, load averages: 0.21, 0.23, 0.18", "stdout_lines": ["11:20AM up 21 days, 1:10, 1 user, load averages: 0.21, 0.23, 0.18"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005087", "end": "2025-12-16 14:19:50.068238", "msg": "", "rc": 0, "start": "2025-12-16 14:19:50.063151", "stderr": "", "stderr_lines": [], "stdout": " 14:19:50 up 16 days, 3:35, 0 user, load average: 0.27, 0.30, 0.32", "stdout_lines": [" 14:19:50 up 16 days, 3:35, 0 user, load average: 0.27, 0.30, 0.32"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003813", "end": "2025-12-16 14:20:13.097477", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.093664", "stderr": "", "stderr_lines": [], "stdout": " 14:20:13 up 2 days, 3:51, 1 user, load average: 0.08, 0.03, 0.04", "stdout_lines": [" 14:20:13 up 2 days, 3:51, 1 user, load average: 0.08, 0.03, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007595", "end": "2025-12-16 14:20:13.273689", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.266094", "stderr": "", "stderr_lines": [], "stdout": " 14:20:13 up 15:46, 1 user, load average: 1.32, 1.17, 1.16", "stdout_lines": [" 14:20:13 up 15:46, 1 user, load average: 1.32, 1.17, 1.16"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019556", "end": "2025-12-16 14:20:13.086306", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.066750", "stderr": "", "stderr_lines": [], "stdout": " 14:20:13 up 14 days, 3:46, 1 user, load average: 0.24, 0.17, 0.12", "stdout_lines": [" 14:20:13 up 14 days, 3:46, 1 user, load average: 0.24, 0.17, 0.12"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004331", "end": "2025-12-16 14:20:13.598439", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.594108", "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.004041", "end": "2025-12-16 14:20:13.623121", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.619080", "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.004788", "end": "2025-12-16 14:20:13.638126", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.633338", "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.004991", "end": "2025-12-16 14:20:13.656566", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.651575", "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.005781", "end": "2025-12-16 14:20:13.677782", "msg": "", "rc": 0, "start": "2025-12-16 14:20:13.672001", "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.005113", "end": "2025-12-16 14:19:48.667042", "msg": "", "rc": 0, "start": "2025-12-16 14:19:48.661929", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005480", "end": "2025-12-16 14:19:42.579948", "msg": "", "rc": 0, "start": "2025-12-16 14:19:42.574468", "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.010616", "end": "2025-12-16 14:20:14.345411", "msg": "", "rc": 0, "start": "2025-12-16 14:20:14.334795", "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.011743", "end": "2025-12-16 14:20:14.373419", "msg": "", "rc": 0, "start": "2025-12-16 14:20:14.361676", "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.005735", "end": "2025-12-16 14:20:14.550807", "msg": "", "rc": 0, "start": "2025-12-16 14:20:14.545072", "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-16 14:19:45.747121", "msg": "", "rc": 0, "start": "2025-12-16 14:19:45.741922", "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.005668", "end": "2025-12-16 11:20:14.835791", "msg": "", "rc": 0, "start": "2025-12-16 11:20:14.830123", "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.004778", "end": "2025-12-16 14:19:52.027553", "msg": "", "rc": 0, "start": "2025-12-16 14:19:52.022775", "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.005323", "end": "2025-12-16 14:20:14.968718", "msg": "", "rc": 0, "start": "2025-12-16 14:20:14.963395", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020415", "end": "2025-12-16 14:20:15.238492", "msg": "", "rc": 0, "start": "2025-12-16 14:20:15.218077", "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.024984", "end": "2025-12-16 14:20:14.983606", "msg": "", "rc": 0, "start": "2025-12-16 14:20:14.958622", "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.004370", "end": "2025-12-16 14:20:15.495837", "msg": "", "rc": 0, "start": "2025-12-16 14:20:15.491467", "stderr": "", "stderr_lines": [], "stdout": "86.0%", "stdout_lines": ["86.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.004315", "end": "2025-12-16 14:20:15.511719", "msg": "", "rc": 0, "start": "2025-12-16 14:20:15.507404", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005102", "end": "2025-12-16 14:20:15.540406", "msg": "", "rc": 0, "start": "2025-12-16 14:20:15.535304", "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.005028", "end": "2025-12-16 14:20:15.558433", "msg": "", "rc": 0, "start": "2025-12-16 14:20:15.553405", "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.005691", "end": "2025-12-16 14:20:15.575330", "msg": "", "rc": 0, "start": "2025-12-16 14:20:15.569639", "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.003927", "end": "2025-12-16 14:19:50.589470", "msg": "", "rc": 0, "start": "2025-12-16 14:19:50.585543", "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.004531", "end": "2025-12-16 14:19:44.459664", "msg": "", "rc": 0, "start": "2025-12-16 14:19:44.455133", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.010952", "end": "2025-12-16 14:20:16.204225", "msg": "", "rc": 0, "start": "2025-12-16 14:20:16.193273", "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.012895", "end": "2025-12-16 14:20:16.214495", "msg": "", "rc": 0, "start": "2025-12-16 14:20:16.201600", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005830", "end": "2025-12-16 14:20:16.503235", "msg": "", "rc": 0, "start": "2025-12-16 14:20:16.497405", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004157", "end": "2025-12-16 14:19:47.634799", "msg": "", "rc": 0, "start": "2025-12-16 14:19:47.630642", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005662", "end": "2025-12-16 11:20:16.685927", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:20:16.680265", "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.005416", "end": "2025-12-16 14:19:53.886603", "msg": "", "rc": 0, "start": "2025-12-16 14:19:53.881187", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.005530", "end": "2025-12-16 14:20:16.928439", "msg": "", "rc": 0, "start": "2025-12-16 14:20:16.922909", "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.008374", "end": "2025-12-16 14:20:17.171411", "msg": "", "rc": 0, "start": "2025-12-16 14:20:17.163037", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.026048", "end": "2025-12-16 14:20:16.896570", "msg": "", "rc": 0, "start": "2025-12-16 14:20:16.870522", "stderr": "", "stderr_lines": [], "stdout": "19.5%", "stdout_lines": ["19.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.004942", "end": "2025-12-16 14:20:17.420156", "msg": "", "rc": 0, "start": "2025-12-16 14:20:17.415214", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005124", "end": "2025-12-16 14:20:17.422516", "msg": "", "rc": 0, "start": "2025-12-16 14:20:17.417392", "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.005568", "end": "2025-12-16 14:20:17.455091", "msg": "", "rc": 0, "start": "2025-12-16 14:20:17.449523", "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.003258", "end": "2025-12-16 14:20:17.462512", "msg": "", "rc": 0, "start": "2025-12-16 14:20:17.459254", "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.006432", "end": "2025-12-16 14:20:17.480316", "msg": "", "rc": 0, "start": "2025-12-16 14:20:17.473884", "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.003409", "end": "2025-12-16 14:19:52.481370", "msg": "", "rc": 0, "start": "2025-12-16 14:19:52.477961", "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.002695", "end": "2025-12-16 14:19:46.372671", "msg": "", "rc": 0, "start": "2025-12-16 14:19:46.369976", "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.011905", "end": "2025-12-16 14:20:18.130680", "msg": "", "rc": 0, "start": "2025-12-16 14:20:18.118775", "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.013089", "end": "2025-12-16 14:20:18.154290", "msg": "", "rc": 0, "start": "2025-12-16 14:20:18.141201", "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.003435", "end": "2025-12-16 14:20:18.403050", "msg": "", "rc": 0, "start": "2025-12-16 14:20:18.399615", "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.002752", "end": "2025-12-16 14:19:49.554300", "msg": "", "rc": 0, "start": "2025-12-16 14:19:49.551548", "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.004233", "end": "2025-12-16 11:20:18.622103", "msg": "", "rc": 0, "start": "2025-12-16 11:20:18.617870", "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.002826", "end": "2025-12-16 14:19:55.828313", "msg": "", "rc": 0, "start": "2025-12-16 14:19:55.825487", "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.003042", "end": "2025-12-16 14:20:18.825868", "msg": "", "rc": 0, "start": "2025-12-16 14:20:18.822826", "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.028903", "end": "2025-12-16 14:20:18.816923", "msg": "", "rc": 0, "start": "2025-12-16 14:20:18.788020", "stderr": "", "stderr_lines": [], "stdout": "36.7°C", "stdout_lines": ["36.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.004628", "end": "2025-12-16 14:20:19.248277", "msg": "", "rc": 0, "start": "2025-12-16 14:20:19.243649", "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-16 14:20:19.382534", "msg": "", "rc": 0, "start": "2025-12-16 14:20:19.378349", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.004016", "end": "2025-12-16 14:20:19.386955", "msg": "", "rc": 0, "start": "2025-12-16 14:20:19.382939", "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.005868", "end": "2025-12-16 14:20:19.398979", "msg": "", "rc": 0, "start": "2025-12-16 14:20:19.393111", "stderr": "", "stderr_lines": [], "stdout": "1.39", "stdout_lines": ["1.39"]}
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.005250", "end": "2025-12-16 14:20:19.418004", "msg": "", "rc": 0, "start": "2025-12-16 14:20:19.412754", "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.005526", "end": "2025-12-16 14:20:19.434347", "msg": "", "rc": 0, "start": "2025-12-16 14:20:19.428821", "stderr": "", "stderr_lines": [], "stdout": "0.96", "stdout_lines": ["0.96"]}
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-16 14:19:54.440604", "msg": "", "rc": 0, "start": "2025-12-16 14:19:54.436317", "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.004929", "end": "2025-12-16 14:19:48.327162", "msg": "", "rc": 0, "start": "2025-12-16 14:19:48.322233", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.010256", "end": "2025-12-16 14:20:20.179275", "msg": "", "rc": 0, "start": "2025-12-16 14:20:20.169019", "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.011240", "end": "2025-12-16 14:20:20.199970", "msg": "", "rc": 0, "start": "2025-12-16 14:20:20.188730", "stderr": "", "stderr_lines": [], "stdout": "0.09", "stdout_lines": ["0.09"]}
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.005618", "end": "2025-12-16 14:20:20.371079", "msg": "", "rc": 0, "start": "2025-12-16 14:20:20.365461", "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.005019", "end": "2025-12-16 14:19:51.512517", "msg": "", "rc": 0, "start": "2025-12-16 14:19:51.507498", "stderr": "", "stderr_lines": [], "stdout": "0.92", "stdout_lines": ["0.92"]}
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.006338", "end": "2025-12-16 11:20:20.684367", "msg": "", "rc": 0, "start": "2025-12-16 11:20:20.678029", "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.006003", "end": "2025-12-16 14:19:57.877679", "msg": "", "rc": 0, "start": "2025-12-16 14:19:57.871676", "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.005332", "end": "2025-12-16 14:20:20.813491", "msg": "", "rc": 0, "start": "2025-12-16 14:20:20.808159", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.008715", "end": "2025-12-16 14:20:21.249672", "msg": "", "rc": 0, "start": "2025-12-16 14:20:21.240957", "stderr": "", "stderr_lines": [], "stdout": "1.51", "stdout_lines": ["1.51"]}
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.024123", "end": "2025-12-16 14:20:20.779496", "msg": "", "rc": 0, "start": "2025-12-16 14:20:20.755373", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:11 up 21 days, 1:11, 1 user, load average: 0.18, 0.17, 0.17\nDisk Usage: 23%\nMemory Usage: 86.0%\nCPU Load: 0.32\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:11 up 21 days, 1:31, 1 user, load average: 1.18, 0.75, 0.66\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 1.39\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:11 up 2 days, 3:52, 1 user, load average: 0.40, 0.37, 0.28\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.42\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:11 up 21 days, 2:44, 1 user, load average: 0.95, 0.90, 0.85\nDisk Usage: 14%\nMemory Usage: 59.4%\nCPU Load: 0.96\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:11 up 21 days, 3:30, 1 user, load average: 0.03, 0.05, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:13 up 14 days, 3:46, 1 user, load average: 0.24, 0.17, 0.12\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.30\nCPU Temp: 36.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:12 up 193 days, 5:53, 1 user, load average: 0.10, 0.17, 0.17\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.09\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:12 up 193 days, 5:53, 1 user, load average: 0.03, 0.08, 0.08\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.02\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:19:46 up 10 days, 2:09, 0 user, load average: 0.15, 0.24, 0.21\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:12 up 2 days, 3:51, 1 user, load average: 0.01, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:19:40 up 16 days, 22:21, 0 user, load average: 0.20, 0.07, 0.02\nDisk Usage: 24%\nMemory Usage: 70.0%\nCPU Load: 0.26\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:19:43 up 19 days, 17:14, 0 user, load average: 1.00, 0.92, 0.69\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.92\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:19:50 up 16 days, 3:35, 0 user, load average: 0.27, 0.30, 0.32\nDisk Usage: 75%\nMemory Usage: 59.0%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:20AM up 21 days, 1:10, 1 user, load averages: 0.21, 0.23, 0.18\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: 14:20:13 up 2 days, 3:51, 1 user, load average: 0.08, 0.03, 0.04\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:20:13 up 15:46, 1 user, load average: 1.32, 1.17, 1.16\nDisk Usage: 1%\nMemory Usage: 20.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-16T19:20:22.206522+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `7eb3e7b5dc324a9eaaa605d9526c1141` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:25:00.002475+00:00 |
| **Fin** | 2025-12-16T19:25:22.518223+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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003698", "end": "2025-12-16 14:25:11.427329", "msg": "", "rc": 0, "start": "2025-12-16 14:25:11.423631", "stderr": "", "stderr_lines": [], "stdout": " 14:25:11 up 21 days, 3:35, 1 user, load average: 0.04, 0.03, 0.00", "stdout_lines": [" 14:25:11 up 21 days, 3:35, 1 user, load average: 0.04, 0.03, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003479", "end": "2025-12-16 14:25:11.422254", "msg": "", "rc": 0, "start": "2025-12-16 14:25:11.418775", "stderr": "", "stderr_lines": [], "stdout": " 14:25:11 up 21 days, 1:36, 1 user, load average: 0.79, 0.78, 0.70", "stdout_lines": [" 14:25:11 up 21 days, 1:36, 1 user, load average: 0.79, 0.78, 0.70"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002859", "end": "2025-12-16 14:25:11.455130", "msg": "", "rc": 0, "start": "2025-12-16 14:25:11.452271", "stderr": "", "stderr_lines": [], "stdout": " 14:25:11 up 2 days, 3:57, 1 user, load average: 0.04, 0.20, 0.23", "stdout_lines": [" 14:25:11 up 2 days, 3:57, 1 user, load average: 0.04, 0.20, 0.23"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004695", "end": "2025-12-16 14:25:11.448767", "msg": "", "rc": 0, "start": "2025-12-16 14:25:11.444072", "stderr": "", "stderr_lines": [], "stdout": " 14:25:11 up 21 days, 2:49, 1 user, load average: 0.68, 0.74, 0.79", "stdout_lines": [" 14:25:11 up 21 days, 2:49, 1 user, load average: 0.68, 0.74, 0.79"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002825", "end": "2025-12-16 14:24:46.485257", "msg": "", "rc": 0, "start": "2025-12-16 14:24:46.482432", "stderr": "", "stderr_lines": [], "stdout": " 14:24:46 up 10 days, 2:14, 0 user, load average: 0.10, 0.15, 0.17", "stdout_lines": [" 14:24:46 up 10 days, 2:14, 0 user, load average: 0.10, 0.15, 0.17"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008725", "end": "2025-12-16 14:25:12.131501", "msg": "", "rc": 0, "start": "2025-12-16 14:25:12.122776", "stderr": "", "stderr_lines": [], "stdout": " 14:25:12 up 193 days, 5:58, 1 user, load average: 0.10, 0.11, 0.09", "stdout_lines": [" 14:25:12 up 193 days, 5:58, 1 user, load average: 0.10, 0.11, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.010146", "end": "2025-12-16 14:25:12.147578", "msg": "", "rc": 0, "start": "2025-12-16 14:25:12.137432", "stderr": "", "stderr_lines": [], "stdout": " 14:25:12 up 193 days, 5:58, 1 user, load average: 0.10, 0.14, 0.17", "stdout_lines": [" 14:25:12 up 193 days, 5:58, 1 user, load average: 0.10, 0.14, 0.17"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004179", "end": "2025-12-16 14:25:12.415098", "msg": "", "rc": 0, "start": "2025-12-16 14:25:11.410919", "stderr": "", "stderr_lines": [], "stdout": " 14:25:11 up 21 days, 1:16, 1 user, load average: 0.17, 0.20, 0.18", "stdout_lines": [" 14:25:11 up 21 days, 1:16, 1 user, load average: 0.17, 0.20, 0.18"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004052", "end": "2025-12-16 14:24:40.817407", "msg": "", "rc": 0, "start": "2025-12-16 14:24:40.813355", "stderr": "", "stderr_lines": [], "stdout": " 14:24:40 up 16 days, 22:26, 0 user, load average: 0.14, 0.11, 0.04", "stdout_lines": [" 14:24:40 up 16 days, 22:26, 0 user, load average: 0.14, 0.11, 0.04"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004812", "end": "2025-12-16 14:25:12.641465", "msg": "", "rc": 0, "start": "2025-12-16 14:25:12.636653", "stderr": "", "stderr_lines": [], "stdout": " 14:25:12 up 2 days, 3:56, 1 user, load average: 0.12, 0.06, 0.01", "stdout_lines": [" 14:25:12 up 2 days, 3:56, 1 user, load average: 0.12, 0.06, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003363", "end": "2025-12-16 14:24:43.733703", "msg": "", "rc": 0, "start": "2025-12-16 14:24:43.730340", "stderr": "", "stderr_lines": [], "stdout": " 14:24:43 up 19 days, 17:19, 0 user, load average: 0.54, 0.58, 0.60", "stdout_lines": [" 14:24:43 up 19 days, 17:19, 0 user, load average: 0.54, 0.58, 0.60"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002915", "end": "2025-12-16 14:24:50.047025", "msg": "", "rc": 0, "start": "2025-12-16 14:24:50.044110", "stderr": "", "stderr_lines": [], "stdout": " 14:24:50 up 16 days, 3:40, 0 user, load average: 0.12, 0.23, 0.28", "stdout_lines": [" 14:24:50 up 16 days, 3:40, 0 user, load average: 0.12, 0.23, 0.28"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004154", "end": "2025-12-16 11:25:12.900655", "msg": "", "rc": 0, "start": "2025-12-16 11:25:12.896501", "stderr": "", "stderr_lines": [], "stdout": "11:25AM up 21 days, 1:15, 1 user, load averages: 0.34, 0.28, 0.21", "stdout_lines": ["11:25AM up 21 days, 1:15, 1 user, load averages: 0.34, 0.28, 0.21"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019555", "end": "2025-12-16 14:25:12.819781", "msg": "", "rc": 0, "start": "2025-12-16 14:25:12.800226", "stderr": "", "stderr_lines": [], "stdout": " 14:25:12 up 14 days, 3:51, 1 user, load average: 0.10, 0.11, 0.09", "stdout_lines": [" 14:25:12 up 14 days, 3:51, 1 user, load average: 0.10, 0.11, 0.09"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007876", "end": "2025-12-16 14:25:13.539118", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.531242", "stderr": "", "stderr_lines": [], "stdout": " 14:25:13 up 15:51, 1 user, load average: 1.24, 1.16, 1.15", "stdout_lines": [" 14:25:13 up 15:51, 1 user, load average: 1.24, 1.16, 1.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003882", "end": "2025-12-16 14:25:13.080766", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.076884", "stderr": "", "stderr_lines": [], "stdout": " 14:25:13 up 2 days, 3:56, 1 user, load average: 0.06, 0.05, 0.04", "stdout_lines": [" 14:25:13 up 2 days, 3:56, 1 user, load average: 0.06, 0.05, 0.04"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004343", "end": "2025-12-16 14:25:13.489053", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.484710", "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.004127", "end": "2025-12-16 14:25:13.502415", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.498288", "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.005076", "end": "2025-12-16 14:25:13.542326", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.537250", "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.004810", "end": "2025-12-16 14:25:13.545121", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.540311", "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.005532", "end": "2025-12-16 14:25:13.580301", "msg": "", "rc": 0, "start": "2025-12-16 14:25:13.574769", "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.005417", "end": "2025-12-16 14:24:48.579187", "msg": "", "rc": 0, "start": "2025-12-16 14:24:48.573770", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006268", "end": "2025-12-16 14:24:42.505139", "msg": "", "rc": 0, "start": "2025-12-16 14:24:42.498871", "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.011621", "end": "2025-12-16 14:25:14.249801", "msg": "", "rc": 0, "start": "2025-12-16 14:25:14.238180", "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.010678", "end": "2025-12-16 14:25:14.304213", "msg": "", "rc": 0, "start": "2025-12-16 14:25:14.293535", "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.005915", "end": "2025-12-16 14:25:14.487139", "msg": "", "rc": 0, "start": "2025-12-16 14:25:14.481224", "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.005396", "end": "2025-12-16 14:24:45.700521", "msg": "", "rc": 0, "start": "2025-12-16 14:24:45.695125", "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.005539", "end": "2025-12-16 11:25:14.762381", "msg": "", "rc": 0, "start": "2025-12-16 11:25:14.756842", "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.005682", "end": "2025-12-16 14:24:51.940447", "msg": "", "rc": 0, "start": "2025-12-16 14:24:51.934765", "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.005414", "end": "2025-12-16 14:25:14.919357", "msg": "", "rc": 0, "start": "2025-12-16 14:25:14.913943", "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.025597", "end": "2025-12-16 14:25:14.878668", "msg": "", "rc": 0, "start": "2025-12-16 14:25:14.853071", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020930", "end": "2025-12-16 14:25:15.591775", "msg": "", "rc": 0, "start": "2025-12-16 14:25:15.570845", "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.004730", "end": "2025-12-16 14:25:15.477352", "msg": "", "rc": 0, "start": "2025-12-16 14:25:15.472622", "stderr": "", "stderr_lines": [], "stdout": "86.1%", "stdout_lines": ["86.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.004302", "end": "2025-12-16 14:25:15.479863", "msg": "", "rc": 0, "start": "2025-12-16 14:25:15.475561", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005614", "end": "2025-12-16 14:25:15.541538", "msg": "", "rc": 0, "start": "2025-12-16 14:25:15.535924", "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.005416", "end": "2025-12-16 14:25:15.548332", "msg": "", "rc": 0, "start": "2025-12-16 14:25:15.542916", "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.005939", "end": "2025-12-16 14:25:15.558420", "msg": "", "rc": 0, "start": "2025-12-16 14:25:15.552481", "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.003835", "end": "2025-12-16 14:24:50.611603", "msg": "", "rc": 0, "start": "2025-12-16 14:24:50.607768", "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.004156", "end": "2025-12-16 14:24:44.456564", "msg": "", "rc": 0, "start": "2025-12-16 14:24:44.452408", "stderr": "", "stderr_lines": [], "stdout": "70.0%", "stdout_lines": ["70.0%"]}
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.011034", "end": "2025-12-16 14:25:16.203408", "msg": "", "rc": 0, "start": "2025-12-16 14:25:16.192374", "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.012123", "end": "2025-12-16 14:25:16.210929", "msg": "", "rc": 0, "start": "2025-12-16 14:25:16.198806", "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.005814", "end": "2025-12-16 14:25:16.531203", "msg": "", "rc": 0, "start": "2025-12-16 14:25:16.525389", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004627", "end": "2025-12-16 14:24:47.633685", "msg": "", "rc": 0, "start": "2025-12-16 14:24:47.629058", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.005507", "end": "2025-12-16 11:25:16.680564", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:25:16.675057", "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.003510", "end": "2025-12-16 14:24:53.887314", "msg": "", "rc": 0, "start": "2025-12-16 14:24:53.883804", "stderr": "", "stderr_lines": [], "stdout": "56.2%", "stdout_lines": ["56.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.005426", "end": "2025-12-16 14:25:16.988248", "msg": "", "rc": 0, "start": "2025-12-16 14:25:16.982822", "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.010107", "end": "2025-12-16 14:25:17.585002", "msg": "", "rc": 0, "start": "2025-12-16 14:25:17.574895", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025882", "end": "2025-12-16 14:25:16.879076", "msg": "", "rc": 0, "start": "2025-12-16 14:25:16.853194", "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.005099", "end": "2025-12-16 14:25:17.437207", "msg": "", "rc": 0, "start": "2025-12-16 14:25:17.432108", "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.004943", "end": "2025-12-16 14:25:17.451471", "msg": "", "rc": 0, "start": "2025-12-16 14:25:17.446528", "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.006000", "end": "2025-12-16 14:25:17.459010", "msg": "", "rc": 0, "start": "2025-12-16 14:25:17.453010", "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.002863", "end": "2025-12-16 14:25:17.479269", "msg": "", "rc": 0, "start": "2025-12-16 14:25:17.476406", "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.006321", "end": "2025-12-16 14:25:17.499122", "msg": "", "rc": 0, "start": "2025-12-16 14:25:17.492801", "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.003070", "end": "2025-12-16 14:24:52.559030", "msg": "", "rc": 0, "start": "2025-12-16 14:24:52.555960", "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.002805", "end": "2025-12-16 14:24:46.396712", "msg": "", "rc": 0, "start": "2025-12-16 14:24:46.393907", "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.011913", "end": "2025-12-16 14:25:18.150559", "msg": "", "rc": 0, "start": "2025-12-16 14:25:18.138646", "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.012823", "end": "2025-12-16 14:25:18.187479", "msg": "", "rc": 0, "start": "2025-12-16 14:25:18.174656", "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.003332", "end": "2025-12-16 14:25:18.470012", "msg": "", "rc": 0, "start": "2025-12-16 14:25:18.466680", "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.003048", "end": "2025-12-16 14:24:49.571783", "msg": "", "rc": 0, "start": "2025-12-16 14:24:49.568735", "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.002661", "end": "2025-12-16 14:24:55.819797", "msg": "", "rc": 0, "start": "2025-12-16 14:24:55.817136", "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.003931", "end": "2025-12-16 11:25:18.656869", "msg": "", "rc": 0, "start": "2025-12-16 11:25:18.652938", "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.002965", "end": "2025-12-16 14:25:18.908364", "msg": "", "rc": 0, "start": "2025-12-16 14:25:18.905399", "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.005098", "end": "2025-12-16 14:25:19.580105", "msg": "", "rc": 0, "start": "2025-12-16 14:25:19.575007", "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.028371", "end": "2025-12-16 14:25:18.853640", "msg": "", "rc": 0, "start": "2025-12-16 14:25:18.825269", "stderr": "", "stderr_lines": [], "stdout": "35.7°C", "stdout_lines": ["35.7°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.004038", "end": "2025-12-16 14:25:19.390201", "msg": "", "rc": 0, "start": "2025-12-16 14:25:19.386163", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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-16 14:25:19.390874", "msg": "", "rc": 0, "start": "2025-12-16 14:25:19.386556", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.005165", "end": "2025-12-16 14:25:19.441758", "msg": "", "rc": 0, "start": "2025-12-16 14:25:19.436593", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.005291", "end": "2025-12-16 14:25:19.446338", "msg": "", "rc": 0, "start": "2025-12-16 14:25:19.441047", "stderr": "", "stderr_lines": [], "stdout": "0.89", "stdout_lines": ["0.89"]}
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.005251", "end": "2025-12-16 14:25:19.446909", "msg": "", "rc": 0, "start": "2025-12-16 14:25:19.441658", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004362", "end": "2025-12-16 14:24:54.480236", "msg": "", "rc": 0, "start": "2025-12-16 14:24:54.475874", "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.005273", "end": "2025-12-16 14:24:48.341383", "msg": "", "rc": 0, "start": "2025-12-16 14:24:48.336110", "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.010141", "end": "2025-12-16 14:25:20.181707", "msg": "", "rc": 0, "start": "2025-12-16 14:25:20.171566", "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.011188", "end": "2025-12-16 14:25:20.210598", "msg": "", "rc": 0, "start": "2025-12-16 14:25:20.199410", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005600", "end": "2025-12-16 14:25:20.398562", "msg": "", "rc": 0, "start": "2025-12-16 14:25:20.392962", "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.005326", "end": "2025-12-16 14:24:51.522105", "msg": "", "rc": 0, "start": "2025-12-16 14:24:51.516779", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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.006508", "end": "2025-12-16 11:25:20.679445", "msg": "", "rc": 0, "start": "2025-12-16 11:25:20.672937", "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.004321", "end": "2025-12-16 14:24:57.865231", "msg": "", "rc": 0, "start": "2025-12-16 14:24:57.860910", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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-16 14:25:20.846109", "msg": "", "rc": 0, "start": "2025-12-16 14:25:20.840772", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.008382", "end": "2025-12-16 14:25:21.612525", "msg": "", "rc": 0, "start": "2025-12-16 14:25:21.604143", "stderr": "", "stderr_lines": [], "stdout": "1.27", "stdout_lines": ["1.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.024357", "end": "2025-12-16 14:25:20.776983", "msg": "", "rc": 0, "start": "2025-12-16 14:25:20.752626", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:11 up 21 days, 1:16, 1 user, load average: 0.17, 0.20, 0.18\nDisk Usage: 23%\nMemory Usage: 86.1%\nCPU Load: 0.23\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:11 up 2 days, 3:57, 1 user, load average: 0.04, 0.20, 0.23\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.19\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:11 up 21 days, 1:36, 1 user, load average: 0.79, 0.78, 0.70\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: 14:25:11 up 21 days, 2:49, 1 user, load average: 0.68, 0.74, 0.79\nDisk Usage: 14%\nMemory Usage: 59.3%\nCPU Load: 0.65\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:11 up 21 days, 3:35, 1 user, load average: 0.04, 0.03, 0.00\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:12 up 14 days, 3:51, 1 user, load average: 0.10, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.17\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:12 up 193 days, 5:58, 1 user, load average: 0.10, 0.14, 0.17\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.17\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:12 up 193 days, 5:58, 1 user, load average: 0.10, 0.11, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.10\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:24:46 up 10 days, 2:14, 0 user, load average: 0.10, 0.15, 0.17\nDisk Usage: 47%\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: 14:24:40 up 16 days, 22:26, 0 user, load average: 0.14, 0.11, 0.04\nDisk Usage: 24%\nMemory Usage: 70.0%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:12 up 2 days, 3:56, 1 user, load average: 0.12, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:24:43 up 19 days, 17:19, 0 user, load average: 0.54, 0.58, 0.60\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.58\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:24:50 up 16 days, 3:40, 0 user, load average: 0.12, 0.23, 0.28\nDisk Usage: 75%\nMemory Usage: 56.2%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:13 up 2 days, 3:56, 1 user, load average: 0.06, 0.05, 0.04\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:25AM up 21 days, 1:15, 1 user, load averages: 0.34, 0.28, 0.21\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:25:13 up 15:51, 1 user, load average: 1.24, 1.16, 1.15\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.27\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-16T19:25:22.556487+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `66d5fd1694774c54b789db9b339c206d` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:30:00.003991+00:00 |
| **Fin** | 2025-12-16T19:30:22.326045+00:00 |
| **Durée** | 22.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: [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.003171", "end": "2025-12-16 14:30:12.098128", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.094957", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 21 days, 1:21, 1 user, load average: 0.36, 0.24, 0.19", "stdout_lines": [" 14:30:12 up 21 days, 1:21, 1 user, load average: 0.36, 0.24, 0.19"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003628", "end": "2025-12-16 14:30:12.111646", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.108018", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 21 days, 3:40, 1 user, load average: 0.17, 0.06, 0.01", "stdout_lines": [" 14:30:12 up 21 days, 3:40, 1 user, load average: 0.17, 0.06, 0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004084", "end": "2025-12-16 14:30:12.126885", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.122801", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 21 days, 2:54, 1 user, load average: 1.20, 0.92, 0.85", "stdout_lines": [" 14:30:12 up 21 days, 2:54, 1 user, load average: 1.20, 0.92, 0.85"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002929", "end": "2025-12-16 14:30:12.135747", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.132818", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 2 days, 4:02, 1 user, load average: 0.06, 0.18, 0.22", "stdout_lines": [" 14:30:12 up 2 days, 4:02, 1 user, load average: 0.06, 0.18, 0.22"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003723", "end": "2025-12-16 14:30:12.133376", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.129653", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 21 days, 1:41, 1 user, load average: 1.58, 0.91, 0.74", "stdout_lines": [" 14:30:12 up 21 days, 1:41, 1 user, load average: 1.58, 0.91, 0.74"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003345", "end": "2025-12-16 14:29:47.153737", "msg": "", "rc": 0, "start": "2025-12-16 14:29:47.150392", "stderr": "", "stderr_lines": [], "stdout": " 14:29:47 up 10 days, 2:19, 0 user, load average: 0.09, 0.10, 0.14", "stdout_lines": [" 14:29:47 up 10 days, 2:19, 0 user, load average: 0.09, 0.10, 0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004108", "end": "2025-12-16 14:29:41.024943", "msg": "", "rc": 0, "start": "2025-12-16 14:29:41.020835", "stderr": "", "stderr_lines": [], "stdout": " 14:29:41 up 16 days, 22:31, 0 user, load average: 0.00, 0.03, 0.01", "stdout_lines": [" 14:29:41 up 16 days, 22:31, 0 user, load average: 0.00, 0.03, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008518", "end": "2025-12-16 14:30:12.776790", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.768272", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 193 days, 6:03, 1 user, load average: 0.05, 0.09, 0.09", "stdout_lines": [" 14:30:12 up 193 days, 6:03, 1 user, load average: 0.05, 0.09, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009583", "end": "2025-12-16 14:30:12.825389", "msg": "", "rc": 0, "start": "2025-12-16 14:30:12.815806", "stderr": "", "stderr_lines": [], "stdout": " 14:30:12 up 193 days, 6:03, 1 user, load average: 0.17, 0.17, 0.18", "stdout_lines": [" 14:30:12 up 193 days, 6:03, 1 user, load average: 0.17, 0.17, 0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004631", "end": "2025-12-16 14:30:13.085282", "msg": "", "rc": 0, "start": "2025-12-16 14:30:13.080651", "stderr": "", "stderr_lines": [], "stdout": " 14:30:13 up 2 days, 4:01, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 14:30:13 up 2 days, 4:01, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003165", "end": "2025-12-16 14:29:50.463601", "msg": "", "rc": 0, "start": "2025-12-16 14:29:50.460436", "stderr": "", "stderr_lines": [], "stdout": " 14:29:50 up 16 days, 3:45, 0 user, load average: 0.23, 0.23, 0.26", "stdout_lines": [" 14:29:50 up 16 days, 3:45, 0 user, load average: 0.23, 0.23, 0.26"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004265", "end": "2025-12-16 11:30:13.304838", "msg": "", "rc": 0, "start": "2025-12-16 11:30:13.300573", "stderr": "", "stderr_lines": [], "stdout": "11:30AM up 21 days, 1:20, 1 user, load averages: 0.34, 0.28, 0.22", "stdout_lines": ["11:30AM up 21 days, 1:20, 1 user, load averages: 0.34, 0.28, 0.22"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005318", "end": "2025-12-16 14:29:44.296403", "msg": "", "rc": 0, "start": "2025-12-16 14:29:44.291085", "stderr": "", "stderr_lines": [], "stdout": " 14:29:44 up 19 days, 17:24, 0 user, load average: 0.61, 0.53, 0.56", "stdout_lines": [" 14:29:44 up 19 days, 17:24, 0 user, load average: 0.61, 0.53, 0.56"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003723", "end": "2025-12-16 14:30:13.504072", "msg": "", "rc": 0, "start": "2025-12-16 14:30:13.500349", "stderr": "", "stderr_lines": [], "stdout": " 14:30:13 up 2 days, 4:01, 1 user, load average: 0.08, 0.03, 0.02", "stdout_lines": [" 14:30:13 up 2 days, 4:01, 1 user, load average: 0.08, 0.03, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008482", "end": "2025-12-16 14:30:14.437493", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.429011", "stderr": "", "stderr_lines": [], "stdout": " 14:30:14 up 15:57, 1 user, load average: 1.37, 1.15, 1.14", "stdout_lines": [" 14:30:14 up 15:57, 1 user, load average: 1.37, 1.15, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019738", "end": "2025-12-16 14:30:13.476561", "msg": "", "rc": 0, "start": "2025-12-16 14:30:13.456823", "stderr": "", "stderr_lines": [], "stdout": " 14:30:13 up 14 days, 3:56, 1 user, load average: 0.29, 0.12, 0.10", "stdout_lines": [" 14:30:13 up 14 days, 3:56, 1 user, load average: 0.29, 0.12, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004214", "end": "2025-12-16 14:30:14.000930", "msg": "", "rc": 0, "start": "2025-12-16 14:30:13.996716", "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.004375", "end": "2025-12-16 14:30:14.004458", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.000083", "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.004711", "end": "2025-12-16 14:30:14.042595", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.037884", "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.004898", "end": "2025-12-16 14:30:14.049514", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.044616", "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.005673", "end": "2025-12-16 14:30:14.087317", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.081644", "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.004746", "end": "2025-12-16 14:29:49.086741", "msg": "", "rc": 0, "start": "2025-12-16 14:29:49.081995", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006280", "end": "2025-12-16 14:29:42.988279", "msg": "", "rc": 0, "start": "2025-12-16 14:29:42.981999", "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.011631", "end": "2025-12-16 14:30:14.761752", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.750121", "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.010915", "end": "2025-12-16 14:30:14.788557", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.777642", "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.005717", "end": "2025-12-16 14:30:15.003125", "msg": "", "rc": 0, "start": "2025-12-16 14:30:14.997408", "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.005478", "end": "2025-12-16 14:29:46.193383", "msg": "", "rc": 0, "start": "2025-12-16 14:29:46.187905", "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.006287", "end": "2025-12-16 11:30:15.263705", "msg": "", "rc": 0, "start": "2025-12-16 11:30:15.257418", "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.005716", "end": "2025-12-16 14:29:52.469611", "msg": "", "rc": 0, "start": "2025-12-16 14:29:52.463895", "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.005734", "end": "2025-12-16 14:30:15.440769", "msg": "", "rc": 0, "start": "2025-12-16 14:30:15.435035", "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.025219", "end": "2025-12-16 14:30:15.392376", "msg": "", "rc": 0, "start": "2025-12-16 14:30:15.367157", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019838", "end": "2025-12-16 14:30:16.465822", "msg": "", "rc": 0, "start": "2025-12-16 14:30:16.445984", "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.004431", "end": "2025-12-16 14:30:15.956001", "msg": "", "rc": 0, "start": "2025-12-16 14:30:15.951570", "stderr": "", "stderr_lines": [], "stdout": "86.1%", "stdout_lines": ["86.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.004162", "end": "2025-12-16 14:30:15.961886", "msg": "", "rc": 0, "start": "2025-12-16 14:30:15.957724", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004674", "end": "2025-12-16 14:30:15.987623", "msg": "", "rc": 0, "start": "2025-12-16 14:30:15.982949", "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.004843", "end": "2025-12-16 14:30:16.002986", "msg": "", "rc": 0, "start": "2025-12-16 14:30:15.998143", "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.005890", "end": "2025-12-16 14:30:16.041932", "msg": "", "rc": 0, "start": "2025-12-16 14:30:16.036042", "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.003525", "end": "2025-12-16 14:29:51.028158", "msg": "", "rc": 0, "start": "2025-12-16 14:29:51.024633", "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.005091", "end": "2025-12-16 14:29:44.937915", "msg": "", "rc": 0, "start": "2025-12-16 14:29:44.932824", "stderr": "", "stderr_lines": [], "stdout": "69.5%", "stdout_lines": ["69.5%"]}
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.011031", "end": "2025-12-16 14:30:16.667066", "msg": "", "rc": 0, "start": "2025-12-16 14:30:16.656035", "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.012594", "end": "2025-12-16 14:30:16.708025", "msg": "", "rc": 0, "start": "2025-12-16 14:30:16.695431", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005865", "end": "2025-12-16 14:30:16.948285", "msg": "", "rc": 0, "start": "2025-12-16 14:30:16.942420", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004117", "end": "2025-12-16 14:29:48.129184", "msg": "", "rc": 0, "start": "2025-12-16 14:29:48.125067", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.003950", "end": "2025-12-16 14:29:54.341720", "msg": "", "rc": 0, "start": "2025-12-16 14:29:54.337770", "stderr": "", "stderr_lines": [], "stdout": "60.4%", "stdout_lines": ["60.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.005387", "end": "2025-12-16 11:30:17.172636", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:30:17.167249", "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.005481", "end": "2025-12-16 14:30:17.379804", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.374323", "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.025973", "end": "2025-12-16 14:30:17.360286", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.334313", "stderr": "", "stderr_lines": [], "stdout": "19.3%", "stdout_lines": ["19.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.010408", "end": "2025-12-16 14:30:18.467219", "msg": "", "rc": 0, "start": "2025-12-16 14:30:18.456811", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.005401", "end": "2025-12-16 14:30:17.898236", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.892835", "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.005784", "end": "2025-12-16 14:30:17.914399", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.908615", "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.005068", "end": "2025-12-16 14:30:17.920126", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.915058", "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.003211", "end": "2025-12-16 14:30:17.942208", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.938997", "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.006333", "end": "2025-12-16 14:30:17.962717", "msg": "", "rc": 0, "start": "2025-12-16 14:30:17.956384", "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.002523", "end": "2025-12-16 14:29:52.955727", "msg": "", "rc": 0, "start": "2025-12-16 14:29:52.953204", "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.002927", "end": "2025-12-16 14:29:46.835366", "msg": "", "rc": 0, "start": "2025-12-16 14:29:46.832439", "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.011804", "end": "2025-12-16 14:30:18.596095", "msg": "", "rc": 0, "start": "2025-12-16 14:30:18.584291", "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.013439", "end": "2025-12-16 14:30:18.637787", "msg": "", "rc": 0, "start": "2025-12-16 14:30:18.624348", "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.003387", "end": "2025-12-16 14:30:18.855320", "msg": "", "rc": 0, "start": "2025-12-16 14:30:18.851933", "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.003027", "end": "2025-12-16 14:29:50.008858", "msg": "", "rc": 0, "start": "2025-12-16 14:29:50.005831", "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.002717", "end": "2025-12-16 14:29:56.272066", "msg": "", "rc": 0, "start": "2025-12-16 14:29:56.269349", "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.004328", "end": "2025-12-16 11:30:19.100358", "msg": "", "rc": 0, "start": "2025-12-16 11:30:19.096030", "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.002995", "end": "2025-12-16 14:30:19.283676", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.280681", "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.004275", "end": "2025-12-16 14:30:19.373635", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.369360", "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.028975", "end": "2025-12-16 14:30:19.289923", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.260948", "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.004231", "end": "2025-12-16 14:30:19.826936", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.822705", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
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.004005", "end": "2025-12-16 14:30:19.833045", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.829040", "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.004542", "end": "2025-12-16 14:30:19.848817", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.844275", "stderr": "", "stderr_lines": [], "stdout": "1.49", "stdout_lines": ["1.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.005156", "end": "2025-12-16 14:30:19.860214", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.855058", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005623", "end": "2025-12-16 14:30:19.876388", "msg": "", "rc": 0, "start": "2025-12-16 14:30:19.870765", "stderr": "", "stderr_lines": [], "stdout": "1.26", "stdout_lines": ["1.26"]}
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.004621", "end": "2025-12-16 14:29:54.900583", "msg": "", "rc": 0, "start": "2025-12-16 14:29:54.895962", "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.005143", "end": "2025-12-16 14:29:48.756267", "msg": "", "rc": 0, "start": "2025-12-16 14:29:48.751124", "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.010310", "end": "2025-12-16 14:30:20.594692", "msg": "", "rc": 0, "start": "2025-12-16 14:30:20.584382", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.011156", "end": "2025-12-16 14:30:20.638197", "msg": "", "rc": 0, "start": "2025-12-16 14:30:20.627041", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005570", "end": "2025-12-16 14:30:20.815827", "msg": "", "rc": 0, "start": "2025-12-16 14:30:20.810257", "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.005226", "end": "2025-12-16 14:29:51.936443", "msg": "", "rc": 0, "start": "2025-12-16 14:29:51.931217", "stderr": "", "stderr_lines": [], "stdout": "0.64", "stdout_lines": ["0.64"]}
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.005875", "end": "2025-12-16 11:30:21.104533", "msg": "", "rc": 0, "start": "2025-12-16 11:30:21.098658", "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.004465", "end": "2025-12-16 14:29:58.335325", "msg": "", "rc": 0, "start": "2025-12-16 14:29:58.330860", "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.005344", "end": "2025-12-16 14:30:21.268965", "msg": "", "rc": 0, "start": "2025-12-16 14:30:21.263621", "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.009962", "end": "2025-12-16 14:30:21.403312", "msg": "", "rc": 0, "start": "2025-12-16 14:30:21.393350", "stderr": "", "stderr_lines": [], "stdout": "1.46", "stdout_lines": ["1.46"]}
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.024323", "end": "2025-12-16 14:30:21.223083", "msg": "", "rc": 0, "start": "2025-12-16 14:30:21.198760", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 2 days, 4:02, 1 user, load average: 0.06, 0.18, 0.22\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.13\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 21 days, 1:21, 1 user, load average: 0.36, 0.24, 0.19\nDisk Usage: 23%\nMemory Usage: 86.1%\nCPU Load: 0.39\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 21 days, 1:41, 1 user, load average: 1.58, 0.91, 0.74\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 1.49\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 21 days, 2:54, 1 user, load average: 1.20, 0.92, 0.85\nDisk Usage: 14%\nMemory Usage: 59.2%\nCPU Load: 1.26\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 21 days, 3:40, 1 user, load average: 0.17, 0.06, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:13 up 14 days, 3:56, 1 user, load average: 0.29, 0.12, 0.10\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.35\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 193 days, 6:03, 1 user, load average: 0.17, 0.17, 0.18\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.15\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:12 up 193 days, 6:03, 1 user, load average: 0.05, 0.09, 0.09\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.05\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:29:47 up 10 days, 2:19, 0 user, load average: 0.09, 0.10, 0.14\nDisk Usage: 47%\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: 14:29:41 up 16 days, 22:31, 0 user, load average: 0.00, 0.03, 0.01\nDisk Usage: 24%\nMemory Usage: 69.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:30:13 up 2 days, 4:01, 1 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:29:44 up 19 days, 17:24, 0 user, load average: 0.61, 0.53, 0.56\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.64\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:29:50 up 16 days, 3:45, 0 user, load average: 0.23, 0.23, 0.26\nDisk Usage: 75%\nMemory Usage: 60.4%\nCPU Load: 0.21\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:30AM up 21 days, 1:20, 1 user, load averages: 0.34, 0.28, 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: 14:30:13 up 2 days, 4:01, 1 user, load average: 0.08, 0.03, 0.02\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: 14:30:14 up 15:57, 1 user, load average: 1.37, 1.15, 1.14\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T19:30:22.371007+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `15ec179bf1a6402ba4bc2723b6f84e72` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:35:00.001845+00:00 |
| **Fin** | 2025-12-16T19:35:24.058576+00:00 |
| **Durée** | 24.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: [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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003057", "end": "2025-12-16 14:35:11.833815", "msg": "", "rc": 0, "start": "2025-12-16 14:35:11.830758", "stderr": "", "stderr_lines": [], "stdout": " 14:35:11 up 21 days, 1:26, 1 user, load average: 0.09, 0.16, 0.17", "stdout_lines": [" 14:35:11 up 21 days, 1:26, 1 user, load average: 0.09, 0.16, 0.17"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004024", "end": "2025-12-16 14:35:11.848089", "msg": "", "rc": 0, "start": "2025-12-16 14:35:11.844065", "stderr": "", "stderr_lines": [], "stdout": " 14:35:11 up 21 days, 3:45, 1 user, load average: 0.17, 0.08, 0.01", "stdout_lines": [" 14:35:11 up 21 days, 3:45, 1 user, load average: 0.17, 0.08, 0.01"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003575", "end": "2025-12-16 14:35:11.851365", "msg": "", "rc": 0, "start": "2025-12-16 14:35:11.847790", "stderr": "", "stderr_lines": [], "stdout": " 14:35:11 up 21 days, 1:46, 1 user, load average: 0.65, 0.85, 0.77", "stdout_lines": [" 14:35:11 up 21 days, 1:46, 1 user, load average: 0.65, 0.85, 0.77"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002872", "end": "2025-12-16 14:35:11.874137", "msg": "", "rc": 0, "start": "2025-12-16 14:35:11.871265", "stderr": "", "stderr_lines": [], "stdout": " 14:35:11 up 2 days, 4:07, 1 user, load average: 0.12, 0.16, 0.19", "stdout_lines": [" 14:35:11 up 2 days, 4:07, 1 user, load average: 0.12, 0.16, 0.19"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004176", "end": "2025-12-16 14:35:11.894152", "msg": "", "rc": 0, "start": "2025-12-16 14:35:11.889976", "stderr": "", "stderr_lines": [], "stdout": " 14:35:11 up 21 days, 2:59, 1 user, load average: 0.47, 0.72, 0.78", "stdout_lines": [" 14:35:11 up 21 days, 2:59, 1 user, load average: 0.47, 0.72, 0.78"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002961", "end": "2025-12-16 14:34:46.886231", "msg": "", "rc": 0, "start": "2025-12-16 14:34:46.883270", "stderr": "", "stderr_lines": [], "stdout": " 14:34:46 up 10 days, 2:24, 0 user, load average: 0.00, 0.05, 0.10", "stdout_lines": [" 14:34:46 up 10 days, 2:24, 0 user, load average: 0.00, 0.05, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003649", "end": "2025-12-16 14:34:40.765841", "msg": "", "rc": 0, "start": "2025-12-16 14:34:40.762192", "stderr": "", "stderr_lines": [], "stdout": " 14:34:40 up 16 days, 22:36, 0 user, load average: 0.07, 0.05, 0.01", "stdout_lines": [" 14:34:40 up 16 days, 22:36, 0 user, load average: 0.07, 0.05, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008611", "end": "2025-12-16 14:35:12.515340", "msg": "", "rc": 0, "start": "2025-12-16 14:35:12.506729", "stderr": "", "stderr_lines": [], "stdout": " 14:35:12 up 193 days, 6:08, 1 user, load average: 0.29, 0.16, 0.11", "stdout_lines": [" 14:35:12 up 193 days, 6:08, 1 user, load average: 0.29, 0.16, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.010636", "end": "2025-12-16 14:35:12.566666", "msg": "", "rc": 0, "start": "2025-12-16 14:35:12.556030", "stderr": "", "stderr_lines": [], "stdout": " 14:35:12 up 193 days, 6:08, 1 user, load average: 0.19, 0.20, 0.18", "stdout_lines": [" 14:35:12 up 193 days, 6:08, 1 user, load average: 0.19, 0.20, 0.18"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004787", "end": "2025-12-16 14:35:12.799516", "msg": "", "rc": 0, "start": "2025-12-16 14:35:12.794729", "stderr": "", "stderr_lines": [], "stdout": " 14:35:12 up 2 days, 4:06, 1 user, load average: 0.37, 0.12, 0.04", "stdout_lines": [" 14:35:12 up 2 days, 4:06, 1 user, load average: 0.37, 0.12, 0.04"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003262", "end": "2025-12-16 14:34:43.938816", "msg": "", "rc": 0, "start": "2025-12-16 14:34:43.935554", "stderr": "", "stderr_lines": [], "stdout": " 14:34:43 up 19 days, 17:29, 0 user, load average: 0.28, 0.35, 0.47", "stdout_lines": [" 14:34:43 up 19 days, 17:29, 0 user, load average: 0.28, 0.35, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002675", "end": "2025-12-16 14:34:50.166839", "msg": "", "rc": 0, "start": "2025-12-16 14:34:50.164164", "stderr": "", "stderr_lines": [], "stdout": " 14:34:50 up 16 days, 3:50, 0 user, load average: 0.08, 0.14, 0.21", "stdout_lines": [" 14:34:50 up 16 days, 3:50, 0 user, load average: 0.08, 0.14, 0.21"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004952", "end": "2025-12-16 11:35:13.021684", "msg": "", "rc": 0, "start": "2025-12-16 11:35:13.016732", "stderr": "", "stderr_lines": [], "stdout": "11:35AM up 21 days, 1:25, 1 user, load averages: 0.18, 0.21, 0.19", "stdout_lines": ["11:35AM up 21 days, 1:25, 1 user, load averages: 0.18, 0.21, 0.19"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004023", "end": "2025-12-16 14:35:13.219635", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.215612", "stderr": "", "stderr_lines": [], "stdout": " 14:35:13 up 2 days, 4:06, 1 user, load average: 0.19, 0.09, 0.04", "stdout_lines": [" 14:35:13 up 2 days, 4:06, 1 user, load average: 0.19, 0.09, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007815", "end": "2025-12-16 14:35:13.430235", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.422420", "stderr": "", "stderr_lines": [], "stdout": " 14:35:13 up 16:02, 1 user, load average: 1.30, 1.20, 1.16", "stdout_lines": [" 14:35:13 up 16:02, 1 user, load average: 1.30, 1.20, 1.16"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019429", "end": "2025-12-16 14:35:13.223494", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.204065", "stderr": "", "stderr_lines": [], "stdout": " 14:35:13 up 14 days, 4:01, 1 user, load average: 0.16, 0.14, 0.10", "stdout_lines": [" 14:35:13 up 14 days, 4:01, 1 user, load average: 0.16, 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.004424", "end": "2025-12-16 14:35:13.755359", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.750935", "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.004058", "end": "2025-12-16 14:35:13.775936", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.771878", "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.004481", "end": "2025-12-16 14:35:13.776164", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.771683", "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.005035", "end": "2025-12-16 14:35:13.817488", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.812453", "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.005568", "end": "2025-12-16 14:35:13.820359", "msg": "", "rc": 0, "start": "2025-12-16 14:35:13.814791", "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.005006", "end": "2025-12-16 14:34:48.820141", "msg": "", "rc": 0, "start": "2025-12-16 14:34:48.815135", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005711", "end": "2025-12-16 14:34:42.735820", "msg": "", "rc": 0, "start": "2025-12-16 14:34:42.730109", "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.010462", "end": "2025-12-16 14:35:14.505028", "msg": "", "rc": 0, "start": "2025-12-16 14:35:14.494566", "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.011809", "end": "2025-12-16 14:35:14.549800", "msg": "", "rc": 0, "start": "2025-12-16 14:35:14.537991", "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.006175", "end": "2025-12-16 14:35:14.708502", "msg": "", "rc": 0, "start": "2025-12-16 14:35:14.702327", "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.005826", "end": "2025-12-16 14:34:45.927833", "msg": "", "rc": 0, "start": "2025-12-16 14:34:45.922007", "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.004514", "end": "2025-12-16 14:34:52.178051", "msg": "", "rc": 0, "start": "2025-12-16 14:34:52.173537", "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.006104", "end": "2025-12-16 11:35:15.010542", "msg": "", "rc": 0, "start": "2025-12-16 11:35:15.004438", "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.005309", "end": "2025-12-16 14:35:15.119466", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.114157", "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.025057", "end": "2025-12-16 14:35:15.145122", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.120065", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020966", "end": "2025-12-16 14:35:15.562366", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.541400", "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.004499", "end": "2025-12-16 14:35:15.735300", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.730801", "stderr": "", "stderr_lines": [], "stdout": "86.1%", "stdout_lines": ["86.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.004125", "end": "2025-12-16 14:35:15.757521", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.753396", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004773", "end": "2025-12-16 14:35:15.765952", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.761179", "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.005690", "end": "2025-12-16 14:35:15.788343", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.782653", "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.006554", "end": "2025-12-16 14:35:15.820590", "msg": "", "rc": 0, "start": "2025-12-16 14:35:15.814036", "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.004270", "end": "2025-12-16 14:34:50.875213", "msg": "", "rc": 0, "start": "2025-12-16 14:34:50.870943", "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.008240", "end": "2025-12-16 14:34:44.753978", "msg": "", "rc": 0, "start": "2025-12-16 14:34:44.745738", "stderr": "", "stderr_lines": [], "stdout": "69.6%", "stdout_lines": ["69.6%"]}
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.011970", "end": "2025-12-16 14:35:16.460853", "msg": "", "rc": 0, "start": "2025-12-16 14:35:16.448883", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.0%"]}
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.011058", "end": "2025-12-16 14:35:16.439868", "msg": "", "rc": 0, "start": "2025-12-16 14:35:16.428810", "stderr": "", "stderr_lines": [], "stdout": "6.8%", "stdout_lines": ["6.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.026156", "end": "2025-12-16 14:35:17.138989", "msg": "", "rc": 0, "start": "2025-12-16 14:35:17.112833", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.006053", "end": "2025-12-16 14:35:17.332989", "msg": "", "rc": 0, "start": "2025-12-16 14:35:17.326936", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.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.004153", "end": "2025-12-16 14:34:54.672668", "msg": "", "rc": 0, "start": "2025-12-16 14:34:54.668515", "stderr": "", "stderr_lines": [], "stdout": "56.7%", "stdout_lines": ["56.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.005685", "end": "2025-12-16 11:35:17.488909", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:35:17.483224", "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.005461", "end": "2025-12-16 14:34:48.483843", "msg": "", "rc": 0, "start": "2025-12-16 14:34:48.478382", "stderr": "", "stderr_lines": [], "stdout": "27.0%", "stdout_lines": ["27.0%"]}
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.011074", "end": "2025-12-16 14:35:18.121422", "msg": "", "rc": 0, "start": "2025-12-16 14:35:18.110348", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.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.005567", "end": "2025-12-16 14:35:18.219590", "msg": "", "rc": 0, "start": "2025-12-16 14:35:18.214023", "stderr": "", "stderr_lines": [], "stdout": "13.7%", "stdout_lines": ["13.7%"]}
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.005113", "end": "2025-12-16 14:35:19.172782", "msg": "", "rc": 0, "start": "2025-12-16 14:35:19.167669", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.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.003150", "end": "2025-12-16 14:35:19.178904", "msg": "", "rc": 0, "start": "2025-12-16 14:35:19.175754", "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.006031", "end": "2025-12-16 14:35:19.184901", "msg": "", "rc": 0, "start": "2025-12-16 14:35:19.178870", "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.004890", "end": "2025-12-16 14:35:19.210517", "msg": "", "rc": 0, "start": "2025-12-16 14:35:19.205627", "stderr": "", "stderr_lines": [], "stdout": "46.0°C", "stdout_lines": ["46.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.006468", "end": "2025-12-16 14:35:19.196480", "msg": "", "rc": 0, "start": "2025-12-16 14:35:19.190012", "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.002477", "end": "2025-12-16 14:34:54.321208", "msg": "", "rc": 0, "start": "2025-12-16 14:34:54.318731", "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.003198", "end": "2025-12-16 14:34:48.205124", "msg": "", "rc": 0, "start": "2025-12-16 14:34:48.201926", "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.011984", "end": "2025-12-16 14:35:20.061782", "msg": "", "rc": 0, "start": "2025-12-16 14:35:20.049798", "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.013081", "end": "2025-12-16 14:35:20.085929", "msg": "", "rc": 0, "start": "2025-12-16 14:35:20.072848", "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.003139", "end": "2025-12-16 14:35:20.241265", "msg": "", "rc": 0, "start": "2025-12-16 14:35:20.238126", "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.002948", "end": "2025-12-16 14:34:51.367735", "msg": "", "rc": 0, "start": "2025-12-16 14:34:51.364787", "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.004191", "end": "2025-12-16 11:35:20.532380", "msg": "", "rc": 0, "start": "2025-12-16 11:35:20.528189", "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.002808", "end": "2025-12-16 14:34:57.724538", "msg": "", "rc": 0, "start": "2025-12-16 14:34:57.721730", "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.002925", "end": "2025-12-16 14:35:20.654592", "msg": "", "rc": 0, "start": "2025-12-16 14:35:20.651667", "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.004116", "end": "2025-12-16 14:35:21.132578", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.128462", "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.028435", "end": "2025-12-16 14:35:20.673535", "msg": "", "rc": 0, "start": "2025-12-16 14:35:20.645100", "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.004234", "end": "2025-12-16 14:35:21.219716", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.215482", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.003995", "end": "2025-12-16 14:35:21.226280", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.222285", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.004530", "end": "2025-12-16 14:35:21.234882", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.230352", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.005471", "end": "2025-12-16 14:35:21.264335", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.258864", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005326", "end": "2025-12-16 14:35:21.271128", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.265802", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
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-16 14:34:56.263680", "msg": "", "rc": 0, "start": "2025-12-16 14:34:56.259399", "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.004804", "end": "2025-12-16 14:34:50.141823", "msg": "", "rc": 0, "start": "2025-12-16 14:34:50.137019", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.010377", "end": "2025-12-16 14:35:21.920807", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.910430", "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.011006", "end": "2025-12-16 14:35:21.969881", "msg": "", "rc": 0, "start": "2025-12-16 14:35:21.958875", "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.005651", "end": "2025-12-16 14:35:22.175053", "msg": "", "rc": 0, "start": "2025-12-16 14:35:22.169402", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004944", "end": "2025-12-16 14:34:53.303658", "msg": "", "rc": 0, "start": "2025-12-16 14:34:53.298714", "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.004142", "end": "2025-12-16 14:34:59.579196", "msg": "", "rc": 0, "start": "2025-12-16 14:34:59.575054", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.006433", "end": "2025-12-16 11:35:22.429615", "msg": "", "rc": 0, "start": "2025-12-16 11:35:22.423182", "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.005269", "end": "2025-12-16 14:35:22.595781", "msg": "", "rc": 0, "start": "2025-12-16 14:35:22.590512", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.007598", "end": "2025-12-16 14:35:23.156129", "msg": "", "rc": 0, "start": "2025-12-16 14:35:23.148531", "stderr": "", "stderr_lines": [], "stdout": "1.41", "stdout_lines": ["1.41"]}
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.024744", "end": "2025-12-16 14:35:22.617605", "msg": "", "rc": 0, "start": "2025-12-16 14:35:22.592861", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
TASK [Display health status] ***************************************************
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:11 up 21 days, 1:46, 1 user, load average: 0.65, 0.85, 0.77\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.55\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:11 up 21 days, 1:26, 1 user, load average: 0.09, 0.16, 0.17\nDisk Usage: 23%\nMemory Usage: 86.1%\nCPU Load: 0.15\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:11 up 2 days, 4:07, 1 user, load average: 0.12, 0.16, 0.19\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.10\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:11 up 21 days, 2:59, 1 user, load average: 0.47, 0.72, 0.78\nDisk Usage: 14%\nMemory Usage: 59.2%\nCPU Load: 0.56\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:11 up 21 days, 3:45, 1 user, load average: 0.17, 0.08, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:13 up 14 days, 4:01, 1 user, load average: 0.16, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 20.5%\nCPU Load: 0.29\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:12 up 193 days, 6:08, 1 user, load average: 0.19, 0.20, 0.18\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.23\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:12 up 193 days, 6:08, 1 user, load average: 0.29, 0.16, 0.11\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.27\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:34:46 up 10 days, 2:24, 0 user, load average: 0.00, 0.05, 0.10\nDisk Usage: 47%\nMemory Usage: 71.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:34:40 up 16 days, 22:36, 0 user, load average: 0.07, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 69.6%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:12 up 2 days, 4:06, 1 user, load average: 0.37, 0.12, 0.04\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:34:43 up 19 days, 17:29, 0 user, load average: 0.28, 0.35, 0.47\nDisk Usage: 28%\nMemory Usage: 27.0%\nCPU Load: 0.39\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:34:50 up 16 days, 3:50, 0 user, load average: 0.08, 0.14, 0.21\nDisk Usage: 75%\nMemory Usage: 56.7%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:35AM up 21 days, 1:25, 1 user, load averages: 0.18, 0.21, 0.19\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: 14:35:13 up 2 days, 4:06, 1 user, load average: 0.19, 0.09, 0.04\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:35:13 up 16:02, 1 user, load average: 1.30, 1.20, 1.16\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.41\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-16T19:35:24.096892+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `b4c3dba1ac794e488b11820135d3ce73` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:40:00.001406+00:00 |
| **Fin** | 2025-12-16T19:40:23.312573+00:00 |
| **Durée** | 23.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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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: [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.003742", "end": "2025-12-16 14:40:12.080361", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.076619", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 21 days, 3:50, 1 user, load average: 0.07, 0.06, 0.00", "stdout_lines": [" 14:40:12 up 21 days, 3:50, 1 user, load average: 0.07, 0.06, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003617", "end": "2025-12-16 14:40:12.103881", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.100264", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 21 days, 3:04, 1 user, load average: 0.67, 0.70, 0.75", "stdout_lines": [" 14:40:12 up 21 days, 3:04, 1 user, load average: 0.67, 0.70, 0.75"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003051", "end": "2025-12-16 14:40:12.118526", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.115475", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 2 days, 4:12, 1 user, load average: 0.22, 0.17, 0.18", "stdout_lines": [" 14:40:12 up 2 days, 4:12, 1 user, load average: 0.22, 0.17, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008456", "end": "2025-12-16 14:40:12.771526", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.763070", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 193 days, 6:13, 1 user, load average: 0.24, 0.18, 0.12", "stdout_lines": [" 14:40:12 up 193 days, 6:13, 1 user, load average: 0.24, 0.18, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009602", "end": "2025-12-16 14:40:12.810667", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.801065", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 193 days, 6:13, 1 user, load average: 0.26, 0.20, 0.18", "stdout_lines": [" 14:40:12 up 193 days, 6:13, 1 user, load average: 0.26, 0.20, 0.18"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004136", "end": "2025-12-16 14:40:13.075799", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.071663", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 21 days, 1:31, 1 user, load average: 0.11, 0.18, 0.18", "stdout_lines": [" 14:40:12 up 21 days, 1:31, 1 user, load average: 0.11, 0.18, 0.18"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005270", "end": "2025-12-16 14:40:13.087251", "msg": "", "rc": 0, "start": "2025-12-16 14:40:12.081981", "stderr": "", "stderr_lines": [], "stdout": " 14:40:12 up 21 days, 1:51, 1 user, load average: 0.50, 0.69, 0.72", "stdout_lines": [" 14:40:12 up 21 days, 1:51, 1 user, load average: 0.50, 0.69, 0.72"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003065", "end": "2025-12-16 14:39:47.815405", "msg": "", "rc": 0, "start": "2025-12-16 14:39:47.812340", "stderr": "", "stderr_lines": [], "stdout": " 14:39:47 up 10 days, 2:29, 0 user, load average: 0.11, 0.08, 0.09", "stdout_lines": [" 14:39:47 up 10 days, 2:29, 0 user, load average: 0.11, 0.08, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003606", "end": "2025-12-16 14:39:41.744697", "msg": "", "rc": 0, "start": "2025-12-16 14:39:41.741091", "stderr": "", "stderr_lines": [], "stdout": " 14:39:41 up 16 days, 22:41, 0 user, load average: 0.07, 0.04, 0.00", "stdout_lines": [" 14:39:41 up 16 days, 22:41, 0 user, load average: 0.07, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004669", "end": "2025-12-16 14:40:13.529868", "msg": "", "rc": 0, "start": "2025-12-16 14:40:13.525199", "stderr": "", "stderr_lines": [], "stdout": " 14:40:13 up 2 days, 4:11, 1 user, load average: 0.00, 0.04, 0.01", "stdout_lines": [" 14:40:13 up 2 days, 4:11, 1 user, load average: 0.00, 0.04, 0.01"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019241", "end": "2025-12-16 14:40:13.452249", "msg": "", "rc": 0, "start": "2025-12-16 14:40:13.433008", "stderr": "", "stderr_lines": [], "stdout": " 14:40:13 up 14 days, 4:06, 1 user, load average: 0.18, 0.12, 0.09", "stdout_lines": [" 14:40:13 up 14 days, 4:06, 1 user, load average: 0.18, 0.12, 0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003281", "end": "2025-12-16 14:39:44.629596", "msg": "", "rc": 0, "start": "2025-12-16 14:39:44.626315", "stderr": "", "stderr_lines": [], "stdout": " 14:39:44 up 19 days, 17:34, 0 user, load average: 0.26, 0.33, 0.43", "stdout_lines": [" 14:39:44 up 19 days, 17:34, 0 user, load average: 0.26, 0.33, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002883", "end": "2025-12-16 14:39:50.900002", "msg": "", "rc": 0, "start": "2025-12-16 14:39:50.897119", "stderr": "", "stderr_lines": [], "stdout": " 14:39:50 up 16 days, 3:55, 0 user, load average: 0.21, 0.18, 0.20", "stdout_lines": [" 14:39:50 up 16 days, 3:55, 0 user, load average: 0.21, 0.18, 0.20"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004386", "end": "2025-12-16 11:40:13.839552", "msg": "", "rc": 0, "start": "2025-12-16 11:40:13.835166", "stderr": "", "stderr_lines": [], "stdout": "11:40AM up 21 days, 1:30, 1 user, load averages: 0.22, 0.24, 0.20", "stdout_lines": ["11:40AM up 21 days, 1:30, 1 user, load averages: 0.22, 0.24, 0.20"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007117", "end": "2025-12-16 14:40:14.435041", "msg": "", "rc": 0, "start": "2025-12-16 14:40:14.427924", "stderr": "", "stderr_lines": [], "stdout": " 14:40:14 up 16:07, 1 user, load average: 1.44, 1.21, 1.17", "stdout_lines": [" 14:40:14 up 16:07, 1 user, load average: 1.44, 1.21, 1.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003951", "end": "2025-12-16 14:40:13.936812", "msg": "", "rc": 0, "start": "2025-12-16 14:40:13.932861", "stderr": "", "stderr_lines": [], "stdout": " 14:40:13 up 2 days, 4:11, 1 user, load average: 0.09, 0.15, 0.08", "stdout_lines": [" 14:40:13 up 2 days, 4:11, 1 user, load average: 0.09, 0.15, 0.08"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004329", "end": "2025-12-16 14:40:14.359648", "msg": "", "rc": 0, "start": "2025-12-16 14:40:14.355319", "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.004304", "end": "2025-12-16 14:40:14.367392", "msg": "", "rc": 0, "start": "2025-12-16 14:40:14.363088", "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.004758", "end": "2025-12-16 14:40:14.374042", "msg": "", "rc": 0, "start": "2025-12-16 14:40:14.369284", "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.004617", "end": "2025-12-16 14:40:14.410931", "msg": "", "rc": 0, "start": "2025-12-16 14:40:14.406314", "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.005461", "end": "2025-12-16 14:40:14.421029", "msg": "", "rc": 0, "start": "2025-12-16 14:40:14.415568", "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.005228", "end": "2025-12-16 14:39:49.409238", "msg": "", "rc": 0, "start": "2025-12-16 14:39:49.404010", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005140", "end": "2025-12-16 14:39:43.285967", "msg": "", "rc": 0, "start": "2025-12-16 14:39:43.280827", "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.010631", "end": "2025-12-16 14:40:15.116075", "msg": "", "rc": 0, "start": "2025-12-16 14:40:15.105444", "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.011779", "end": "2025-12-16 14:40:15.158565", "msg": "", "rc": 0, "start": "2025-12-16 14:40:15.146786", "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-16 14:40:15.300855", "msg": "", "rc": 0, "start": "2025-12-16 14:40:15.294818", "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.005502", "end": "2025-12-16 14:39:46.452849", "msg": "", "rc": 0, "start": "2025-12-16 14:39:46.447347", "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.005454", "end": "2025-12-16 11:40:15.613245", "msg": "", "rc": 0, "start": "2025-12-16 11:40:15.607791", "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.005380", "end": "2025-12-16 14:39:52.824792", "msg": "", "rc": 0, "start": "2025-12-16 14:39:52.819412", "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.005389", "end": "2025-12-16 14:40:15.721391", "msg": "", "rc": 0, "start": "2025-12-16 14:40:15.716002", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018928", "end": "2025-12-16 14:40:16.425112", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.406184", "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.025439", "end": "2025-12-16 14:40:15.734550", "msg": "", "rc": 0, "start": "2025-12-16 14:40:15.709111", "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.004474", "end": "2025-12-16 14:40:16.271285", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.266811", "stderr": "", "stderr_lines": [], "stdout": "86.2%", "stdout_lines": ["86.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.004180", "end": "2025-12-16 14:40:16.277488", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.273308", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004856", "end": "2025-12-16 14:40:16.295660", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.290804", "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.005232", "end": "2025-12-16 14:40:16.314929", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.309697", "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.005457", "end": "2025-12-16 14:40:16.335322", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.329865", "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.005716", "end": "2025-12-16 14:39:51.337849", "msg": "", "rc": 0, "start": "2025-12-16 14:39:51.332133", "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.005400", "end": "2025-12-16 14:39:45.265082", "msg": "", "rc": 0, "start": "2025-12-16 14:39:45.259682", "stderr": "", "stderr_lines": [], "stdout": "69.5%", "stdout_lines": ["69.5%"]}
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.010990", "end": "2025-12-16 14:40:16.964141", "msg": "", "rc": 0, "start": "2025-12-16 14:40:16.953151", "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.012016", "end": "2025-12-16 14:40:17.026228", "msg": "", "rc": 0, "start": "2025-12-16 14:40:17.014212", "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.005767", "end": "2025-12-16 14:40:17.263018", "msg": "", "rc": 0, "start": "2025-12-16 14:40:17.257251", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.003673", "end": "2025-12-16 14:39:54.610838", "msg": "", "rc": 0, "start": "2025-12-16 14:39:54.607165", "stderr": "", "stderr_lines": [], "stdout": "57.7%", "stdout_lines": ["57.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.005573", "end": "2025-12-16 11:40:17.486526", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:40:17.480953", "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.004658", "end": "2025-12-16 14:39:48.459065", "msg": "", "rc": 0, "start": "2025-12-16 14:39:48.454407", "stderr": "", "stderr_lines": [], "stdout": "26.4%", "stdout_lines": ["26.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.005358", "end": "2025-12-16 14:40:17.692647", "msg": "", "rc": 0, "start": "2025-12-16 14:40:17.687289", "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.008904", "end": "2025-12-16 14:40:18.465623", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.456719", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025678", "end": "2025-12-16 14:40:17.668986", "msg": "", "rc": 0, "start": "2025-12-16 14:40:17.643308", "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.005291", "end": "2025-12-16 14:40:18.217998", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.212707", "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.005289", "end": "2025-12-16 14:40:18.234623", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.229334", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005561", "end": "2025-12-16 14:40:18.243079", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.237518", "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.003408", "end": "2025-12-16 14:40:18.255987", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.252579", "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.007603", "end": "2025-12-16 14:40:18.282744", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.275141", "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.002536", "end": "2025-12-16 14:39:53.263358", "msg": "", "rc": 0, "start": "2025-12-16 14:39:53.260822", "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.003143", "end": "2025-12-16 14:39:47.184556", "msg": "", "rc": 0, "start": "2025-12-16 14:39:47.181413", "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.012055", "end": "2025-12-16 14:40:18.907618", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.895563", "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.013714", "end": "2025-12-16 14:40:18.960451", "msg": "", "rc": 0, "start": "2025-12-16 14:40:18.946737", "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.003330", "end": "2025-12-16 14:40:19.178870", "msg": "", "rc": 0, "start": "2025-12-16 14:40:19.175540", "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.002875", "end": "2025-12-16 14:39:56.570951", "msg": "", "rc": 0, "start": "2025-12-16 14:39:56.568076", "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.004291", "end": "2025-12-16 11:40:19.431232", "msg": "", "rc": 0, "start": "2025-12-16 11:40:19.426941", "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.002969", "end": "2025-12-16 14:39:50.395152", "msg": "", "rc": 0, "start": "2025-12-16 14:39:50.392183", "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.002935", "end": "2025-12-16 14:40:19.590933", "msg": "", "rc": 0, "start": "2025-12-16 14:40:19.587998", "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.004115", "end": "2025-12-16 14:40:20.479759", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.475644", "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.028581", "end": "2025-12-16 14:40:19.619660", "msg": "", "rc": 0, "start": "2025-12-16 14:40:19.591079", "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.004168", "end": "2025-12-16 14:40:20.169358", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.165190", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.004082", "end": "2025-12-16 14:40:20.180560", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.176478", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
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.004348", "end": "2025-12-16 14:40:20.221259", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.216911", "stderr": "", "stderr_lines": [], "stdout": "0.66", "stdout_lines": ["0.66"]}
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.005106", "end": "2025-12-16 14:40:20.213852", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.208746", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005605", "end": "2025-12-16 14:40:20.238857", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.233252", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004469", "end": "2025-12-16 14:39:55.233742", "msg": "", "rc": 0, "start": "2025-12-16 14:39:55.229273", "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.005006", "end": "2025-12-16 14:39:49.110543", "msg": "", "rc": 0, "start": "2025-12-16 14:39:49.105537", "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.010378", "end": "2025-12-16 14:40:20.980994", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.970616", "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.011469", "end": "2025-12-16 14:40:20.983237", "msg": "", "rc": 0, "start": "2025-12-16 14:40:20.971768", "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.005646", "end": "2025-12-16 14:40:21.158831", "msg": "", "rc": 0, "start": "2025-12-16 14:40:21.153185", "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.005298", "end": "2025-12-16 14:39:52.287862", "msg": "", "rc": 0, "start": "2025-12-16 14:39:52.282564", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.008435", "end": "2025-12-16 11:40:21.456191", "msg": "", "rc": 0, "start": "2025-12-16 11:40:21.447756", "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.004300", "end": "2025-12-16 14:39:58.635675", "msg": "", "rc": 0, "start": "2025-12-16 14:39:58.631375", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.005244", "end": "2025-12-16 14:40:21.588549", "msg": "", "rc": 0, "start": "2025-12-16 14:40:21.583305", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.007098", "end": "2025-12-16 14:40:22.472554", "msg": "", "rc": 0, "start": "2025-12-16 14:40:22.465456", "stderr": "", "stderr_lines": [], "stdout": "1.53", "stdout_lines": ["1.53"]}
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.023825", "end": "2025-12-16 14:40:21.561208", "msg": "", "rc": 0, "start": "2025-12-16 14:40:21.537383", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 21 days, 1:31, 1 user, load average: 0.11, 0.18, 0.18\nDisk Usage: 23%\nMemory Usage: 86.2%\nCPU Load: 0.17\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 2 days, 4:12, 1 user, load average: 0.22, 0.17, 0.18\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.34\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 21 days, 1:51, 1 user, load average: 0.50, 0.69, 0.72\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.66\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 21 days, 3:04, 1 user, load average: 0.67, 0.70, 0.75\nDisk Usage: 14%\nMemory Usage: 59.3%\nCPU Load: 0.65\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 21 days, 3:50, 1 user, load average: 0.07, 0.06, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:13 up 14 days, 4:06, 1 user, load average: 0.18, 0.12, 0.09\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.25\nCPU Temp: 36.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 193 days, 6:13, 1 user, load average: 0.26, 0.20, 0.18\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.32\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:12 up 193 days, 6:13, 1 user, load average: 0.24, 0.18, 0.12\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.22\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:39:47 up 10 days, 2:29, 0 user, load average: 0.11, 0.08, 0.09\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:39:41 up 16 days, 22:41, 0 user, load average: 0.07, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.5%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:13 up 2 days, 4:11, 1 user, load average: 0.00, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:39:50 up 16 days, 3:55, 0 user, load average: 0.21, 0.18, 0.20\nDisk Usage: 75%\nMemory Usage: 57.7%\nCPU Load: 0.19\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:40AM up 21 days, 1:30, 1 user, load averages: 0.22, 0.24, 0.20\nDisk Usage: 10%\nMemory Usage: \nCPU Load: \nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:39:44 up 19 days, 17:34, 0 user, load average: 0.26, 0.33, 0.43\nDisk Usage: 28%\nMemory Usage: 26.4%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [jump.point.home] => {
"msg": "═══════════════════════════════════════\nHost: jump.point.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:13 up 2 days, 4:11, 1 user, load average: 0.09, 0.15, 0.08\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:40:14 up 16:07, 1 user, load average: 1.44, 1.21, 1.17\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.53\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-16T19:40:23.356003+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `13ea038b643a4088913113483f8d4bbf` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:45:00.000855+00:00 |
| **Fin** | 2025-12-16T19:45:21.731667+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: [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.003091", "end": "2025-12-16 14:45:11.587830", "msg": "", "rc": 0, "start": "2025-12-16 14:45:11.584739", "stderr": "", "stderr_lines": [], "stdout": " 14:45:11 up 21 days, 1:36, 1 user, load average: 0.16, 0.20, 0.18", "stdout_lines": [" 14:45:11 up 21 days, 1:36, 1 user, load average: 0.16, 0.20, 0.18"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003887", "end": "2025-12-16 14:45:11.597365", "msg": "", "rc": 0, "start": "2025-12-16 14:45:11.593478", "stderr": "", "stderr_lines": [], "stdout": " 14:45:11 up 21 days, 3:55, 1 user, load average: 0.21, 0.07, 0.02", "stdout_lines": [" 14:45:11 up 21 days, 3:55, 1 user, load average: 0.21, 0.07, 0.02"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003182", "end": "2025-12-16 14:45:11.619950", "msg": "", "rc": 0, "start": "2025-12-16 14:45:11.616768", "stderr": "", "stderr_lines": [], "stdout": " 14:45:11 up 21 days, 1:56, 1 user, load average: 0.94, 0.82, 0.77", "stdout_lines": [" 14:45:11 up 21 days, 1:56, 1 user, load average: 0.94, 0.82, 0.77"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003932", "end": "2025-12-16 14:45:11.618275", "msg": "", "rc": 0, "start": "2025-12-16 14:45:11.614343", "stderr": "", "stderr_lines": [], "stdout": " 14:45:11 up 21 days, 3:09, 1 user, load average: 0.70, 0.63, 0.71", "stdout_lines": [" 14:45:11 up 21 days, 3:09, 1 user, load average: 0.70, 0.63, 0.71"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002797", "end": "2025-12-16 14:45:11.629048", "msg": "", "rc": 0, "start": "2025-12-16 14:45:11.626251", "stderr": "", "stderr_lines": [], "stdout": " 14:45:11 up 2 days, 4:17, 1 user, load average: 0.45, 0.25, 0.20", "stdout_lines": [" 14:45:11 up 2 days, 4:17, 1 user, load average: 0.45, 0.25, 0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004290", "end": "2025-12-16 14:44:46.629855", "msg": "", "rc": 0, "start": "2025-12-16 14:44:46.625565", "stderr": "", "stderr_lines": [], "stdout": " 14:44:46 up 10 days, 2:34, 0 user, load average: 0.09, 0.07, 0.09", "stdout_lines": [" 14:44:46 up 10 days, 2:34, 0 user, load average: 0.09, 0.07, 0.09"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003593", "end": "2025-12-16 14:44:40.492670", "msg": "", "rc": 0, "start": "2025-12-16 14:44:40.489077", "stderr": "", "stderr_lines": [], "stdout": " 14:44:40 up 16 days, 22:46, 0 user, load average: 0.09, 0.08, 0.03", "stdout_lines": [" 14:44:40 up 16 days, 22:46, 0 user, load average: 0.09, 0.08, 0.03"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008607", "end": "2025-12-16 14:45:12.275231", "msg": "", "rc": 0, "start": "2025-12-16 14:45:12.266624", "stderr": "", "stderr_lines": [], "stdout": " 14:45:12 up 193 days, 6:18, 1 user, load average: 0.31, 0.20, 0.13", "stdout_lines": [" 14:45:12 up 193 days, 6:18, 1 user, load average: 0.31, 0.20, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009288", "end": "2025-12-16 14:45:12.308019", "msg": "", "rc": 0, "start": "2025-12-16 14:45:12.298731", "stderr": "", "stderr_lines": [], "stdout": " 14:45:12 up 193 days, 6:18, 1 user, load average: 0.36, 0.23, 0.19", "stdout_lines": [" 14:45:12 up 193 days, 6:18, 1 user, load average: 0.36, 0.23, 0.19"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004654", "end": "2025-12-16 14:45:12.528754", "msg": "", "rc": 0, "start": "2025-12-16 14:45:12.524100", "stderr": "", "stderr_lines": [], "stdout": " 14:45:12 up 2 days, 4:16, 1 user, load average: 0.07, 0.02, 0.00", "stdout_lines": [" 14:45:12 up 2 days, 4:16, 1 user, load average: 0.07, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003116", "end": "2025-12-16 14:44:43.646889", "msg": "", "rc": 0, "start": "2025-12-16 14:44:43.643773", "stderr": "", "stderr_lines": [], "stdout": " 14:44:43 up 19 days, 17:39, 0 user, load average: 0.30, 0.34, 0.41", "stdout_lines": [" 14:44:43 up 19 days, 17:39, 0 user, load average: 0.30, 0.34, 0.41"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002831", "end": "2025-12-16 14:44:49.935954", "msg": "", "rc": 0, "start": "2025-12-16 14:44:49.933123", "stderr": "", "stderr_lines": [], "stdout": " 14:44:49 up 16 days, 4:00, 0 user, load average: 0.17, 0.19, 0.18", "stdout_lines": [" 14:44:49 up 16 days, 4:00, 0 user, load average: 0.17, 0.19, 0.18"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004238", "end": "2025-12-16 11:45:12.772003", "msg": "", "rc": 0, "start": "2025-12-16 11:45:12.767765", "stderr": "", "stderr_lines": [], "stdout": "11:45AM up 21 days, 1:35, 1 user, load averages: 0.16, 0.21, 0.19", "stdout_lines": ["11:45AM up 21 days, 1:35, 1 user, load averages: 0.16, 0.21, 0.19"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003784", "end": "2025-12-16 14:45:12.961616", "msg": "", "rc": 0, "start": "2025-12-16 14:45:12.957832", "stderr": "", "stderr_lines": [], "stdout": " 14:45:12 up 2 days, 4:16, 1 user, load average: 0.00, 0.06, 0.06", "stdout_lines": [" 14:45:12 up 2 days, 4:16, 1 user, load average: 0.00, 0.06, 0.06"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008824", "end": "2025-12-16 14:45:13.887626", "msg": "", "rc": 0, "start": "2025-12-16 14:45:13.878802", "stderr": "", "stderr_lines": [], "stdout": " 14:45:13 up 16:12, 1 user, load average: 1.37, 1.20, 1.18", "stdout_lines": [" 14:45:13 up 16:12, 1 user, load average: 1.37, 1.20, 1.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019436", "end": "2025-12-16 14:45:12.973433", "msg": "", "rc": 0, "start": "2025-12-16 14:45:12.953997", "stderr": "", "stderr_lines": [], "stdout": " 14:45:12 up 14 days, 4:11, 1 user, load average: 0.23, 0.11, 0.09", "stdout_lines": [" 14:45:12 up 14 days, 4:11, 1 user, load average: 0.23, 0.11, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005248", "end": "2025-12-16 14:45:13.491706", "msg": "", "rc": 0, "start": "2025-12-16 14:45:13.486458", "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.004065", "end": "2025-12-16 14:45:13.510523", "msg": "", "rc": 0, "start": "2025-12-16 14:45:13.506458", "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.005141", "end": "2025-12-16 14:45:13.531340", "msg": "", "rc": 0, "start": "2025-12-16 14:45:13.526199", "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.004775", "end": "2025-12-16 14:45:13.533936", "msg": "", "rc": 0, "start": "2025-12-16 14:45:13.529161", "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.005633", "end": "2025-12-16 14:45:13.555860", "msg": "", "rc": 0, "start": "2025-12-16 14:45:13.550227", "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-16 14:44:48.535286", "msg": "", "rc": 0, "start": "2025-12-16 14:44:48.530223", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005312", "end": "2025-12-16 14:44:42.416528", "msg": "", "rc": 0, "start": "2025-12-16 14:44:42.411216", "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-16 14:45:14.247996", "msg": "", "rc": 0, "start": "2025-12-16 14:45:14.237262", "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.011661", "end": "2025-12-16 14:45:14.292394", "msg": "", "rc": 0, "start": "2025-12-16 14:45:14.280733", "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.006016", "end": "2025-12-16 14:45:14.444494", "msg": "", "rc": 0, "start": "2025-12-16 14:45:14.438478", "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.005369", "end": "2025-12-16 14:44:45.611722", "msg": "", "rc": 0, "start": "2025-12-16 14:44:45.606353", "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.005748", "end": "2025-12-16 11:45:14.743026", "msg": "", "rc": 0, "start": "2025-12-16 11:45:14.737278", "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.004722", "end": "2025-12-16 14:44:51.910303", "msg": "", "rc": 0, "start": "2025-12-16 14:44:51.905581", "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.005529", "end": "2025-12-16 14:45:14.853735", "msg": "", "rc": 0, "start": "2025-12-16 14:45:14.848206", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018671", "end": "2025-12-16 14:45:15.916780", "msg": "", "rc": 0, "start": "2025-12-16 14:45:15.898109", "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.025292", "end": "2025-12-16 14:45:14.883689", "msg": "", "rc": 0, "start": "2025-12-16 14:45:14.858397", "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.004400", "end": "2025-12-16 14:45:15.413605", "msg": "", "rc": 0, "start": "2025-12-16 14:45:15.409205", "stderr": "", "stderr_lines": [], "stdout": "86.1%", "stdout_lines": ["86.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.004521", "end": "2025-12-16 14:45:15.428093", "msg": "", "rc": 0, "start": "2025-12-16 14:45:15.423572", "stderr": "", "stderr_lines": [], "stdout": "49.3%", "stdout_lines": ["49.3%"]}
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.004180", "end": "2025-12-16 14:45:15.432331", "msg": "", "rc": 0, "start": "2025-12-16 14:45:15.428151", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004789", "end": "2025-12-16 14:45:15.467143", "msg": "", "rc": 0, "start": "2025-12-16 14:45:15.462354", "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.007018", "end": "2025-12-16 14:45:15.501363", "msg": "", "rc": 0, "start": "2025-12-16 14:45:15.494345", "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.003702", "end": "2025-12-16 14:44:50.464427", "msg": "", "rc": 0, "start": "2025-12-16 14:44:50.460725", "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.004414", "end": "2025-12-16 14:44:44.365837", "msg": "", "rc": 0, "start": "2025-12-16 14:44:44.361423", "stderr": "", "stderr_lines": [], "stdout": "69.5%", "stdout_lines": ["69.5%"]}
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.010992", "end": "2025-12-16 14:45:16.108189", "msg": "", "rc": 0, "start": "2025-12-16 14:45:16.097197", "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.012504", "end": "2025-12-16 14:45:16.153108", "msg": "", "rc": 0, "start": "2025-12-16 14:45:16.140604", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005954", "end": "2025-12-16 14:45:16.395824", "msg": "", "rc": 0, "start": "2025-12-16 14:45:16.389870", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004264", "end": "2025-12-16 14:44:47.524706", "msg": "", "rc": 0, "start": "2025-12-16 14:44:47.520442", "stderr": "", "stderr_lines": [], "stdout": "27.5%", "stdout_lines": ["27.5%"]}
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.003487", "end": "2025-12-16 14:44:53.766544", "msg": "", "rc": 0, "start": "2025-12-16 14:44:53.763057", "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.005238", "end": "2025-12-16 11:45:16.617294", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:45:16.612056", "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.005395", "end": "2025-12-16 14:45:16.824232", "msg": "", "rc": 0, "start": "2025-12-16 14:45:16.818837", "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.008035", "end": "2025-12-16 14:45:17.909221", "msg": "", "rc": 0, "start": "2025-12-16 14:45:17.901186", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025967", "end": "2025-12-16 14:45:16.816410", "msg": "", "rc": 0, "start": "2025-12-16 14:45:16.790443", "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.005120", "end": "2025-12-16 14:45:17.336453", "msg": "", "rc": 0, "start": "2025-12-16 14:45:17.331333", "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.004857", "end": "2025-12-16 14:45:17.366568", "msg": "", "rc": 0, "start": "2025-12-16 14:45:17.361711", "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.005626", "end": "2025-12-16 14:45:17.369586", "msg": "", "rc": 0, "start": "2025-12-16 14:45:17.363960", "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.003342", "end": "2025-12-16 14:45:17.393152", "msg": "", "rc": 0, "start": "2025-12-16 14:45:17.389810", "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.006513", "end": "2025-12-16 14:45:17.413465", "msg": "", "rc": 0, "start": "2025-12-16 14:45:17.406952", "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.002661", "end": "2025-12-16 14:44:52.404582", "msg": "", "rc": 0, "start": "2025-12-16 14:44:52.401921", "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.003173", "end": "2025-12-16 14:44:46.306764", "msg": "", "rc": 0, "start": "2025-12-16 14:44:46.303591", "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.011756", "end": "2025-12-16 14:45:18.072652", "msg": "", "rc": 0, "start": "2025-12-16 14:45:18.060896", "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.012970", "end": "2025-12-16 14:45:18.094281", "msg": "", "rc": 0, "start": "2025-12-16 14:45:18.081311", "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.003453", "end": "2025-12-16 14:45:18.337418", "msg": "", "rc": 0, "start": "2025-12-16 14:45:18.333965", "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.004389", "end": "2025-12-16 11:45:18.550746", "msg": "", "rc": 0, "start": "2025-12-16 11:45:18.546357", "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.003548", "end": "2025-12-16 14:44:49.506269", "msg": "", "rc": 0, "start": "2025-12-16 14:44:49.502721", "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.002794", "end": "2025-12-16 14:44:55.734873", "msg": "", "rc": 0, "start": "2025-12-16 14:44:55.732079", "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.003160", "end": "2025-12-16 14:45:18.753824", "msg": "", "rc": 0, "start": "2025-12-16 14:45:18.750664", "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.004063", "end": "2025-12-16 14:45:18.896030", "msg": "", "rc": 0, "start": "2025-12-16 14:45:18.891967", "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.028711", "end": "2025-12-16 14:45:18.731766", "msg": "", "rc": 0, "start": "2025-12-16 14:45:18.703055", "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.004269", "end": "2025-12-16 14:45:19.276212", "msg": "", "rc": 0, "start": "2025-12-16 14:45:19.271943", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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.003972", "end": "2025-12-16 14:45:19.281317", "msg": "", "rc": 0, "start": "2025-12-16 14:45:19.277345", "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.004675", "end": "2025-12-16 14:45:19.303747", "msg": "", "rc": 0, "start": "2025-12-16 14:45:19.299072", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.005331", "end": "2025-12-16 14:45:19.318868", "msg": "", "rc": 0, "start": "2025-12-16 14:45:19.313537", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.005583", "end": "2025-12-16 14:45:19.340171", "msg": "", "rc": 0, "start": "2025-12-16 14:45:19.334588", "stderr": "", "stderr_lines": [], "stdout": "0.67", "stdout_lines": ["0.67"]}
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.004313", "end": "2025-12-16 14:44:54.352777", "msg": "", "rc": 0, "start": "2025-12-16 14:44:54.348464", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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.005542", "end": "2025-12-16 14:44:48.237885", "msg": "", "rc": 0, "start": "2025-12-16 14:44:48.232343", "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.010245", "end": "2025-12-16 14:45:20.076167", "msg": "", "rc": 0, "start": "2025-12-16 14:45:20.065922", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
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.011183", "end": "2025-12-16 14:45:20.071708", "msg": "", "rc": 0, "start": "2025-12-16 14:45:20.060525", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.005657", "end": "2025-12-16 14:45:20.282587", "msg": "", "rc": 0, "start": "2025-12-16 14:45:20.276930", "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.004980", "end": "2025-12-16 14:44:51.435245", "msg": "", "rc": 0, "start": "2025-12-16 14:44:51.430265", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.006237", "end": "2025-12-16 11:45:20.538463", "msg": "", "rc": 0, "start": "2025-12-16 11:45:20.532226", "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.004324", "end": "2025-12-16 14:44:57.730966", "msg": "", "rc": 0, "start": "2025-12-16 14:44:57.726642", "stderr": "", "stderr_lines": [], "stdout": "0.16", "stdout_lines": ["0.16"]}
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-16 14:45:20.703483", "msg": "", "rc": 0, "start": "2025-12-16 14:45:20.698154", "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.013621", "end": "2025-12-16 14:45:20.918151", "msg": "", "rc": 0, "start": "2025-12-16 14:45:20.904530", "stderr": "", "stderr_lines": [], "stdout": "1.46", "stdout_lines": ["1.46"]}
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.024431", "end": "2025-12-16 14:45:20.668659", "msg": "", "rc": 0, "start": "2025-12-16 14:45:20.644228", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:11 up 2 days, 4:17, 1 user, load average: 0.45, 0.25, 0.20\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.38\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:11 up 21 days, 1:36, 1 user, load average: 0.16, 0.20, 0.18\nDisk Usage: 23%\nMemory Usage: 86.1%\nCPU Load: 0.14\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:11 up 21 days, 1:56, 1 user, load average: 0.94, 0.82, 0.77\nDisk Usage: 14%\nMemory Usage: 49.3%\nCPU Load: 0.80\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:11 up 21 days, 3:09, 1 user, load average: 0.70, 0.63, 0.71\nDisk Usage: 14%\nMemory Usage: 59.2%\nCPU Load: 0.67\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:11 up 21 days, 3:55, 1 user, load average: 0.21, 0.07, 0.02\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:12 up 193 days, 6:18, 1 user, load average: 0.36, 0.23, 0.19\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.33\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:12 up 14 days, 4:11, 1 user, load average: 0.23, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.22\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:12 up 193 days, 6:18, 1 user, load average: 0.31, 0.20, 0.13\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.34\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:44:46 up 10 days, 2:34, 0 user, load average: 0.09, 0.07, 0.09\nDisk Usage: 47%\nMemory Usage: 71.2%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:44:40 up 16 days, 22:46, 0 user, load average: 0.09, 0.08, 0.03\nDisk Usage: 24%\nMemory Usage: 69.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:12 up 2 days, 4:16, 1 user, load average: 0.07, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:44:43 up 19 days, 17:39, 0 user, load average: 0.30, 0.34, 0.41\nDisk Usage: 28%\nMemory Usage: 27.5%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:44:49 up 16 days, 4:00, 0 user, load average: 0.17, 0.19, 0.18\nDisk Usage: 75%\nMemory Usage: 60.0%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:45AM up 21 days, 1:35, 1 user, load averages: 0.16, 0.21, 0.19\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: 14:45:12 up 2 days, 4:16, 1 user, load average: 0.00, 0.06, 0.06\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:45:13 up 16:12, 1 user, load average: 1.37, 1.20, 1.18\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T19:45:21.770039+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `5c1f9c889d964253b70f6142e7f54283` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:50:00.002691+00:00 |
| **Fin** | 2025-12-16T19:50:21.965032+00:00 |
| **Durée** | 22.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: [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: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003069", "end": "2025-12-16 14:50:11.497783", "msg": "", "rc": 0, "start": "2025-12-16 14:50:11.494714", "stderr": "", "stderr_lines": [], "stdout": " 14:50:11 up 21 days, 1:41, 1 user, load average: 0.23, 0.21, 0.18", "stdout_lines": [" 14:50:11 up 21 days, 1:41, 1 user, load average: 0.23, 0.21, 0.18"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003720", "end": "2025-12-16 14:50:11.506357", "msg": "", "rc": 0, "start": "2025-12-16 14:50:11.502637", "stderr": "", "stderr_lines": [], "stdout": " 14:50:11 up 21 days, 4:00, 1 user, load average: 0.02, 0.05, 0.00", "stdout_lines": [" 14:50:11 up 21 days, 4:00, 1 user, load average: 0.02, 0.05, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003216", "end": "2025-12-16 14:50:11.515826", "msg": "", "rc": 0, "start": "2025-12-16 14:50:11.512610", "stderr": "", "stderr_lines": [], "stdout": " 14:50:11 up 21 days, 2:01, 1 user, load average: 0.28, 0.52, 0.65", "stdout_lines": [" 14:50:11 up 21 days, 2:01, 1 user, load average: 0.28, 0.52, 0.65"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003747", "end": "2025-12-16 14:50:11.521975", "msg": "", "rc": 0, "start": "2025-12-16 14:50:11.518228", "stderr": "", "stderr_lines": [], "stdout": " 14:50:11 up 21 days, 3:14, 1 user, load average: 0.45, 0.59, 0.68", "stdout_lines": [" 14:50:11 up 21 days, 3:14, 1 user, load average: 0.45, 0.59, 0.68"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002868", "end": "2025-12-16 14:50:11.537549", "msg": "", "rc": 0, "start": "2025-12-16 14:50:11.534681", "stderr": "", "stderr_lines": [], "stdout": " 14:50:11 up 2 days, 4:22, 1 user, load average: 0.05, 0.16, 0.17", "stdout_lines": [" 14:50:11 up 2 days, 4:22, 1 user, load average: 0.05, 0.16, 0.17"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002977", "end": "2025-12-16 14:49:46.528331", "msg": "", "rc": 0, "start": "2025-12-16 14:49:46.525354", "stderr": "", "stderr_lines": [], "stdout": " 14:49:46 up 10 days, 2:39, 0 user, load average: 0.08, 0.06, 0.08", "stdout_lines": [" 14:49:46 up 10 days, 2:39, 0 user, load average: 0.08, 0.06, 0.08"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003280", "end": "2025-12-16 14:49:40.400851", "msg": "", "rc": 0, "start": "2025-12-16 14:49:40.397571", "stderr": "", "stderr_lines": [], "stdout": " 14:49:40 up 16 days, 22:51, 0 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 14:49:40 up 16 days, 22:51, 0 user, load average: 0.00, 0.03, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008633", "end": "2025-12-16 14:50:12.191987", "msg": "", "rc": 0, "start": "2025-12-16 14:50:12.183354", "stderr": "", "stderr_lines": [], "stdout": " 14:50:12 up 193 days, 6:23, 1 user, load average: 0.80, 0.36, 0.19", "stdout_lines": [" 14:50:12 up 193 days, 6:23, 1 user, load average: 0.80, 0.36, 0.19"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009397", "end": "2025-12-16 14:50:12.226605", "msg": "", "rc": 0, "start": "2025-12-16 14:50:12.217208", "stderr": "", "stderr_lines": [], "stdout": " 14:50:12 up 193 days, 6:23, 1 user, load average: 0.48, 0.28, 0.20", "stdout_lines": [" 14:50:12 up 193 days, 6:23, 1 user, load average: 0.48, 0.28, 0.20"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005062", "end": "2025-12-16 14:50:12.453120", "msg": "", "rc": 0, "start": "2025-12-16 14:50:12.448058", "stderr": "", "stderr_lines": [], "stdout": " 14:50:12 up 2 days, 4:21, 1 user, load average: 0.05, 0.06, 0.01", "stdout_lines": [" 14:50:12 up 2 days, 4:21, 1 user, load average: 0.05, 0.06, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003330", "end": "2025-12-16 14:49:43.570540", "msg": "", "rc": 0, "start": "2025-12-16 14:49:43.567210", "stderr": "", "stderr_lines": [], "stdout": " 14:49:43 up 19 days, 17:44, 0 user, load average: 1.20, 0.74, 0.54", "stdout_lines": [" 14:49:43 up 19 days, 17:44, 0 user, load average: 1.20, 0.74, 0.54"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004473", "end": "2025-12-16 11:50:12.687729", "msg": "", "rc": 0, "start": "2025-12-16 11:50:12.683256", "stderr": "", "stderr_lines": [], "stdout": "11:50AM up 21 days, 1:40, 1 user, load averages: 0.18, 0.17, 0.17", "stdout_lines": ["11:50AM up 21 days, 1:40, 1 user, load averages: 0.18, 0.17, 0.17"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004467", "end": "2025-12-16 14:49:49.845730", "msg": "", "rc": 0, "start": "2025-12-16 14:49:49.841263", "stderr": "", "stderr_lines": [], "stdout": " 14:49:49 up 16 days, 4:05, 0 user, load average: 0.08, 0.12, 0.15", "stdout_lines": [" 14:49:49 up 16 days, 4:05, 0 user, load average: 0.08, 0.12, 0.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003758", "end": "2025-12-16 14:50:12.896393", "msg": "", "rc": 0, "start": "2025-12-16 14:50:12.892635", "stderr": "", "stderr_lines": [], "stdout": " 14:50:12 up 2 days, 4:21, 1 user, load average: 0.09, 0.11, 0.08", "stdout_lines": [" 14:50:12 up 2 days, 4:21, 1 user, load average: 0.09, 0.11, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009685", "end": "2025-12-16 14:50:13.138792", "msg": "", "rc": 0, "start": "2025-12-16 14:50:13.129107", "stderr": "", "stderr_lines": [], "stdout": " 14:50:13 up 16:17, 1 user, load average: 1.29, 1.19, 1.18", "stdout_lines": [" 14:50:13 up 16:17, 1 user, load average: 1.29, 1.19, 1.18"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019675", "end": "2025-12-16 14:50:12.878921", "msg": "", "rc": 0, "start": "2025-12-16 14:50:12.859246", "stderr": "", "stderr_lines": [], "stdout": " 14:50:12 up 14 days, 4:16, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 14:50:12 up 14 days, 4:16, 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.004279", "end": "2025-12-16 14:50:13.399947", "msg": "", "rc": 0, "start": "2025-12-16 14:50:13.395668", "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.004007", "end": "2025-12-16 14:50:13.415055", "msg": "", "rc": 0, "start": "2025-12-16 14:50:13.411048", "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.004883", "end": "2025-12-16 14:50:13.429444", "msg": "", "rc": 0, "start": "2025-12-16 14:50:13.424561", "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.004614", "end": "2025-12-16 14:50:13.437286", "msg": "", "rc": 0, "start": "2025-12-16 14:50:13.432672", "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.005417", "end": "2025-12-16 14:50:13.449039", "msg": "", "rc": 0, "start": "2025-12-16 14:50:13.443622", "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.005013", "end": "2025-12-16 14:49:48.460368", "msg": "", "rc": 0, "start": "2025-12-16 14:49:48.455355", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005545", "end": "2025-12-16 14:49:42.320031", "msg": "", "rc": 0, "start": "2025-12-16 14:49:42.314486", "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.010445", "end": "2025-12-16 14:50:14.160444", "msg": "", "rc": 0, "start": "2025-12-16 14:50:14.149999", "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.011497", "end": "2025-12-16 14:50:14.166512", "msg": "", "rc": 0, "start": "2025-12-16 14:50:14.155015", "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.005821", "end": "2025-12-16 14:50:14.370287", "msg": "", "rc": 0, "start": "2025-12-16 14:50:14.364466", "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.005761", "end": "2025-12-16 14:49:45.487439", "msg": "", "rc": 0, "start": "2025-12-16 14:49:45.481678", "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.005468", "end": "2025-12-16 11:50:14.634402", "msg": "", "rc": 0, "start": "2025-12-16 11:50:14.628934", "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.004826", "end": "2025-12-16 14:49:51.833269", "msg": "", "rc": 0, "start": "2025-12-16 14:49:51.828443", "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.005328", "end": "2025-12-16 14:50:14.801615", "msg": "", "rc": 0, "start": "2025-12-16 14:50:14.796287", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018878", "end": "2025-12-16 14:50:15.129413", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.110535", "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.025567", "end": "2025-12-16 14:50:14.797309", "msg": "", "rc": 0, "start": "2025-12-16 14:50:14.771742", "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.005387", "end": "2025-12-16 14:50:15.319574", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.314187", "stderr": "", "stderr_lines": [], "stdout": "86.1%", "stdout_lines": ["86.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.004380", "end": "2025-12-16 14:50:15.329752", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.325372", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004841", "end": "2025-12-16 14:50:15.347261", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.342420", "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.004726", "end": "2025-12-16 14:50:15.368809", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.364083", "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.005932", "end": "2025-12-16 14:50:15.379265", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.373333", "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.003745", "end": "2025-12-16 14:49:50.361319", "msg": "", "rc": 0, "start": "2025-12-16 14:49:50.357574", "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.004179", "end": "2025-12-16 14:49:44.218322", "msg": "", "rc": 0, "start": "2025-12-16 14:49:44.214143", "stderr": "", "stderr_lines": [], "stdout": "69.5%", "stdout_lines": ["69.5%"]}
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.011191", "end": "2025-12-16 14:50:16.005516", "msg": "", "rc": 0, "start": "2025-12-16 14:50:15.994325", "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.011990", "end": "2025-12-16 14:50:16.031415", "msg": "", "rc": 0, "start": "2025-12-16 14:50:16.019425", "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.005770", "end": "2025-12-16 14:50:16.295307", "msg": "", "rc": 0, "start": "2025-12-16 14:50:16.289537", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004360", "end": "2025-12-16 14:49:47.404884", "msg": "", "rc": 0, "start": "2025-12-16 14:49:47.400524", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005388", "end": "2025-12-16 11:50:16.494088", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:50:16.488700", "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.004912", "end": "2025-12-16 14:49:53.669137", "msg": "", "rc": 0, "start": "2025-12-16 14:49:53.664225", "stderr": "", "stderr_lines": [], "stdout": "58.6%", "stdout_lines": ["58.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.005373", "end": "2025-12-16 14:50:16.712756", "msg": "", "rc": 0, "start": "2025-12-16 14:50:16.707383", "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.009300", "end": "2025-12-16 14:50:17.159991", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.150691", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.026065", "end": "2025-12-16 14:50:16.707257", "msg": "", "rc": 0, "start": "2025-12-16 14:50:16.681192", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.004848", "end": "2025-12-16 14:50:17.242176", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.237328", "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.005166", "end": "2025-12-16 14:50:17.245339", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.240173", "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.005596", "end": "2025-12-16 14:50:17.261934", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.256338", "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.003276", "end": "2025-12-16 14:50:17.288845", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.285569", "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.006650", "end": "2025-12-16 14:50:17.308678", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.302028", "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.002531", "end": "2025-12-16 14:49:52.312695", "msg": "", "rc": 0, "start": "2025-12-16 14:49:52.310164", "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.003169", "end": "2025-12-16 14:49:46.164826", "msg": "", "rc": 0, "start": "2025-12-16 14:49:46.161657", "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.011838", "end": "2025-12-16 14:50:17.947664", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.935826", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.013347", "end": "2025-12-16 14:50:17.983939", "msg": "", "rc": 0, "start": "2025-12-16 14:50:17.970592", "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.004157", "end": "2025-12-16 14:50:18.229580", "msg": "", "rc": 0, "start": "2025-12-16 14:50:18.225423", "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.002793", "end": "2025-12-16 14:49:49.356311", "msg": "", "rc": 0, "start": "2025-12-16 14:49:49.353518", "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-16 14:49:55.613609", "msg": "", "rc": 0, "start": "2025-12-16 14:49:55.611016", "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.004168", "end": "2025-12-16 11:50:18.451751", "msg": "", "rc": 0, "start": "2025-12-16 11:50:18.447583", "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.002943", "end": "2025-12-16 14:50:18.650940", "msg": "", "rc": 0, "start": "2025-12-16 14:50:18.647997", "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.004104", "end": "2025-12-16 14:50:19.136362", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.132258", "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.028237", "end": "2025-12-16 14:50:18.628903", "msg": "", "rc": 0, "start": "2025-12-16 14:50:18.600666", "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.004288", "end": "2025-12-16 14:50:19.142781", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.138493", "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.004201", "end": "2025-12-16 14:50:19.176971", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.172770", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.004711", "end": "2025-12-16 14:50:19.178471", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.173760", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
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.005731", "end": "2025-12-16 14:50:19.201597", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.195866", "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.005500", "end": "2025-12-16 14:50:19.217834", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.212334", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.004447", "end": "2025-12-16 14:49:54.203756", "msg": "", "rc": 0, "start": "2025-12-16 14:49:54.199309", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.006564", "end": "2025-12-16 14:49:48.130792", "msg": "", "rc": 0, "start": "2025-12-16 14:49:48.124228", "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.010349", "end": "2025-12-16 14:50:19.936956", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.926607", "stderr": "", "stderr_lines": [], "stdout": "0.84", "stdout_lines": ["0.84"]}
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.011206", "end": "2025-12-16 14:50:19.985502", "msg": "", "rc": 0, "start": "2025-12-16 14:50:19.974296", "stderr": "", "stderr_lines": [], "stdout": "0.56", "stdout_lines": ["0.56"]}
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.005646", "end": "2025-12-16 14:50:20.132028", "msg": "", "rc": 0, "start": "2025-12-16 14:50:20.126382", "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.005184", "end": "2025-12-16 14:49:51.334592", "msg": "", "rc": 0, "start": "2025-12-16 14:49:51.329408", "stderr": "", "stderr_lines": [], "stdout": "1.10", "stdout_lines": ["1.10"]}
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.004521", "end": "2025-12-16 14:49:57.595651", "msg": "", "rc": 0, "start": "2025-12-16 14:49:57.591130", "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.006029", "end": "2025-12-16 11:50:20.463088", "msg": "", "rc": 0, "start": "2025-12-16 11:50:20.457059", "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.005259", "end": "2025-12-16 14:50:20.549264", "msg": "", "rc": 0, "start": "2025-12-16 14:50:20.544005", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.08"]}
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.024471", "end": "2025-12-16 14:50:20.538361", "msg": "", "rc": 0, "start": "2025-12-16 14:50:20.513890", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.009046", "end": "2025-12-16 14:50:21.185070", "msg": "", "rc": 0, "start": "2025-12-16 14:50:21.176024", "stderr": "", "stderr_lines": [], "stdout": "1.56", "stdout_lines": ["1.56"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:11 up 2 days, 4:22, 1 user, load average: 0.05, 0.16, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.19\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:11 up 21 days, 1:41, 1 user, load average: 0.23, 0.21, 0.18\nDisk Usage: 23%\nMemory Usage: 86.1%\nCPU Load: 0.21\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:11 up 21 days, 2:01, 1 user, load average: 0.28, 0.52, 0.65\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.39\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:11 up 21 days, 3:14, 1 user, load average: 0.45, 0.59, 0.68\nDisk Usage: 14%\nMemory Usage: 59.2%\nCPU Load: 0.53\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:11 up 21 days, 4:00, 1 user, load average: 0.02, 0.05, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:12 up 14 days, 4:16, 1 user, load average: 0.22, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 20.4%\nCPU Load: 0.20\nCPU Temp: 36.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:12 up 193 days, 6:23, 1 user, load average: 0.48, 0.28, 0.20\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.56\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:12 up 193 days, 6:23, 1 user, load average: 0.80, 0.36, 0.19\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.84\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:49:46 up 10 days, 2:39, 0 user, load average: 0.08, 0.06, 0.08\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:49:40 up 16 days, 22:51, 0 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:50:12 up 2 days, 4:21, 1 user, load average: 0.05, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:49:43 up 19 days, 17:44, 0 user, load average: 1.20, 0.74, 0.54\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 1.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:49:49 up 16 days, 4:05, 0 user, load average: 0.08, 0.12, 0.15\nDisk Usage: 75%\nMemory Usage: 58.6%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:50AM up 21 days, 1:40, 1 user, load averages: 0.18, 0.17, 0.17\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: 14:50:12 up 2 days, 4:21, 1 user, load average: 0.09, 0.11, 0.08\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: 14:50:13 up 16:17, 1 user, load average: 1.29, 1.19, 1.18\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.56\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-16T19:50:22.006460+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `0e1b47fd3bb04eb59e5b57b4e189f335` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T19:55:00.000810+00:00 |
| **Fin** | 2025-12-16T19:55:23.041983+00:00 |
| **Durée** | 23.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: [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: [hp.truenas.home] => {"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.003156", "end": "2025-12-16 14:55:12.049963", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.046807", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 21 days, 1:46, 1 user, load average: 0.26, 0.27, 0.21", "stdout_lines": [" 14:55:12 up 21 days, 1:46, 1 user, load average: 0.26, 0.27, 0.21"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004072", "end": "2025-12-16 14:55:12.063306", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.059234", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 21 days, 4:05, 1 user, load average: 0.26, 0.09, 0.02", "stdout_lines": [" 14:55:12 up 21 days, 4:05, 1 user, load average: 0.26, 0.09, 0.02"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003895", "end": "2025-12-16 14:55:12.083143", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.079248", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 21 days, 3:19, 1 user, load average: 0.68, 0.66, 0.68", "stdout_lines": [" 14:55:12 up 21 days, 3:19, 1 user, load average: 0.68, 0.66, 0.68"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003030", "end": "2025-12-16 14:55:12.092773", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.089743", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 2 days, 4:27, 1 user, load average: 0.47, 0.19, 0.17", "stdout_lines": [" 14:55:12 up 2 days, 4:27, 1 user, load average: 0.47, 0.19, 0.17"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002922", "end": "2025-12-16 14:54:47.090069", "msg": "", "rc": 0, "start": "2025-12-16 14:54:47.087147", "stderr": "", "stderr_lines": [], "stdout": " 14:54:47 up 10 days, 2:44, 0 user, load average: 0.10, 0.11, 0.09", "stdout_lines": [" 14:54:47 up 10 days, 2:44, 0 user, load average: 0.10, 0.11, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009170", "end": "2025-12-16 14:55:12.757516", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.748346", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 193 days, 6:28, 1 user, load average: 0.30, 0.25, 0.18", "stdout_lines": [" 14:55:12 up 193 days, 6:28, 1 user, load average: 0.30, 0.25, 0.18"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009205", "end": "2025-12-16 14:55:12.773605", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.764400", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 193 days, 6:28, 1 user, load average: 0.14, 0.20, 0.19", "stdout_lines": [" 14:55:12 up 193 days, 6:28, 1 user, load average: 0.14, 0.20, 0.19"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004011", "end": "2025-12-16 14:55:13.055943", "msg": "", "rc": 0, "start": "2025-12-16 14:55:12.051932", "stderr": "", "stderr_lines": [], "stdout": " 14:55:12 up 21 days, 2:06, 1 user, load average: 0.71, 0.67, 0.69", "stdout_lines": [" 14:55:12 up 21 days, 2:06, 1 user, load average: 0.71, 0.67, 0.69"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003624", "end": "2025-12-16 14:54:41.388574", "msg": "", "rc": 0, "start": "2025-12-16 14:54:41.384950", "stderr": "", "stderr_lines": [], "stdout": " 14:54:41 up 16 days, 22:56, 0 user, load average: 0.07, 0.03, 0.00", "stdout_lines": [" 14:54:41 up 16 days, 22:56, 0 user, load average: 0.07, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004834", "end": "2025-12-16 14:55:13.250546", "msg": "", "rc": 0, "start": "2025-12-16 14:55:13.245712", "stderr": "", "stderr_lines": [], "stdout": " 14:55:13 up 2 days, 4:26, 1 user, load average: 0.18, 0.09, 0.02", "stdout_lines": [" 14:55:13 up 2 days, 4:26, 1 user, load average: 0.18, 0.09, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003228", "end": "2025-12-16 14:54:44.302754", "msg": "", "rc": 0, "start": "2025-12-16 14:54:44.299526", "stderr": "", "stderr_lines": [], "stdout": " 14:54:44 up 19 days, 17:49, 0 user, load average: 0.57, 0.57, 0.52", "stdout_lines": [" 14:54:44 up 19 days, 17:49, 0 user, load average: 0.57, 0.57, 0.52"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004145", "end": "2025-12-16 11:55:13.490183", "msg": "", "rc": 0, "start": "2025-12-16 11:55:13.486038", "stderr": "", "stderr_lines": [], "stdout": "11:55AM up 21 days, 1:45, 1 user, load averages: 0.48, 0.34, 0.24", "stdout_lines": ["11:55AM up 21 days, 1:45, 1 user, load averages: 0.48, 0.34, 0.24"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004153", "end": "2025-12-16 14:54:50.654694", "msg": "", "rc": 0, "start": "2025-12-16 14:54:50.650541", "stderr": "", "stderr_lines": [], "stdout": " 14:54:50 up 16 days, 4:10, 0 user, load average: 0.13, 0.17, 0.17", "stdout_lines": [" 14:54:50 up 16 days, 4:10, 0 user, load average: 0.13, 0.17, 0.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019755", "end": "2025-12-16 14:55:13.426920", "msg": "", "rc": 0, "start": "2025-12-16 14:55:13.407165", "stderr": "", "stderr_lines": [], "stdout": " 14:55:13 up 14 days, 4:21, 1 user, load average: 0.22, 0.13, 0.10", "stdout_lines": [" 14:55:13 up 14 days, 4:21, 1 user, load average: 0.22, 0.13, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007446", "end": "2025-12-16 14:55:14.269449", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.262003", "stderr": "", "stderr_lines": [], "stdout": " 14:55:14 up 16:22, 1 user, load average: 1.31, 1.14, 1.15", "stdout_lines": [" 14:55:14 up 16:22, 1 user, load average: 1.31, 1.14, 1.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003910", "end": "2025-12-16 14:55:13.664535", "msg": "", "rc": 0, "start": "2025-12-16 14:55:13.660625", "stderr": "", "stderr_lines": [], "stdout": " 14:55:13 up 2 days, 4:26, 1 user, load average: 0.11, 0.11, 0.09", "stdout_lines": [" 14:55:13 up 2 days, 4:26, 1 user, load average: 0.11, 0.11, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004449", "end": "2025-12-16 14:55:14.067031", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.062582", "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-16 14:55:14.079274", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.075125", "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.005916", "end": "2025-12-16 14:55:14.092720", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.086804", "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.004933", "end": "2025-12-16 14:55:14.125690", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.120757", "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.005344", "end": "2025-12-16 14:55:14.131927", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.126583", "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.005000", "end": "2025-12-16 14:54:49.115136", "msg": "", "rc": 0, "start": "2025-12-16 14:54:49.110136", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005793", "end": "2025-12-16 14:54:43.011265", "msg": "", "rc": 0, "start": "2025-12-16 14:54:43.005472", "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.010675", "end": "2025-12-16 14:55:14.830384", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.819709", "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.011720", "end": "2025-12-16 14:55:14.862809", "msg": "", "rc": 0, "start": "2025-12-16 14:55:14.851089", "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.006058", "end": "2025-12-16 14:55:15.034808", "msg": "", "rc": 0, "start": "2025-12-16 14:55:15.028750", "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.005769", "end": "2025-12-16 14:54:46.172668", "msg": "", "rc": 0, "start": "2025-12-16 14:54:46.166899", "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.005203", "end": "2025-12-16 14:54:52.491738", "msg": "", "rc": 0, "start": "2025-12-16 14:54:52.486535", "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.005416", "end": "2025-12-16 11:55:15.336039", "msg": "", "rc": 0, "start": "2025-12-16 11:55:15.330623", "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.005363", "end": "2025-12-16 14:55:15.454362", "msg": "", "rc": 0, "start": "2025-12-16 14:55:15.448999", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018791", "end": "2025-12-16 14:55:16.212510", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.193719", "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.025693", "end": "2025-12-16 14:55:15.468381", "msg": "", "rc": 0, "start": "2025-12-16 14:55:15.442688", "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.004323", "end": "2025-12-16 14:55:15.990072", "msg": "", "rc": 0, "start": "2025-12-16 14:55:15.985749", "stderr": "", "stderr_lines": [], "stdout": "86.0%", "stdout_lines": ["86.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.004097", "end": "2025-12-16 14:55:15.998997", "msg": "", "rc": 0, "start": "2025-12-16 14:55:15.994900", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004983", "end": "2025-12-16 14:55:16.043392", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.038409", "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.005934", "end": "2025-12-16 14:55:16.038945", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.033011", "stderr": "", "stderr_lines": [], "stdout": "59.1%", "stdout_lines": ["59.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.004641", "end": "2025-12-16 14:55:16.056168", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.051527", "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.003663", "end": "2025-12-16 14:54:51.068029", "msg": "", "rc": 0, "start": "2025-12-16 14:54:51.064366", "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.004545", "end": "2025-12-16 14:54:44.916279", "msg": "", "rc": 0, "start": "2025-12-16 14:54:44.911734", "stderr": "", "stderr_lines": [], "stdout": "69.6%", "stdout_lines": ["69.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.011018", "end": "2025-12-16 14:55:16.699283", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.688265", "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.012073", "end": "2025-12-16 14:55:16.717503", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.705430", "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.005882", "end": "2025-12-16 14:55:16.996000", "msg": "", "rc": 0, "start": "2025-12-16 14:55:16.990118", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004560", "end": "2025-12-16 14:54:48.077960", "msg": "", "rc": 0, "start": "2025-12-16 14:54:48.073400", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.006272", "end": "2025-12-16 11:55:17.179495", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 11:55:17.173223", "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.005121", "end": "2025-12-16 14:54:54.371941", "msg": "", "rc": 0, "start": "2025-12-16 14:54:54.366820", "stderr": "", "stderr_lines": [], "stdout": "61.9%", "stdout_lines": ["61.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.005335", "end": "2025-12-16 14:55:17.413079", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.407744", "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.010660", "end": "2025-12-16 14:55:18.184525", "msg": "", "rc": 0, "start": "2025-12-16 14:55:18.173865", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.026596", "end": "2025-12-16 14:55:17.380123", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.353527", "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.005045", "end": "2025-12-16 14:55:17.909607", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.904562", "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.004874", "end": "2025-12-16 14:55:17.921282", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.916408", "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.003583", "end": "2025-12-16 14:55:17.959842", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.956259", "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.005720", "end": "2025-12-16 14:55:17.967895", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.962175", "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.006722", "end": "2025-12-16 14:55:17.969279", "msg": "", "rc": 0, "start": "2025-12-16 14:55:17.962557", "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.003592", "end": "2025-12-16 14:54:52.973158", "msg": "", "rc": 0, "start": "2025-12-16 14:54:52.969566", "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.003401", "end": "2025-12-16 14:54:46.847857", "msg": "", "rc": 0, "start": "2025-12-16 14:54:46.844456", "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.011776", "end": "2025-12-16 14:55:18.606634", "msg": "", "rc": 0, "start": "2025-12-16 14:55:18.594858", "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.013869", "end": "2025-12-16 14:55:18.623264", "msg": "", "rc": 0, "start": "2025-12-16 14:55:18.609395", "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.003577", "end": "2025-12-16 14:55:18.892481", "msg": "", "rc": 0, "start": "2025-12-16 14:55:18.888904", "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.002669", "end": "2025-12-16 14:54:50.023993", "msg": "", "rc": 0, "start": "2025-12-16 14:54:50.021324", "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.004003", "end": "2025-12-16 11:55:19.078641", "msg": "", "rc": 0, "start": "2025-12-16 11:55:19.074638", "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.003169", "end": "2025-12-16 14:54:56.309655", "msg": "", "rc": 0, "start": "2025-12-16 14:54:56.306486", "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.002904", "end": "2025-12-16 14:55:19.305786", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.302882", "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.004597", "end": "2025-12-16 14:55:20.200710", "msg": "", "rc": 0, "start": "2025-12-16 14:55:20.196113", "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.029101", "end": "2025-12-16 14:55:19.295637", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.266536", "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.004255", "end": "2025-12-16 14:55:19.836594", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.832339", "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.004566", "end": "2025-12-16 14:55:19.858464", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.853898", "stderr": "", "stderr_lines": [], "stdout": "1.07", "stdout_lines": ["1.07"]}
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.003971", "end": "2025-12-16 14:55:19.860962", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.856991", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
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.005692", "end": "2025-12-16 14:55:19.880058", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.874366", "stderr": "", "stderr_lines": [], "stdout": "0.24", "stdout_lines": ["0.24"]}
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.005253", "end": "2025-12-16 14:55:19.899477", "msg": "", "rc": 0, "start": "2025-12-16 14:55:19.894224", "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.004332", "end": "2025-12-16 14:54:54.930416", "msg": "", "rc": 0, "start": "2025-12-16 14:54:54.926084", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.005214", "end": "2025-12-16 14:54:48.768913", "msg": "", "rc": 0, "start": "2025-12-16 14:54:48.763699", "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.010096", "end": "2025-12-16 14:55:20.659018", "msg": "", "rc": 0, "start": "2025-12-16 14:55:20.648922", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
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.011305", "end": "2025-12-16 14:55:20.677504", "msg": "", "rc": 0, "start": "2025-12-16 14:55:20.666199", "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.005575", "end": "2025-12-16 14:55:20.859233", "msg": "", "rc": 0, "start": "2025-12-16 14:55:20.853658", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005092", "end": "2025-12-16 14:54:51.950027", "msg": "", "rc": 0, "start": "2025-12-16 14:54:51.944935", "stderr": "", "stderr_lines": [], "stdout": "0.52", "stdout_lines": ["0.52"]}
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.006096", "end": "2025-12-16 11:55:21.135222", "msg": "", "rc": 0, "start": "2025-12-16 11:55:21.129126", "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.004629", "end": "2025-12-16 14:54:58.316892", "msg": "", "rc": 0, "start": "2025-12-16 14:54:58.312263", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.005249", "end": "2025-12-16 14:55:21.290092", "msg": "", "rc": 0, "start": "2025-12-16 14:55:21.284843", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.008232", "end": "2025-12-16 14:55:22.220121", "msg": "", "rc": 0, "start": "2025-12-16 14:55:22.211889", "stderr": "", "stderr_lines": [], "stdout": "1.28", "stdout_lines": ["1.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.024088", "end": "2025-12-16 14:55:21.231379", "msg": "", "rc": 0, "start": "2025-12-16 14:55:21.207291", "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: 14:55:12 up 2 days, 4:27, 1 user, load average: 0.47, 0.19, 0.17\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.48\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:12 up 21 days, 1:46, 1 user, load average: 0.26, 0.27, 0.21\nDisk Usage: 23%\nMemory Usage: 86.0%\nCPU Load: 0.24\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:12 up 21 days, 2:06, 1 user, load average: 0.71, 0.67, 0.69\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 1.07\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:12 up 21 days, 3:19, 1 user, load average: 0.68, 0.66, 0.68\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.58\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:12 up 21 days, 4:05, 1 user, load average: 0.26, 0.09, 0.02\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.24\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:13 up 14 days, 4:21, 1 user, load average: 0.22, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 20.1%\nCPU Load: 0.20\nCPU Temp: 35.8°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:12 up 193 days, 6:28, 1 user, load average: 0.14, 0.20, 0.19\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.21\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:12 up 193 days, 6:28, 1 user, load average: 0.30, 0.25, 0.18\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.34\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:54:47 up 10 days, 2:44, 0 user, load average: 0.10, 0.11, 0.09\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:54:41 up 16 days, 22:56, 0 user, load average: 0.07, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.6%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:13 up 2 days, 4:26, 1 user, load average: 0.18, 0.09, 0.02\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:54:44 up 19 days, 17:49, 0 user, load average: 0.57, 0.57, 0.52\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.52\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:54:50 up 16 days, 4:10, 0 user, load average: 0.13, 0.17, 0.17\nDisk Usage: 75%\nMemory Usage: 61.9%\nCPU Load: 0.20\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 11:55AM up 21 days, 1:45, 1 user, load averages: 0.48, 0.34, 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: 14:55:13 up 2 days, 4:26, 1 user, load average: 0.11, 0.11, 0.09\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:55:14 up 16:22, 1 user, load average: 1.31, 1.14, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T19:55:23.079916+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `f72e4fe082544bf591b38de4469d4054` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:00:00.000478+00:00 |
| **Fin** | 2025-12-16T20:00:24.491185+00:00 |
| **Durée** | 24.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: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003564", "end": "2025-12-16 15:00:13.160674", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.157110", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 21 days, 4:10, 1 user, load average: 0.00, 0.04, 0.00", "stdout_lines": [" 15:00:13 up 21 days, 4:10, 1 user, load average: 0.00, 0.04, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004075", "end": "2025-12-16 15:00:13.181623", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.177548", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 21 days, 3:24, 1 user, load average: 0.70, 0.66, 0.67", "stdout_lines": [" 15:00:13 up 21 days, 3:24, 1 user, load average: 0.70, 0.66, 0.67"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002856", "end": "2025-12-16 15:00:13.186868", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.184012", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 2 days, 4:32, 1 user, load average: 0.09, 0.13, 0.15", "stdout_lines": [" 15:00:13 up 2 days, 4:32, 1 user, load average: 0.09, 0.13, 0.15"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008512", "end": "2025-12-16 15:00:13.846600", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.838088", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 193 days, 6:33, 1 user, load average: 0.07, 0.15, 0.16", "stdout_lines": [" 15:00:13 up 193 days, 6:33, 1 user, load average: 0.07, 0.15, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009465", "end": "2025-12-16 15:00:13.880511", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.871046", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 193 days, 6:33, 1 user, load average: 0.15, 0.24, 0.21", "stdout_lines": [" 15:00:13 up 193 days, 6:33, 1 user, load average: 0.15, 0.24, 0.21"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003603", "end": "2025-12-16 15:00:14.146093", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.142490", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 21 days, 1:51, 1 user, load average: 0.30, 0.26, 0.21", "stdout_lines": [" 15:00:13 up 21 days, 1:51, 1 user, load average: 0.30, 0.26, 0.21"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004234", "end": "2025-12-16 15:00:14.162501", "msg": "", "rc": 0, "start": "2025-12-16 15:00:13.158267", "stderr": "", "stderr_lines": [], "stdout": " 15:00:13 up 21 days, 2:11, 1 user, load average: 0.71, 0.64, 0.67", "stdout_lines": [" 15:00:13 up 21 days, 2:11, 1 user, load average: 0.71, 0.64, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002895", "end": "2025-12-16 14:59:48.862381", "msg": "", "rc": 0, "start": "2025-12-16 14:59:48.859486", "stderr": "", "stderr_lines": [], "stdout": " 14:59:48 up 10 days, 2:49, 0 user, load average: 0.50, 0.28, 0.16", "stdout_lines": [" 14:59:48 up 10 days, 2:49, 0 user, load average: 0.50, 0.28, 0.16"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003329", "end": "2025-12-16 14:59:42.773631", "msg": "", "rc": 0, "start": "2025-12-16 14:59:42.770302", "stderr": "", "stderr_lines": [], "stdout": " 14:59:42 up 16 days, 23:01, 0 user, load average: 0.10, 0.04, 0.00", "stdout_lines": [" 14:59:42 up 16 days, 23:01, 0 user, load average: 0.10, 0.04, 0.00"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019377", "end": "2025-12-16 15:00:14.538530", "msg": "", "rc": 0, "start": "2025-12-16 15:00:14.519153", "stderr": "", "stderr_lines": [], "stdout": " 15:00:14 up 14 days, 4:26, 1 user, load average: 0.13, 0.11, 0.09", "stdout_lines": [" 15:00:14 up 14 days, 4:26, 1 user, load average: 0.13, 0.11, 0.09"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003170", "end": "2025-12-16 14:59:45.640309", "msg": "", "rc": 0, "start": "2025-12-16 14:59:45.637139", "stderr": "", "stderr_lines": [], "stdout": " 14:59:45 up 19 days, 17:54, 0 user, load average: 0.37, 0.45, 0.47", "stdout_lines": [" 14:59:45 up 19 days, 17:54, 0 user, load average: 0.37, 0.45, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002864", "end": "2025-12-16 14:59:51.942533", "msg": "", "rc": 0, "start": "2025-12-16 14:59:51.939669", "stderr": "", "stderr_lines": [], "stdout": " 14:59:51 up 16 days, 4:15, 0 user, load average: 0.63, 0.32, 0.22", "stdout_lines": [" 14:59:51 up 16 days, 4:15, 0 user, load average: 0.63, 0.32, 0.22"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004382", "end": "2025-12-16 12:00:14.867122", "msg": "", "rc": 0, "start": "2025-12-16 12:00:14.862740", "stderr": "", "stderr_lines": [], "stdout": "12:00PM up 21 days, 1:50, 1 user, load averages: 0.32, 0.27, 0.22", "stdout_lines": ["12:00PM up 21 days, 1:50, 1 user, load averages: 0.32, 0.27, 0.22"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "-1 day, 23:59:59.527534", "end": "2025-12-16 15:00:15.579355", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.051821", "stderr": "", "stderr_lines": [], "stdout": " 15:00:15 up 16:28, 1 user, load average: 1.47, 1.18, 1.15", "stdout_lines": [" 15:00:15 up 16:28, 1 user, load average: 1.47, 1.18, 1.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004056", "end": "2025-12-16 15:00:15.085122", "msg": "", "rc": 0, "start": "2025-12-16 15:00:15.081066", "stderr": "", "stderr_lines": [], "stdout": " 15:00:15 up 2 days, 4:31, 1 user, load average: 0.35, 0.21, 0.12", "stdout_lines": [" 15:00:15 up 2 days, 4:31, 1 user, load average: 0.35, 0.21, 0.12"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.006369", "end": "2025-12-16 15:00:15.602391", "msg": "", "rc": 0, "start": "2025-12-16 15:00:14.596022", "stderr": "", "stderr_lines": [], "stdout": " 15:00:14 up 2 days, 4:31, 1 user, load average: 0.08, 0.09, 0.03", "stdout_lines": [" 15:00:14 up 2 days, 4:31, 1 user, load average: 0.08, 0.09, 0.03"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004311", "end": "2025-12-16 15:00:16.024210", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.019899", "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.005070", "end": "2025-12-16 15:00:16.038882", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.033812", "stderr": "", "stderr_lines": [], "stdout": "23%", "stdout_lines": ["23%"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004814", "end": "2025-12-16 15:00:16.068862", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.064048", "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.004891", "end": "2025-12-16 15:00:16.076691", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.071800", "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.005856", "end": "2025-12-16 15:00:16.082298", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.076442", "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.005827", "end": "2025-12-16 14:59:51.122873", "msg": "", "rc": 0, "start": "2025-12-16 14:59:51.117046", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006642", "end": "2025-12-16 14:59:44.943790", "msg": "", "rc": 0, "start": "2025-12-16 14:59:44.937148", "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.010635", "end": "2025-12-16 15:00:16.809280", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.798645", "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.011674", "end": "2025-12-16 15:00:16.825473", "msg": "", "rc": 0, "start": "2025-12-16 15:00:16.813799", "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.005853", "end": "2025-12-16 15:00:17.050825", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.044972", "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.005356", "end": "2025-12-16 14:59:48.116004", "msg": "", "rc": 0, "start": "2025-12-16 14:59:48.110648", "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.004723", "end": "2025-12-16 14:59:54.497030", "msg": "", "rc": 0, "start": "2025-12-16 14:59:54.492307", "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.007085", "end": "2025-12-16 12:00:17.371744", "msg": "", "rc": 0, "start": "2025-12-16 12:00:17.364659", "stderr": "", "stderr_lines": [], "stdout": "10%", "stdout_lines": ["10%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.024258", "end": "2025-12-16 15:00:17.591635", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.567377", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005587", "end": "2025-12-16 15:00:17.495383", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.489796", "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.025303", "end": "2025-12-16 15:00:17.442994", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.417691", "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.004874", "end": "2025-12-16 15:00:17.978056", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.973182", "stderr": "", "stderr_lines": [], "stdout": "85.7%", "stdout_lines": ["85.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.004297", "end": "2025-12-16 15:00:17.977435", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.973138", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005025", "end": "2025-12-16 15:00:18.003408", "msg": "", "rc": 0, "start": "2025-12-16 15:00:17.998383", "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.005004", "end": "2025-12-16 15:00:18.016881", "msg": "", "rc": 0, "start": "2025-12-16 15:00:18.011877", "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.005323", "end": "2025-12-16 15:00:18.023065", "msg": "", "rc": 0, "start": "2025-12-16 15:00:18.017742", "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.003488", "end": "2025-12-16 14:59:53.054408", "msg": "", "rc": 0, "start": "2025-12-16 14:59:53.050920", "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.004842", "end": "2025-12-16 14:59:46.897367", "msg": "", "rc": 0, "start": "2025-12-16 14:59:46.892525", "stderr": "", "stderr_lines": [], "stdout": "69.6%", "stdout_lines": ["69.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.010900", "end": "2025-12-16 15:00:18.679646", "msg": "", "rc": 0, "start": "2025-12-16 15:00:18.668746", "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.012004", "end": "2025-12-16 15:00:18.690059", "msg": "", "rc": 0, "start": "2025-12-16 15:00:18.678055", "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.005736", "end": "2025-12-16 15:00:18.998015", "msg": "", "rc": 0, "start": "2025-12-16 15:00:18.992279", "stderr": "", "stderr_lines": [], "stdout": "34.8%", "stdout_lines": ["34.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.003922", "end": "2025-12-16 14:59:50.071763", "msg": "", "rc": 0, "start": "2025-12-16 14:59:50.067841", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.007376", "end": "2025-12-16 12:00:19.161403", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:00:19.154027", "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.003867", "end": "2025-12-16 14:59:56.346004", "msg": "", "rc": 0, "start": "2025-12-16 14:59:56.342137", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.0%"]}
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.008435", "end": "2025-12-16 15:00:19.569309", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.560874", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005599", "end": "2025-12-16 15:00:19.431015", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.425416", "stderr": "", "stderr_lines": [], "stdout": "13.8%", "stdout_lines": ["13.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.026166", "end": "2025-12-16 15:00:19.377196", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.351030", "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.005426", "end": "2025-12-16 15:00:19.929364", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.923938", "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.004852", "end": "2025-12-16 15:00:19.931865", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.927013", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.006421", "end": "2025-12-16 15:00:19.965150", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.958729", "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.003629", "end": "2025-12-16 15:00:19.975559", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.971930", "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.006634", "end": "2025-12-16 15:00:19.975864", "msg": "", "rc": 0, "start": "2025-12-16 15:00:19.969230", "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.003100", "end": "2025-12-16 14:59:54.994132", "msg": "", "rc": 0, "start": "2025-12-16 14:59:54.991032", "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.003262", "end": "2025-12-16 14:59:48.881629", "msg": "", "rc": 0, "start": "2025-12-16 14:59:48.878367", "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.011749", "end": "2025-12-16 15:00:20.646000", "msg": "", "rc": 0, "start": "2025-12-16 15:00:20.634251", "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.013024", "end": "2025-12-16 15:00:20.671918", "msg": "", "rc": 0, "start": "2025-12-16 15:00:20.658894", "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.003111", "end": "2025-12-16 15:00:20.925454", "msg": "", "rc": 0, "start": "2025-12-16 15:00:20.922343", "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.002969", "end": "2025-12-16 14:59:52.045295", "msg": "", "rc": 0, "start": "2025-12-16 14:59:52.042326", "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.002841", "end": "2025-12-16 14:59:58.300959", "msg": "", "rc": 0, "start": "2025-12-16 14:59:58.298118", "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.005687", "end": "2025-12-16 12:00:21.186209", "msg": "", "rc": 0, "start": "2025-12-16 12:00:21.180522", "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.003090", "end": "2025-12-16 15:00:21.348750", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.345660", "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.004033", "end": "2025-12-16 15:00:21.637955", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.633922", "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.028390", "end": "2025-12-16 15:00:21.324019", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.295629", "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.004504", "end": "2025-12-16 15:00:21.864688", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.860184", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.003976", "end": "2025-12-16 15:00:21.877276", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.873300", "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.004777", "end": "2025-12-16 15:00:21.884416", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.879639", "stderr": "", "stderr_lines": [], "stdout": "0.68", "stdout_lines": ["0.68"]}
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.005226", "end": "2025-12-16 15:00:21.899149", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.893923", "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.005376", "end": "2025-12-16 15:00:21.922354", "msg": "", "rc": 0, "start": "2025-12-16 15:00:21.916978", "stderr": "", "stderr_lines": [], "stdout": "0.64", "stdout_lines": ["0.64"]}
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.004232", "end": "2025-12-16 14:59:56.882587", "msg": "", "rc": 0, "start": "2025-12-16 14:59:56.878355", "stderr": "", "stderr_lines": [], "stdout": "0.62", "stdout_lines": ["0.62"]}
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.005270", "end": "2025-12-16 14:59:50.790160", "msg": "", "rc": 0, "start": "2025-12-16 14:59:50.784890", "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.010125", "end": "2025-12-16 15:00:22.649821", "msg": "", "rc": 0, "start": "2025-12-16 15:00:22.639696", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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.011317", "end": "2025-12-16 15:00:22.706289", "msg": "", "rc": 0, "start": "2025-12-16 15:00:22.694972", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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.005587", "end": "2025-12-16 15:00:22.819053", "msg": "", "rc": 0, "start": "2025-12-16 15:00:22.813466", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005154", "end": "2025-12-16 14:59:53.975444", "msg": "", "rc": 0, "start": "2025-12-16 14:59:53.970290", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004404", "end": "2025-12-16 15:00:00.318023", "msg": "", "rc": 0, "start": "2025-12-16 15:00:00.313619", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.006212", "end": "2025-12-16 12:00:23.170023", "msg": "", "rc": 0, "start": "2025-12-16 12:00:23.163811", "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.005339", "end": "2025-12-16 15:00:23.245630", "msg": "", "rc": 0, "start": "2025-12-16 15:00:23.240291", "stderr": "", "stderr_lines": [], "stdout": "0.59", "stdout_lines": ["0.59"]}
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.007625", "end": "2025-12-16 15:00:23.652529", "msg": "", "rc": 0, "start": "2025-12-16 15:00:23.644904", "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.024383", "end": "2025-12-16 15:00:23.280520", "msg": "", "rc": 0, "start": "2025-12-16 15:00:23.256137", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
TASK [Display health status] ***************************************************
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 21 days, 2:11, 1 user, load average: 0.71, 0.64, 0.67\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.68\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 2 days, 4:32, 1 user, load average: 0.09, 0.13, 0.15\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.48\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 21 days, 1:51, 1 user, load average: 0.30, 0.26, 0.21\nDisk Usage: 23%\nMemory Usage: 85.7%\nCPU Load: 0.25\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 21 days, 3:24, 1 user, load average: 0.70, 0.66, 0.67\nDisk Usage: 14%\nMemory Usage: 59.2%\nCPU Load: 0.64\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 21 days, 4:10, 1 user, load average: 0.00, 0.04, 0.00\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: 15:00:14 up 14 days, 4:26, 1 user, load average: 0.13, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.19\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 193 days, 6:33, 1 user, load average: 0.15, 0.24, 0.21\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.14\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:13 up 193 days, 6:33, 1 user, load average: 0.07, 0.15, 0.16\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.14\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:59:48 up 10 days, 2:49, 0 user, load average: 0.50, 0.28, 0.16\nDisk Usage: 47%\nMemory Usage: 71.4%\nCPU Load: 0.62\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:59:42 up 16 days, 23:01, 0 user, load average: 0.10, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.6%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:14 up 2 days, 4:31, 1 user, load average: 0.08, 0.09, 0.03\nDisk Usage: 1%\nMemory Usage: 34.8%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:59:45 up 19 days, 17:54, 0 user, load average: 0.37, 0.45, 0.47\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 14:59:51 up 16 days, 4:15, 0 user, load average: 0.63, 0.32, 0.22\nDisk Usage: 75%\nMemory Usage: 60.0%\nCPU Load: 0.53\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:00PM up 21 days, 1:50, 1 user, load averages: 0.32, 0.27, 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: 15:00:15 up 2 days, 4:31, 1 user, load average: 0.35, 0.21, 0.12\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.59\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:00:15 up 16:28, 1 user, load average: 1.47, 1.18, 1.15\nDisk Usage: 1%\nMemory Usage: 20.4%\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-16T20:00:24.536547+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `83e9f932f6854654ac73cbe9bc3ecbd4` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:05:00.002332+00:00 |
| **Fin** | 2025-12-16T20:05:21.800181+00:00 |
| **Durée** | 21.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: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [hp2.i7.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: [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.002988", "end": "2025-12-16 15:05:11.237120", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.234132", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 21 days, 1:56, 1 user, load average: 0.36, 0.31, 0.24", "stdout_lines": [" 15:05:11 up 21 days, 1:56, 1 user, load average: 0.36, 0.31, 0.24"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003269", "end": "2025-12-16 15:05:11.246974", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.243705", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 21 days, 2:16, 1 user, load average: 0.72, 0.68, 0.67", "stdout_lines": [" 15:05:11 up 21 days, 2:16, 1 user, load average: 0.72, 0.68, 0.67"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004101", "end": "2025-12-16 15:05:11.253319", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.249218", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 21 days, 4:15, 1 user, load average: 0.13, 0.05, 0.01", "stdout_lines": [" 15:05:11 up 21 days, 4:15, 1 user, load average: 0.13, 0.05, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002828", "end": "2025-12-16 15:05:11.276344", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.273516", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 2 days, 4:37, 1 user, load average: 0.21, 0.20, 0.18", "stdout_lines": [" 15:05:11 up 2 days, 4:37, 1 user, load average: 0.21, 0.20, 0.18"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004050", "end": "2025-12-16 15:05:11.288275", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.284225", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 21 days, 3:29, 1 user, load average: 0.50, 0.58, 0.63", "stdout_lines": [" 15:05:11 up 21 days, 3:29, 1 user, load average: 0.50, 0.58, 0.63"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002982", "end": "2025-12-16 15:04:46.265424", "msg": "", "rc": 0, "start": "2025-12-16 15:04:46.262442", "stderr": "", "stderr_lines": [], "stdout": " 15:04:46 up 10 days, 2:54, 0 user, load average: 0.19, 0.22, 0.17", "stdout_lines": [" 15:04:46 up 10 days, 2:54, 0 user, load average: 0.19, 0.22, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003186", "end": "2025-12-16 15:04:40.156905", "msg": "", "rc": 0, "start": "2025-12-16 15:04:40.153719", "stderr": "", "stderr_lines": [], "stdout": " 15:04:40 up 16 days, 23:06, 0 user, load average: 0.09, 0.04, 0.00", "stdout_lines": [" 15:04:40 up 16 days, 23:06, 0 user, load average: 0.09, 0.04, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008544", "end": "2025-12-16 15:05:11.923573", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.915029", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 193 days, 6:38, 1 user, load average: 0.23, 0.16, 0.16", "stdout_lines": [" 15:05:11 up 193 days, 6:38, 1 user, load average: 0.23, 0.16, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009451", "end": "2025-12-16 15:05:11.958819", "msg": "", "rc": 0, "start": "2025-12-16 15:05:11.949368", "stderr": "", "stderr_lines": [], "stdout": " 15:05:11 up 193 days, 6:38, 1 user, load average: 0.19, 0.23, 0.20", "stdout_lines": [" 15:05:11 up 193 days, 6:38, 1 user, load average: 0.19, 0.23, 0.20"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005258", "end": "2025-12-16 15:05:12.208186", "msg": "", "rc": 0, "start": "2025-12-16 15:05:12.202928", "stderr": "", "stderr_lines": [], "stdout": " 15:05:12 up 2 days, 4:36, 1 user, load average: 0.00, 0.04, 0.01", "stdout_lines": [" 15:05:12 up 2 days, 4:36, 1 user, load average: 0.00, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003326", "end": "2025-12-16 15:04:43.325558", "msg": "", "rc": 0, "start": "2025-12-16 15:04:43.322232", "stderr": "", "stderr_lines": [], "stdout": " 15:04:43 up 19 days, 17:59, 0 user, load average: 0.54, 0.47, 0.46", "stdout_lines": [" 15:04:43 up 19 days, 17:59, 0 user, load average: 0.54, 0.47, 0.46"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003229", "end": "2025-12-16 15:04:49.566719", "msg": "", "rc": 0, "start": "2025-12-16 15:04:49.563490", "stderr": "", "stderr_lines": [], "stdout": " 15:04:49 up 16 days, 4:20, 0 user, load average: 0.15, 0.22, 0.20", "stdout_lines": [" 15:04:49 up 16 days, 4:20, 0 user, load average: 0.15, 0.22, 0.20"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004270", "end": "2025-12-16 12:05:12.419376", "msg": "", "rc": 0, "start": "2025-12-16 12:05:12.415106", "stderr": "", "stderr_lines": [], "stdout": "12:05PM up 21 days, 1:54, 1 user, load averages: 0.41, 0.35, 0.26", "stdout_lines": ["12:05PM up 21 days, 1:54, 1 user, load averages: 0.41, 0.35, 0.26"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003804", "end": "2025-12-16 15:05:12.623861", "msg": "", "rc": 0, "start": "2025-12-16 15:05:12.620057", "stderr": "", "stderr_lines": [], "stdout": " 15:05:12 up 2 days, 4:36, 1 user, load average: 0.01, 0.11, 0.10", "stdout_lines": [" 15:05:12 up 2 days, 4:36, 1 user, load average: 0.01, 0.11, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007807", "end": "2025-12-16 15:05:12.990410", "msg": "", "rc": 0, "start": "2025-12-16 15:05:12.982603", "stderr": "", "stderr_lines": [], "stdout": " 15:05:12 up 16:33, 1 user, load average: 0.97, 1.13, 1.15", "stdout_lines": [" 15:05:12 up 16:33, 1 user, load average: 0.97, 1.13, 1.15"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019548", "end": "2025-12-16 15:05:12.625293", "msg": "", "rc": 0, "start": "2025-12-16 15:05:12.605745", "stderr": "", "stderr_lines": [], "stdout": " 15:05:12 up 14 days, 4:31, 1 user, load average: 0.17, 0.13, 0.09", "stdout_lines": [" 15:05:12 up 14 days, 4:31, 1 user, load average: 0.17, 0.13, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004408", "end": "2025-12-16 15:05:13.139212", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.134804", "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.004071", "end": "2025-12-16 15:05:13.168454", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.164383", "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.004708", "end": "2025-12-16 15:05:13.175024", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.170316", "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.005042", "end": "2025-12-16 15:05:13.212422", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.207380", "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.005718", "end": "2025-12-16 15:05:13.215836", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.210118", "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.004972", "end": "2025-12-16 15:04:48.173262", "msg": "", "rc": 0, "start": "2025-12-16 15:04:48.168290", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005462", "end": "2025-12-16 15:04:42.052860", "msg": "", "rc": 0, "start": "2025-12-16 15:04:42.047398", "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.010649", "end": "2025-12-16 15:05:13.878093", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.867444", "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.011688", "end": "2025-12-16 15:05:13.912512", "msg": "", "rc": 0, "start": "2025-12-16 15:05:13.900824", "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.006262", "end": "2025-12-16 15:05:14.108418", "msg": "", "rc": 0, "start": "2025-12-16 15:05:14.102156", "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.005255", "end": "2025-12-16 15:04:45.222914", "msg": "", "rc": 0, "start": "2025-12-16 15:04:45.217659", "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.004567", "end": "2025-12-16 15:04:51.509643", "msg": "", "rc": 0, "start": "2025-12-16 15:04:51.505076", "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.005509", "end": "2025-12-16 12:05:14.372766", "msg": "", "rc": 0, "start": "2025-12-16 12:05:14.367257", "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.005689", "end": "2025-12-16 15:05:14.535896", "msg": "", "rc": 0, "start": "2025-12-16 15:05:14.530207", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019904", "end": "2025-12-16 15:05:14.981538", "msg": "", "rc": 0, "start": "2025-12-16 15:05:14.961634", "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.025108", "end": "2025-12-16 15:05:14.515074", "msg": "", "rc": 0, "start": "2025-12-16 15:05:14.489966", "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-16 15:05:15.045388", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.040960", "stderr": "", "stderr_lines": [], "stdout": "85.6%", "stdout_lines": ["85.6%"]}
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.004769", "end": "2025-12-16 15:05:15.068234", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.063465", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004073", "end": "2025-12-16 15:05:15.068232", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.064159", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005445", "end": "2025-12-16 15:05:15.092074", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.086629", "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.005762", "end": "2025-12-16 15:05:15.107980", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.102218", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003460", "end": "2025-12-16 15:04:50.087479", "msg": "", "rc": 0, "start": "2025-12-16 15:04:50.084019", "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.004824", "end": "2025-12-16 15:04:43.949628", "msg": "", "rc": 0, "start": "2025-12-16 15:04:43.944804", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.010760", "end": "2025-12-16 15:05:15.750078", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.739318", "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.011936", "end": "2025-12-16 15:05:15.782933", "msg": "", "rc": 0, "start": "2025-12-16 15:05:15.770997", "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.006616", "end": "2025-12-16 15:05:16.012113", "msg": "", "rc": 0, "start": "2025-12-16 15:05:16.005497", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.003936", "end": "2025-12-16 15:04:47.127122", "msg": "", "rc": 0, "start": "2025-12-16 15:04:47.123186", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003858", "end": "2025-12-16 15:04:53.398572", "msg": "", "rc": 0, "start": "2025-12-16 15:04:53.394714", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.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.005172", "end": "2025-12-16 12:05:16.261289", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:05:16.256117", "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.005486", "end": "2025-12-16 15:05:16.438779", "msg": "", "rc": 0, "start": "2025-12-16 15:05:16.433293", "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.009133", "end": "2025-12-16 15:05:16.913206", "msg": "", "rc": 0, "start": "2025-12-16 15:05:16.904073", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025643", "end": "2025-12-16 15:05:16.438016", "msg": "", "rc": 0, "start": "2025-12-16 15:05:16.412373", "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.005425", "end": "2025-12-16 15:05:16.970425", "msg": "", "rc": 0, "start": "2025-12-16 15:05:16.965000", "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.005027", "end": "2025-12-16 15:05:16.987316", "msg": "", "rc": 0, "start": "2025-12-16 15:05:16.982289", "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.005551", "end": "2025-12-16 15:05:17.006522", "msg": "", "rc": 0, "start": "2025-12-16 15:05:17.000971", "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.002835", "end": "2025-12-16 15:05:17.017968", "msg": "", "rc": 0, "start": "2025-12-16 15:05:17.015133", "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.006746", "end": "2025-12-16 15:05:17.029560", "msg": "", "rc": 0, "start": "2025-12-16 15:05:17.022814", "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.002821", "end": "2025-12-16 15:04:52.004331", "msg": "", "rc": 0, "start": "2025-12-16 15:04:52.001510", "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.002919", "end": "2025-12-16 15:04:45.864796", "msg": "", "rc": 0, "start": "2025-12-16 15:04:45.861877", "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.011712", "end": "2025-12-16 15:05:17.658870", "msg": "", "rc": 0, "start": "2025-12-16 15:05:17.647158", "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.013876", "end": "2025-12-16 15:05:17.699216", "msg": "", "rc": 0, "start": "2025-12-16 15:05:17.685340", "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.003205", "end": "2025-12-16 15:05:17.936017", "msg": "", "rc": 0, "start": "2025-12-16 15:05:17.932812", "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.002912", "end": "2025-12-16 15:04:49.057147", "msg": "", "rc": 0, "start": "2025-12-16 15:04:49.054235", "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.002498", "end": "2025-12-16 15:04:55.283584", "msg": "", "rc": 0, "start": "2025-12-16 15:04:55.281086", "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.006101", "end": "2025-12-16 12:05:18.161418", "msg": "", "rc": 0, "start": "2025-12-16 12:05:18.155317", "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.003108", "end": "2025-12-16 15:05:18.344842", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.341734", "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.004056", "end": "2025-12-16 15:05:18.913222", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.909166", "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.028608", "end": "2025-12-16 15:05:18.375386", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.346778", "stderr": "", "stderr_lines": [], "stdout": "36.3°C", "stdout_lines": ["36.3°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.004190", "end": "2025-12-16 15:05:18.899766", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.895576", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.003972", "end": "2025-12-16 15:05:18.926687", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.922715", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.005282", "end": "2025-12-16 15:05:18.940484", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.935202", "stderr": "", "stderr_lines": [], "stdout": "0.68", "stdout_lines": ["0.68"]}
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.005120", "end": "2025-12-16 15:05:18.952872", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.947752", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.005212", "end": "2025-12-16 15:05:18.957634", "msg": "", "rc": 0, "start": "2025-12-16 15:05:18.952422", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.004013", "end": "2025-12-16 15:04:53.960774", "msg": "", "rc": 0, "start": "2025-12-16 15:04:53.956761", "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.005527", "end": "2025-12-16 15:04:47.806614", "msg": "", "rc": 0, "start": "2025-12-16 15:04:47.801087", "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.010155", "end": "2025-12-16 15:05:19.696612", "msg": "", "rc": 0, "start": "2025-12-16 15:05:19.686457", "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.011079", "end": "2025-12-16 15:05:19.726912", "msg": "", "rc": 0, "start": "2025-12-16 15:05:19.715833", "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.005833", "end": "2025-12-16 15:05:19.896828", "msg": "", "rc": 0, "start": "2025-12-16 15:05:19.890995", "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.005006", "end": "2025-12-16 15:04:50.986929", "msg": "", "rc": 0, "start": "2025-12-16 15:04:50.981923", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.006287", "end": "2025-12-16 12:05:20.192862", "msg": "", "rc": 0, "start": "2025-12-16 12:05:20.186575", "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.004216", "end": "2025-12-16 15:04:57.347270", "msg": "", "rc": 0, "start": "2025-12-16 15:04:57.343054", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.005507", "end": "2025-12-16 15:05:20.352301", "msg": "", "rc": 0, "start": "2025-12-16 15:05:20.346794", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.007191", "end": "2025-12-16 15:05:20.934889", "msg": "", "rc": 0, "start": "2025-12-16 15:05:20.927698", "stderr": "", "stderr_lines": [], "stdout": "1.05", "stdout_lines": ["1.05"]}
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.024183", "end": "2025-12-16 15:05:20.293022", "msg": "", "rc": 0, "start": "2025-12-16 15:05:20.268839", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 21 days, 1:56, 1 user, load average: 0.36, 0.31, 0.24\nDisk Usage: 23%\nMemory Usage: 85.6%\nCPU Load: 0.33\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 2 days, 4:37, 1 user, load average: 0.21, 0.20, 0.18\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.26\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 21 days, 2:16, 1 user, load average: 0.72, 0.68, 0.67\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.68\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 21 days, 3:29, 1 user, load average: 0.50, 0.58, 0.63\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.51\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 21 days, 4:15, 1 user, load average: 0.13, 0.05, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:12 up 14 days, 4:31, 1 user, load average: 0.17, 0.13, 0.09\nDisk Usage: 21%\nMemory Usage: 19.4%\nCPU Load: 0.22\nCPU Temp: 36.3°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 193 days, 6:38, 1 user, load average: 0.19, 0.23, 0.20\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.16\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:11 up 193 days, 6:38, 1 user, load average: 0.23, 0.16, 0.16\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.27\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:04:46 up 10 days, 2:54, 0 user, load average: 0.19, 0.22, 0.17\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:04:40 up 16 days, 23:06, 0 user, load average: 0.09, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:12 up 2 days, 4:36, 1 user, load average: 0.00, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:04:49 up 16 days, 4:20, 0 user, load average: 0.15, 0.22, 0.20\nDisk Usage: 75%\nMemory Usage: 59.4%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:04:43 up 19 days, 17:59, 0 user, load average: 0.54, 0.47, 0.46\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.53\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:05PM up 21 days, 1:54, 1 user, load averages: 0.41, 0.35, 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: 15:05:12 up 2 days, 4:36, 1 user, load average: 0.01, 0.11, 0.10\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:05:12 up 16:33, 1 user, load average: 0.97, 1.13, 1.15\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.05\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-16T20:05:21.840886+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `0a0ea6ce90794db1907f5cc161a08411` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:10:00.003113+00:00 |
| **Fin** | 2025-12-16T20:10:22.636210+00:00 |
| **Durée** | 22.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: [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: [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.003050", "end": "2025-12-16 15:10:11.683989", "msg": "", "rc": 0, "start": "2025-12-16 15:10:11.680939", "stderr": "", "stderr_lines": [], "stdout": " 15:10:11 up 21 days, 2:01, 1 user, load average: 0.30, 0.32, 0.26", "stdout_lines": [" 15:10:11 up 21 days, 2:01, 1 user, load average: 0.30, 0.32, 0.26"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003197", "end": "2025-12-16 15:10:11.693838", "msg": "", "rc": 0, "start": "2025-12-16 15:10:11.690641", "stderr": "", "stderr_lines": [], "stdout": " 15:10:11 up 21 days, 2:21, 1 user, load average: 0.62, 0.62, 0.64", "stdout_lines": [" 15:10:11 up 21 days, 2:21, 1 user, load average: 0.62, 0.62, 0.64"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003765", "end": "2025-12-16 15:10:11.699692", "msg": "", "rc": 0, "start": "2025-12-16 15:10:11.695927", "stderr": "", "stderr_lines": [], "stdout": " 15:10:11 up 21 days, 4:20, 1 user, load average: 0.02, 0.03, 0.00", "stdout_lines": [" 15:10:11 up 21 days, 4:20, 1 user, load average: 0.02, 0.03, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002873", "end": "2025-12-16 15:10:11.727686", "msg": "", "rc": 0, "start": "2025-12-16 15:10:11.724813", "stderr": "", "stderr_lines": [], "stdout": " 15:10:11 up 2 days, 4:42, 1 user, load average: 0.05, 0.17, 0.17", "stdout_lines": [" 15:10:11 up 2 days, 4:42, 1 user, load average: 0.05, 0.17, 0.17"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004098", "end": "2025-12-16 15:10:11.731124", "msg": "", "rc": 0, "start": "2025-12-16 15:10:11.727026", "stderr": "", "stderr_lines": [], "stdout": " 15:10:11 up 21 days, 3:34, 1 user, load average: 0.64, 0.56, 0.61", "stdout_lines": [" 15:10:11 up 21 days, 3:34, 1 user, load average: 0.64, 0.56, 0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002761", "end": "2025-12-16 15:09:46.710786", "msg": "", "rc": 0, "start": "2025-12-16 15:09:46.708025", "stderr": "", "stderr_lines": [], "stdout": " 15:09:46 up 10 days, 2:59, 0 user, load average: 0.31, 0.24, 0.19", "stdout_lines": [" 15:09:46 up 10 days, 2:59, 0 user, load average: 0.31, 0.24, 0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003705", "end": "2025-12-16 15:09:40.605867", "msg": "", "rc": 0, "start": "2025-12-16 15:09:40.602162", "stderr": "", "stderr_lines": [], "stdout": " 15:09:40 up 16 days, 23:11, 0 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 15:09:40 up 16 days, 23:11, 0 user, load average: 0.00, 0.02, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008497", "end": "2025-12-16 15:10:12.382003", "msg": "", "rc": 0, "start": "2025-12-16 15:10:12.373506", "stderr": "", "stderr_lines": [], "stdout": " 15:10:12 up 193 days, 6:43, 1 user, load average: 0.14, 0.14, 0.16", "stdout_lines": [" 15:10:12 up 193 days, 6:43, 1 user, load average: 0.14, 0.14, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009298", "end": "2025-12-16 15:10:12.417564", "msg": "", "rc": 0, "start": "2025-12-16 15:10:12.408266", "stderr": "", "stderr_lines": [], "stdout": " 15:10:12 up 193 days, 6:43, 1 user, load average: 0.44, 0.27, 0.21", "stdout_lines": [" 15:10:12 up 193 days, 6:43, 1 user, load average: 0.44, 0.27, 0.21"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004645", "end": "2025-12-16 15:10:12.653983", "msg": "", "rc": 0, "start": "2025-12-16 15:10:12.649338", "stderr": "", "stderr_lines": [], "stdout": " 15:10:12 up 2 days, 4:41, 1 user, load average: 0.07, 0.06, 0.01", "stdout_lines": [" 15:10:12 up 2 days, 4:41, 1 user, load average: 0.07, 0.06, 0.01"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003128", "end": "2025-12-16 15:09:50.021603", "msg": "", "rc": 0, "start": "2025-12-16 15:09:50.018475", "stderr": "", "stderr_lines": [], "stdout": " 15:09:50 up 16 days, 4:25, 0 user, load average: 0.07, 0.14, 0.17", "stdout_lines": [" 15:09:50 up 16 days, 4:25, 0 user, load average: 0.07, 0.14, 0.17"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003693", "end": "2025-12-16 15:09:43.813632", "msg": "", "rc": 0, "start": "2025-12-16 15:09:43.809939", "stderr": "", "stderr_lines": [], "stdout": " 15:09:43 up 19 days, 18:04, 0 user, load average: 0.41, 0.46, 0.45", "stdout_lines": [" 15:09:43 up 19 days, 18:04, 0 user, load average: 0.41, 0.46, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004250", "end": "2025-12-16 12:10:12.885028", "msg": "", "rc": 0, "start": "2025-12-16 12:10:12.880778", "stderr": "", "stderr_lines": [], "stdout": "12:10PM up 21 days, 2 hrs, 1 user, load averages: 0.23, 0.26, 0.24", "stdout_lines": ["12:10PM up 21 days, 2 hrs, 1 user, load averages: 0.23, 0.26, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003755", "end": "2025-12-16 15:10:13.069058", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.065303", "stderr": "", "stderr_lines": [], "stdout": " 15:10:13 up 2 days, 4:41, 1 user, load average: 0.16, 0.08, 0.08", "stdout_lines": [" 15:10:13 up 2 days, 4:41, 1 user, load average: 0.16, 0.08, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007158", "end": "2025-12-16 15:10:13.852161", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.845003", "stderr": "", "stderr_lines": [], "stdout": " 15:10:13 up 16:38, 1 user, load average: 1.31, 1.14, 1.13", "stdout_lines": [" 15:10:13 up 16:38, 1 user, load average: 1.31, 1.14, 1.13"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019402", "end": "2025-12-16 15:10:13.070365", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.050963", "stderr": "", "stderr_lines": [], "stdout": " 15:10:13 up 14 days, 4:36, 1 user, load average: 0.28, 0.16, 0.11", "stdout_lines": [" 15:10:13 up 14 days, 4:36, 1 user, load average: 0.28, 0.16, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004410", "end": "2025-12-16 15:10:13.605574", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.601164", "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.004703", "end": "2025-12-16 15:10:13.617336", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.612633", "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.004047", "end": "2025-12-16 15:10:13.625250", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.621203", "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.004821", "end": "2025-12-16 15:10:13.648114", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.643293", "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.005434", "end": "2025-12-16 15:10:13.665791", "msg": "", "rc": 0, "start": "2025-12-16 15:10:13.660357", "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.005198", "end": "2025-12-16 15:09:48.627122", "msg": "", "rc": 0, "start": "2025-12-16 15:09:48.621924", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005614", "end": "2025-12-16 15:09:42.501246", "msg": "", "rc": 0, "start": "2025-12-16 15:09:42.495632", "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.010499", "end": "2025-12-16 15:10:14.341258", "msg": "", "rc": 0, "start": "2025-12-16 15:10:14.330759", "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.011512", "end": "2025-12-16 15:10:14.364068", "msg": "", "rc": 0, "start": "2025-12-16 15:10:14.352556", "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.005767", "end": "2025-12-16 15:10:14.563792", "msg": "", "rc": 0, "start": "2025-12-16 15:10:14.558025", "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.005568", "end": "2025-12-16 15:09:45.671197", "msg": "", "rc": 0, "start": "2025-12-16 15:09:45.665629", "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.006342", "end": "2025-12-16 12:10:14.821538", "msg": "", "rc": 0, "start": "2025-12-16 12:10:14.815196", "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.004780", "end": "2025-12-16 15:09:51.980618", "msg": "", "rc": 0, "start": "2025-12-16 15:09:51.975838", "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.005666", "end": "2025-12-16 15:10:14.982613", "msg": "", "rc": 0, "start": "2025-12-16 15:10:14.976947", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020955", "end": "2025-12-16 15:10:15.793747", "msg": "", "rc": 0, "start": "2025-12-16 15:10:15.772792", "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.025209", "end": "2025-12-16 15:10:14.997570", "msg": "", "rc": 0, "start": "2025-12-16 15:10:14.972361", "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.004400", "end": "2025-12-16 15:10:15.535441", "msg": "", "rc": 0, "start": "2025-12-16 15:10:15.531041", "stderr": "", "stderr_lines": [], "stdout": "85.6%", "stdout_lines": ["85.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.004224", "end": "2025-12-16 15:10:15.550398", "msg": "", "rc": 0, "start": "2025-12-16 15:10:15.546174", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005411", "end": "2025-12-16 15:10:15.579560", "msg": "", "rc": 0, "start": "2025-12-16 15:10:15.574149", "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.005116", "end": "2025-12-16 15:10:15.580957", "msg": "", "rc": 0, "start": "2025-12-16 15:10:15.575841", "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.005806", "end": "2025-12-16 15:10:15.598614", "msg": "", "rc": 0, "start": "2025-12-16 15:10:15.592808", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003791", "end": "2025-12-16 15:09:50.567567", "msg": "", "rc": 0, "start": "2025-12-16 15:09:50.563776", "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.004352", "end": "2025-12-16 15:09:44.431915", "msg": "", "rc": 0, "start": "2025-12-16 15:09:44.427563", "stderr": "", "stderr_lines": [], "stdout": "69.3%", "stdout_lines": ["69.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.010905", "end": "2025-12-16 15:10:16.260274", "msg": "", "rc": 0, "start": "2025-12-16 15:10:16.249369", "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.012025", "end": "2025-12-16 15:10:16.279041", "msg": "", "rc": 0, "start": "2025-12-16 15:10:16.267016", "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.005983", "end": "2025-12-16 15:10:16.500709", "msg": "", "rc": 0, "start": "2025-12-16 15:10:16.494726", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004338", "end": "2025-12-16 15:09:47.615614", "msg": "", "rc": 0, "start": "2025-12-16 15:09:47.611276", "stderr": "", "stderr_lines": [], "stdout": "27.1%", "stdout_lines": ["27.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.005220", "end": "2025-12-16 12:10:16.732442", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:10:16.727222", "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.003893", "end": "2025-12-16 15:09:53.889730", "msg": "", "rc": 0, "start": "2025-12-16 15:09:53.885837", "stderr": "", "stderr_lines": [], "stdout": "58.9%", "stdout_lines": ["58.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.005506", "end": "2025-12-16 15:10:16.935500", "msg": "", "rc": 0, "start": "2025-12-16 15:10:16.929994", "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.012041", "end": "2025-12-16 15:10:17.808349", "msg": "", "rc": 0, "start": "2025-12-16 15:10:17.796308", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025743", "end": "2025-12-16 15:10:16.924159", "msg": "", "rc": 0, "start": "2025-12-16 15:10:16.898416", "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.005209", "end": "2025-12-16 15:10:17.440019", "msg": "", "rc": 0, "start": "2025-12-16 15:10:17.434810", "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.005967", "end": "2025-12-16 15:10:17.462334", "msg": "", "rc": 0, "start": "2025-12-16 15:10:17.456367", "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.004956", "end": "2025-12-16 15:10:17.467211", "msg": "", "rc": 0, "start": "2025-12-16 15:10:17.462255", "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.003505", "end": "2025-12-16 15:10:17.496783", "msg": "", "rc": 0, "start": "2025-12-16 15:10:17.493278", "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.006224", "end": "2025-12-16 15:10:17.505745", "msg": "", "rc": 0, "start": "2025-12-16 15:10:17.499521", "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.002588", "end": "2025-12-16 15:09:52.477269", "msg": "", "rc": 0, "start": "2025-12-16 15:09:52.474681", "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.002861", "end": "2025-12-16 15:09:46.360805", "msg": "", "rc": 0, "start": "2025-12-16 15:09:46.357944", "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.011816", "end": "2025-12-16 15:10:18.156839", "msg": "", "rc": 0, "start": "2025-12-16 15:10:18.145023", "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.013389", "end": "2025-12-16 15:10:18.194518", "msg": "", "rc": 0, "start": "2025-12-16 15:10:18.181129", "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.003359", "end": "2025-12-16 15:10:18.420331", "msg": "", "rc": 0, "start": "2025-12-16 15:10:18.416972", "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.002944", "end": "2025-12-16 15:09:49.518322", "msg": "", "rc": 0, "start": "2025-12-16 15:09:49.515378", "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.004305", "end": "2025-12-16 12:10:18.647944", "msg": "", "rc": 0, "start": "2025-12-16 12:10:18.643639", "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.002879", "end": "2025-12-16 15:09:55.810924", "msg": "", "rc": 0, "start": "2025-12-16 15:09:55.808045", "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.003173", "end": "2025-12-16 15:10:18.839622", "msg": "", "rc": 0, "start": "2025-12-16 15:10:18.836449", "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.004504", "end": "2025-12-16 15:10:19.771345", "msg": "", "rc": 0, "start": "2025-12-16 15:10:19.766841", "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.030070", "end": "2025-12-16 15:10:18.844435", "msg": "", "rc": 0, "start": "2025-12-16 15:10:18.814365", "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.004178", "end": "2025-12-16 15:10:19.362804", "msg": "", "rc": 0, "start": "2025-12-16 15:10:19.358626", "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.004055", "end": "2025-12-16 15:10:19.379895", "msg": "", "rc": 0, "start": "2025-12-16 15:10:19.375840", "stderr": "", "stderr_lines": [], "stdout": "0.19", "stdout_lines": ["0.19"]}
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.004647", "end": "2025-12-16 15:10:19.391300", "msg": "", "rc": 0, "start": "2025-12-16 15:10:19.386653", "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.005081", "end": "2025-12-16 15:10:19.422722", "msg": "", "rc": 0, "start": "2025-12-16 15:10:19.417641", "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.005691", "end": "2025-12-16 15:10:19.438119", "msg": "", "rc": 0, "start": "2025-12-16 15:10:19.432428", "stderr": "", "stderr_lines": [], "stdout": "0.70", "stdout_lines": ["0.70"]}
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.004375", "end": "2025-12-16 15:09:54.390554", "msg": "", "rc": 0, "start": "2025-12-16 15:09:54.386179", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005384", "end": "2025-12-16 15:09:48.285296", "msg": "", "rc": 0, "start": "2025-12-16 15:09:48.279912", "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.010247", "end": "2025-12-16 15:10:20.155402", "msg": "", "rc": 0, "start": "2025-12-16 15:10:20.145155", "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.011245", "end": "2025-12-16 15:10:20.169314", "msg": "", "rc": 0, "start": "2025-12-16 15:10:20.158069", "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.005681", "end": "2025-12-16 15:10:20.300383", "msg": "", "rc": 0, "start": "2025-12-16 15:10:20.294702", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.005095", "end": "2025-12-16 15:09:51.456022", "msg": "", "rc": 0, "start": "2025-12-16 15:09:51.450927", "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.006336", "end": "2025-12-16 12:10:20.636869", "msg": "", "rc": 0, "start": "2025-12-16 12:10:20.630533", "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.004646", "end": "2025-12-16 15:09:57.818623", "msg": "", "rc": 0, "start": "2025-12-16 15:09:57.813977", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.005440", "end": "2025-12-16 15:10:20.728199", "msg": "", "rc": 0, "start": "2025-12-16 15:10:20.722759", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.007903", "end": "2025-12-16 15:10:21.805955", "msg": "", "rc": 0, "start": "2025-12-16 15:10:21.798052", "stderr": "", "stderr_lines": [], "stdout": "1.37", "stdout_lines": ["1.37"]}
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-16 15:10:20.755412", "msg": "", "rc": 0, "start": "2025-12-16 15:10:20.731083", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:11 up 21 days, 2:01, 1 user, load average: 0.30, 0.32, 0.26\nDisk Usage: 23%\nMemory Usage: 85.6%\nCPU Load: 0.28\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:11 up 2 days, 4:42, 1 user, load average: 0.05, 0.17, 0.17\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.19\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:11 up 21 days, 2:21, 1 user, load average: 0.62, 0.62, 0.64\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.60\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:11 up 21 days, 3:34, 1 user, load average: 0.64, 0.56, 0.61\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.70\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:11 up 21 days, 4:20, 1 user, load average: 0.02, 0.03, 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: 15:10:13 up 14 days, 4:36, 1 user, load average: 0.28, 0.16, 0.11\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.31\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:12 up 193 days, 6:43, 1 user, load average: 0.44, 0.27, 0.21\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.45\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:12 up 193 days, 6:43, 1 user, load average: 0.14, 0.14, 0.16\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.12\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:09:46 up 10 days, 2:59, 0 user, load average: 0.31, 0.24, 0.19\nDisk Usage: 47%\nMemory Usage: 71.2%\nCPU Load: 0.27\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:09:40 up 16 days, 23:11, 0 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 69.3%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:12 up 2 days, 4:41, 1 user, load average: 0.07, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:09:43 up 19 days, 18:04, 0 user, load average: 0.41, 0.46, 0.45\nDisk Usage: 28%\nMemory Usage: 27.1%\nCPU Load: 0.42\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:09:50 up 16 days, 4:25, 0 user, load average: 0.07, 0.14, 0.17\nDisk Usage: 75%\nMemory Usage: 58.9%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:10PM up 21 days, 2 hrs, 1 user, load averages: 0.23, 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: 15:10:13 up 2 days, 4:41, 1 user, load average: 0.16, 0.08, 0.08\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:10:13 up 16:38, 1 user, load average: 1.31, 1.14, 1.13\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.37\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-16T20:10:22.674841+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a946efde05c240738f122c3da39cd20c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:15:00.002172+00:00 |
| **Fin** | 2025-12-16T20:15:22.038178+00:00 |
| **Durée** | 22.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: [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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003425", "end": "2025-12-16 15:15:11.558906", "msg": "", "rc": 0, "start": "2025-12-16 15:15:11.555481", "stderr": "", "stderr_lines": [], "stdout": " 15:15:11 up 21 days, 2:26, 1 user, load average: 0.64, 0.59, 0.62", "stdout_lines": [" 15:15:11 up 21 days, 2:26, 1 user, load average: 0.64, 0.59, 0.62"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003885", "end": "2025-12-16 15:15:11.565103", "msg": "", "rc": 0, "start": "2025-12-16 15:15:11.561218", "stderr": "", "stderr_lines": [], "stdout": " 15:15:11 up 21 days, 4:25, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:15:11 up 21 days, 4:25, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002847", "end": "2025-12-16 15:15:11.587624", "msg": "", "rc": 0, "start": "2025-12-16 15:15:11.584777", "stderr": "", "stderr_lines": [], "stdout": " 15:15:11 up 2 days, 4:47, 1 user, load average: 0.15, 0.25, 0.21", "stdout_lines": [" 15:15:11 up 2 days, 4:47, 1 user, load average: 0.15, 0.25, 0.21"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004639", "end": "2025-12-16 15:15:11.597020", "msg": "", "rc": 0, "start": "2025-12-16 15:15:11.592381", "stderr": "", "stderr_lines": [], "stdout": " 15:15:11 up 21 days, 3:39, 1 user, load average: 0.74, 0.69, 0.65", "stdout_lines": [" 15:15:11 up 21 days, 3:39, 1 user, load average: 0.74, 0.69, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002890", "end": "2025-12-16 15:14:46.575974", "msg": "", "rc": 0, "start": "2025-12-16 15:14:46.573084", "stderr": "", "stderr_lines": [], "stdout": " 15:14:46 up 10 days, 3:04, 0 user, load average: 0.12, 0.17, 0.17", "stdout_lines": [" 15:14:46 up 10 days, 3:04, 0 user, load average: 0.12, 0.17, 0.17"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008287", "end": "2025-12-16 15:15:12.243222", "msg": "", "rc": 0, "start": "2025-12-16 15:15:12.234935", "stderr": "", "stderr_lines": [], "stdout": " 15:15:12 up 193 days, 6:48, 1 user, load average: 0.20, 0.14, 0.14", "stdout_lines": [" 15:15:12 up 193 days, 6:48, 1 user, load average: 0.20, 0.14, 0.14"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009199", "end": "2025-12-16 15:15:12.291607", "msg": "", "rc": 0, "start": "2025-12-16 15:15:12.282408", "stderr": "", "stderr_lines": [], "stdout": " 15:15:12 up 193 days, 6:48, 1 user, load average: 0.34, 0.31, 0.23", "stdout_lines": [" 15:15:12 up 193 days, 6:48, 1 user, load average: 0.34, 0.31, 0.23"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003983", "end": "2025-12-16 15:15:12.551777", "msg": "", "rc": 0, "start": "2025-12-16 15:15:11.547794", "stderr": "", "stderr_lines": [], "stdout": " 15:15:11 up 21 days, 2:06, 1 user, load average: 0.77, 0.42, 0.31", "stdout_lines": [" 15:15:11 up 21 days, 2:06, 1 user, load average: 0.77, 0.42, 0.31"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005665", "end": "2025-12-16 15:14:40.896513", "msg": "", "rc": 0, "start": "2025-12-16 15:14:40.890848", "stderr": "", "stderr_lines": [], "stdout": " 15:14:40 up 16 days, 23:16, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:14:40 up 16 days, 23:16, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004693", "end": "2025-12-16 15:15:12.742358", "msg": "", "rc": 0, "start": "2025-12-16 15:15:12.737665", "stderr": "", "stderr_lines": [], "stdout": " 15:15:12 up 2 days, 4:46, 1 user, load average: 0.06, 0.08, 0.02", "stdout_lines": [" 15:15:12 up 2 days, 4:46, 1 user, load average: 0.06, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003487", "end": "2025-12-16 15:14:43.830615", "msg": "", "rc": 0, "start": "2025-12-16 15:14:43.827128", "stderr": "", "stderr_lines": [], "stdout": " 15:14:43 up 19 days, 18:09, 0 user, load average: 0.36, 0.41, 0.43", "stdout_lines": [" 15:14:43 up 19 days, 18:09, 0 user, load average: 0.36, 0.41, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003270", "end": "2025-12-16 15:14:50.142149", "msg": "", "rc": 0, "start": "2025-12-16 15:14:50.138879", "stderr": "", "stderr_lines": [], "stdout": " 15:14:50 up 16 days, 4:30, 0 user, load average: 0.14, 0.17, 0.18", "stdout_lines": [" 15:14:50 up 16 days, 4:30, 0 user, load average: 0.14, 0.17, 0.18"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004240", "end": "2025-12-16 12:15:13.022497", "msg": "", "rc": 0, "start": "2025-12-16 12:15:13.018257", "stderr": "", "stderr_lines": [], "stdout": "12:15PM up 21 days, 2:05, 1 user, load averages: 0.50, 0.31, 0.26", "stdout_lines": ["12:15PM up 21 days, 2:05, 1 user, load averages: 0.50, 0.31, 0.26"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019569", "end": "2025-12-16 15:15:12.949484", "msg": "", "rc": 0, "start": "2025-12-16 15:15:12.929915", "stderr": "", "stderr_lines": [], "stdout": " 15:15:12 up 14 days, 4:41, 1 user, load average: 0.15, 0.14, 0.10", "stdout_lines": [" 15:15:12 up 14 days, 4:41, 1 user, load average: 0.15, 0.14, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003780", "end": "2025-12-16 15:15:13.153614", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.149834", "stderr": "", "stderr_lines": [], "stdout": " 15:15:13 up 2 days, 4:46, 1 user, load average: 0.01, 0.05, 0.07", "stdout_lines": [" 15:15:13 up 2 days, 4:46, 1 user, load average: 0.01, 0.05, 0.07"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006742", "end": "2025-12-16 15:15:13.230819", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.224077", "stderr": "", "stderr_lines": [], "stdout": " 15:15:13 up 16:43, 1 user, load average: 1.32, 1.15, 1.13", "stdout_lines": [" 15:15:13 up 16:43, 1 user, load average: 1.32, 1.15, 1.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004685", "end": "2025-12-16 15:15:13.623202", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.618517", "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.004184", "end": "2025-12-16 15:15:13.632986", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.628802", "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.004943", "end": "2025-12-16 15:15:13.633916", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.628973", "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.005212", "end": "2025-12-16 15:15:13.669611", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.664399", "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.006494", "end": "2025-12-16 15:15:13.693363", "msg": "", "rc": 0, "start": "2025-12-16 15:15:13.686869", "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.005555", "end": "2025-12-16 15:14:48.651767", "msg": "", "rc": 0, "start": "2025-12-16 15:14:48.646212", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006811", "end": "2025-12-16 15:14:42.562857", "msg": "", "rc": 0, "start": "2025-12-16 15:14:42.556046", "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.010524", "end": "2025-12-16 15:15:14.365719", "msg": "", "rc": 0, "start": "2025-12-16 15:15:14.355195", "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.011689", "end": "2025-12-16 15:15:14.399866", "msg": "", "rc": 0, "start": "2025-12-16 15:15:14.388177", "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.006007", "end": "2025-12-16 15:15:14.600768", "msg": "", "rc": 0, "start": "2025-12-16 15:15:14.594761", "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.005611", "end": "2025-12-16 15:14:45.771034", "msg": "", "rc": 0, "start": "2025-12-16 15:14:45.765423", "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.004534", "end": "2025-12-16 15:14:52.014519", "msg": "", "rc": 0, "start": "2025-12-16 15:14:52.009985", "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.005801", "end": "2025-12-16 12:15:14.883044", "msg": "", "rc": 0, "start": "2025-12-16 12:15:14.877243", "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.005486", "end": "2025-12-16 15:15:15.017671", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.012185", "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.025132", "end": "2025-12-16 15:15:15.016296", "msg": "", "rc": 0, "start": "2025-12-16 15:15:14.991164", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019243", "end": "2025-12-16 15:15:15.249207", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.229964", "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.004193", "end": "2025-12-16 15:15:15.580787", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.576594", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.1%"]}
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.004410", "end": "2025-12-16 15:15:15.579415", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.575005", "stderr": "", "stderr_lines": [], "stdout": "85.3%", "stdout_lines": ["85.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.004634", "end": "2025-12-16 15:15:15.605953", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.601319", "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.004852", "end": "2025-12-16 15:15:15.615878", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.611026", "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.005706", "end": "2025-12-16 15:15:15.627446", "msg": "", "rc": 0, "start": "2025-12-16 15:15:15.621740", "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.003543", "end": "2025-12-16 15:14:50.604524", "msg": "", "rc": 0, "start": "2025-12-16 15:14:50.600981", "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.004420", "end": "2025-12-16 15:14:44.464211", "msg": "", "rc": 0, "start": "2025-12-16 15:14:44.459791", "stderr": "", "stderr_lines": [], "stdout": "69.4%", "stdout_lines": ["69.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.010881", "end": "2025-12-16 15:15:16.293566", "msg": "", "rc": 0, "start": "2025-12-16 15:15:16.282685", "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.012086", "end": "2025-12-16 15:15:16.319099", "msg": "", "rc": 0, "start": "2025-12-16 15:15:16.307013", "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.005997", "end": "2025-12-16 15:15:16.561017", "msg": "", "rc": 0, "start": "2025-12-16 15:15:16.555020", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004374", "end": "2025-12-16 15:14:47.635257", "msg": "", "rc": 0, "start": "2025-12-16 15:14:47.630883", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003763", "end": "2025-12-16 15:14:53.925493", "msg": "", "rc": 0, "start": "2025-12-16 15:14:53.921730", "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.005334", "end": "2025-12-16 12:15:16.799933", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:15:16.794599", "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.005757", "end": "2025-12-16 15:15:16.983576", "msg": "", "rc": 0, "start": "2025-12-16 15:15:16.977819", "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.009551", "end": "2025-12-16 15:15:17.175143", "msg": "", "rc": 0, "start": "2025-12-16 15:15:17.165592", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.025825", "end": "2025-12-16 15:15:16.964475", "msg": "", "rc": 0, "start": "2025-12-16 15:15:16.938650", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005315", "end": "2025-12-16 15:15:17.476880", "msg": "", "rc": 0, "start": "2025-12-16 15:15:17.471565", "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.005408", "end": "2025-12-16 15:15:17.489992", "msg": "", "rc": 0, "start": "2025-12-16 15:15:17.484584", "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.004828", "end": "2025-12-16 15:15:17.496382", "msg": "", "rc": 0, "start": "2025-12-16 15:15:17.491554", "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.003199", "end": "2025-12-16 15:15:17.531573", "msg": "", "rc": 0, "start": "2025-12-16 15:15:17.528374", "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.006446", "end": "2025-12-16 15:15:17.547711", "msg": "", "rc": 0, "start": "2025-12-16 15:15:17.541265", "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.002700", "end": "2025-12-16 15:14:52.521108", "msg": "", "rc": 0, "start": "2025-12-16 15:14:52.518408", "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.002915", "end": "2025-12-16 15:14:46.392625", "msg": "", "rc": 0, "start": "2025-12-16 15:14:46.389710", "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.011739", "end": "2025-12-16 15:15:18.174596", "msg": "", "rc": 0, "start": "2025-12-16 15:15:18.162857", "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.012959", "end": "2025-12-16 15:15:18.201645", "msg": "", "rc": 0, "start": "2025-12-16 15:15:18.188686", "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.003660", "end": "2025-12-16 15:15:18.468688", "msg": "", "rc": 0, "start": "2025-12-16 15:15:18.465028", "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.003175", "end": "2025-12-16 15:14:49.564709", "msg": "", "rc": 0, "start": "2025-12-16 15:14:49.561534", "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.002619", "end": "2025-12-16 15:14:55.826276", "msg": "", "rc": 0, "start": "2025-12-16 15:14:55.823657", "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-16 12:15:18.687315", "msg": "", "rc": 0, "start": "2025-12-16 12:15:18.683261", "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.004442", "end": "2025-12-16 15:15:19.116717", "msg": "", "rc": 0, "start": "2025-12-16 15:15:19.112275", "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.002867", "end": "2025-12-16 15:15:18.895536", "msg": "", "rc": 0, "start": "2025-12-16 15:15:18.892669", "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.028856", "end": "2025-12-16 15:15:18.879749", "msg": "", "rc": 0, "start": "2025-12-16 15:15:18.850893", "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.004253", "end": "2025-12-16 15:15:19.408833", "msg": "", "rc": 0, "start": "2025-12-16 15:15:19.404580", "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.004011", "end": "2025-12-16 15:15:19.433268", "msg": "", "rc": 0, "start": "2025-12-16 15:15:19.429257", "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.004894", "end": "2025-12-16 15:15:19.433442", "msg": "", "rc": 0, "start": "2025-12-16 15:15:19.428548", "stderr": "", "stderr_lines": [], "stdout": "0.71", "stdout_lines": ["0.71"]}
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.005293", "end": "2025-12-16 15:15:19.469025", "msg": "", "rc": 0, "start": "2025-12-16 15:15:19.463732", "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.005658", "end": "2025-12-16 15:15:19.459534", "msg": "", "rc": 0, "start": "2025-12-16 15:15:19.453876", "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.004428", "end": "2025-12-16 15:14:54.448566", "msg": "", "rc": 0, "start": "2025-12-16 15:14:54.444138", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
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.004913", "end": "2025-12-16 15:14:48.316474", "msg": "", "rc": 0, "start": "2025-12-16 15:14:48.311561", "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.010137", "end": "2025-12-16 15:15:20.215932", "msg": "", "rc": 0, "start": "2025-12-16 15:15:20.205795", "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.011151", "end": "2025-12-16 15:15:20.260351", "msg": "", "rc": 0, "start": "2025-12-16 15:15:20.249200", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.005593", "end": "2025-12-16 15:15:20.394351", "msg": "", "rc": 0, "start": "2025-12-16 15:15:20.388758", "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.004812", "end": "2025-12-16 15:14:51.481699", "msg": "", "rc": 0, "start": "2025-12-16 15:14:51.476887", "stderr": "", "stderr_lines": [], "stdout": "0.38", "stdout_lines": ["0.38"]}
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.004191", "end": "2025-12-16 15:14:57.840101", "msg": "", "rc": 0, "start": "2025-12-16 15:14:57.835910", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.005928", "end": "2025-12-16 12:15:20.725925", "msg": "", "rc": 0, "start": "2025-12-16 12:15:20.719997", "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.005274", "end": "2025-12-16 15:15:20.822522", "msg": "", "rc": 0, "start": "2025-12-16 15:15:20.817248", "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.009109", "end": "2025-12-16 15:15:21.130039", "msg": "", "rc": 0, "start": "2025-12-16 15:15:21.120930", "stderr": "", "stderr_lines": [], "stdout": "1.29", "stdout_lines": ["1.29"]}
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-16 15:15:20.803635", "msg": "", "rc": 0, "start": "2025-12-16 15:15:20.779376", "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: 15:15:11 up 21 days, 2:06, 1 user, load average: 0.77, 0.42, 0.31\nDisk Usage: 23%\nMemory Usage: 85.3%\nCPU Load: 0.79\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:11 up 2 days, 4:47, 1 user, load average: 0.15, 0.25, 0.21\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.20\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:11 up 21 days, 2:26, 1 user, load average: 0.64, 0.59, 0.62\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.71\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:11 up 21 days, 3:39, 1 user, load average: 0.74, 0.69, 0.65\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.85\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:11 up 21 days, 4:25, 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: 15:15:12 up 14 days, 4:41, 1 user, load average: 0.15, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 20.4%\nCPU Load: 0.20\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:12 up 193 days, 6:48, 1 user, load average: 0.34, 0.31, 0.23\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.29\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:12 up 193 days, 6:48, 1 user, load average: 0.20, 0.14, 0.14\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.24\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:14:46 up 10 days, 3:04, 0 user, load average: 0.12, 0.17, 0.17\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:14:40 up 16 days, 23:16, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.4%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:15:12 up 2 days, 4:46, 1 user, load average: 0.06, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:14:43 up 19 days, 18:09, 0 user, load average: 0.36, 0.41, 0.43\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:14:50 up 16 days, 4:30, 0 user, load average: 0.14, 0.17, 0.18\nDisk Usage: 75%\nMemory Usage: 60.0%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:15PM up 21 days, 2:05, 1 user, load averages: 0.50, 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: 15:15:13 up 2 days, 4:46, 1 user, load average: 0.01, 0.05, 0.07\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: 15:15:13 up 16:43, 1 user, load average: 1.32, 1.15, 1.13\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.29\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-16T20:15:22.075479+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `fed8ff6661524223ab59987b2d674bc6` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:20:00.003032+00:00 |
| **Fin** | 2025-12-16T20:20:21.782050+00:00 |
| **Durée** | 21.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: [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: [mimi.pc.home]
ok: [hp2.i7.home]
ok: [hp.nas.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.003197", "end": "2025-12-16 15:20:11.150080", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.146883", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 21 days, 2:11, 1 user, load average: 0.39, 0.36, 0.31", "stdout_lines": [" 15:20:11 up 21 days, 2:11, 1 user, load average: 0.39, 0.36, 0.31"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003319", "end": "2025-12-16 15:20:11.164650", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.161331", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 21 days, 2:31, 1 user, load average: 0.54, 0.54, 0.60", "stdout_lines": [" 15:20:11 up 21 days, 2:31, 1 user, load average: 0.54, 0.54, 0.60"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003674", "end": "2025-12-16 15:20:11.164625", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.160951", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 21 days, 4:30, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:20:11 up 21 days, 4:30, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003988", "end": "2025-12-16 15:20:11.181497", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.177509", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 21 days, 3:44, 1 user, load average: 0.90, 0.66, 0.64", "stdout_lines": [" 15:20:11 up 21 days, 3:44, 1 user, load average: 0.90, 0.66, 0.64"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002834", "end": "2025-12-16 15:20:11.198569", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.195735", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 2 days, 4:52, 1 user, load average: 0.22, 0.23, 0.20", "stdout_lines": [" 15:20:11 up 2 days, 4:52, 1 user, load average: 0.22, 0.23, 0.20"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003261", "end": "2025-12-16 15:19:46.186414", "msg": "", "rc": 0, "start": "2025-12-16 15:19:46.183153", "stderr": "", "stderr_lines": [], "stdout": " 15:19:46 up 10 days, 3:09, 0 user, load average: 0.27, 0.17, 0.17", "stdout_lines": [" 15:19:46 up 10 days, 3:09, 0 user, load average: 0.27, 0.17, 0.17"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003586", "end": "2025-12-16 15:19:40.070550", "msg": "", "rc": 0, "start": "2025-12-16 15:19:40.066964", "stderr": "", "stderr_lines": [], "stdout": " 15:19:40 up 16 days, 23:21, 0 user, load average: 0.09, 0.02, 0.01", "stdout_lines": [" 15:19:40 up 16 days, 23:21, 0 user, load average: 0.09, 0.02, 0.01"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008339", "end": "2025-12-16 15:20:11.849822", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.841483", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 193 days, 6:53, 1 user, load average: 0.24, 0.17, 0.15", "stdout_lines": [" 15:20:11 up 193 days, 6:53, 1 user, load average: 0.24, 0.17, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009405", "end": "2025-12-16 15:20:11.895969", "msg": "", "rc": 0, "start": "2025-12-16 15:20:11.886564", "stderr": "", "stderr_lines": [], "stdout": " 15:20:11 up 193 days, 6:53, 1 user, load average: 0.48, 0.30, 0.23", "stdout_lines": [" 15:20:11 up 193 days, 6:53, 1 user, load average: 0.48, 0.30, 0.23"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004859", "end": "2025-12-16 15:20:12.131386", "msg": "", "rc": 0, "start": "2025-12-16 15:20:12.126527", "stderr": "", "stderr_lines": [], "stdout": " 15:20:12 up 2 days, 4:51, 1 user, load average: 0.00, 0.04, 0.01", "stdout_lines": [" 15:20:12 up 2 days, 4:51, 1 user, load average: 0.00, 0.04, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003233", "end": "2025-12-16 15:19:43.228340", "msg": "", "rc": 0, "start": "2025-12-16 15:19:43.225107", "stderr": "", "stderr_lines": [], "stdout": " 15:19:43 up 19 days, 18:14, 0 user, load average: 0.63, 0.47, 0.45", "stdout_lines": [" 15:19:43 up 19 days, 18:14, 0 user, load average: 0.63, 0.47, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004461", "end": "2025-12-16 12:20:12.354159", "msg": "", "rc": 0, "start": "2025-12-16 12:20:12.349698", "stderr": "", "stderr_lines": [], "stdout": "12:20PM up 21 days, 2:09, 1 user, load averages: 0.27, 0.26, 0.25", "stdout_lines": ["12:20PM up 21 days, 2:09, 1 user, load averages: 0.27, 0.26, 0.25"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003326", "end": "2025-12-16 15:19:49.504401", "msg": "", "rc": 0, "start": "2025-12-16 15:19:49.501075", "stderr": "", "stderr_lines": [], "stdout": " 15:19:49 up 16 days, 4:35, 0 user, load average: 0.16, 0.18, 0.18", "stdout_lines": [" 15:19:49 up 16 days, 4:35, 0 user, load average: 0.16, 0.18, 0.18"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003730", "end": "2025-12-16 15:20:12.548714", "msg": "", "rc": 0, "start": "2025-12-16 15:20:12.544984", "stderr": "", "stderr_lines": [], "stdout": " 15:20:12 up 2 days, 4:51, 1 user, load average: 0.54, 0.31, 0.16", "stdout_lines": [" 15:20:12 up 2 days, 4:51, 1 user, load average: 0.54, 0.31, 0.16"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007886", "end": "2025-12-16 15:20:12.995666", "msg": "", "rc": 0, "start": "2025-12-16 15:20:12.987780", "stderr": "", "stderr_lines": [], "stdout": " 15:20:12 up 16:48, 1 user, load average: 1.33, 1.11, 1.10", "stdout_lines": [" 15:20:12 up 16:48, 1 user, load average: 1.33, 1.11, 1.10"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019479", "end": "2025-12-16 15:20:12.543768", "msg": "", "rc": 0, "start": "2025-12-16 15:20:12.524289", "stderr": "", "stderr_lines": [], "stdout": " 15:20:12 up 14 days, 4:46, 1 user, load average: 0.24, 0.15, 0.10", "stdout_lines": [" 15:20:12 up 14 days, 4:46, 1 user, load average: 0.24, 0.15, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004330", "end": "2025-12-16 15:20:13.064588", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.060258", "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.004167", "end": "2025-12-16 15:20:13.085367", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.081200", "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.005475", "end": "2025-12-16 15:20:13.085520", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.080045", "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.004793", "end": "2025-12-16 15:20:13.108738", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.103945", "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.005954", "end": "2025-12-16 15:20:13.138636", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.132682", "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.004947", "end": "2025-12-16 15:19:48.074228", "msg": "", "rc": 0, "start": "2025-12-16 15:19:48.069281", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.007227", "end": "2025-12-16 15:19:41.985496", "msg": "", "rc": 0, "start": "2025-12-16 15:19:41.978269", "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.010625", "end": "2025-12-16 15:20:13.840288", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.829663", "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.011518", "end": "2025-12-16 15:20:13.839562", "msg": "", "rc": 0, "start": "2025-12-16 15:20:13.828044", "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-16 15:20:14.022980", "msg": "", "rc": 0, "start": "2025-12-16 15:20:14.017318", "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.005453", "end": "2025-12-16 15:19:45.181428", "msg": "", "rc": 0, "start": "2025-12-16 15:19:45.175975", "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.005512", "end": "2025-12-16 12:20:14.297169", "msg": "", "rc": 0, "start": "2025-12-16 12:20:14.291657", "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.005137", "end": "2025-12-16 15:19:51.454515", "msg": "", "rc": 0, "start": "2025-12-16 15:19:51.449378", "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.005443", "end": "2025-12-16 15:20:14.436441", "msg": "", "rc": 0, "start": "2025-12-16 15:20:14.430998", "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.025515", "end": "2025-12-16 15:20:14.455481", "msg": "", "rc": 0, "start": "2025-12-16 15:20:14.429966", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019580", "end": "2025-12-16 15:20:15.044390", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.024810", "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.004382", "end": "2025-12-16 15:20:14.995981", "msg": "", "rc": 0, "start": "2025-12-16 15:20:14.991599", "stderr": "", "stderr_lines": [], "stdout": "85.3%", "stdout_lines": ["85.3%"]}
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.004207", "end": "2025-12-16 15:20:15.007589", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.003382", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005350", "end": "2025-12-16 15:20:15.028017", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.022667", "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.005138", "end": "2025-12-16 15:20:15.044808", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.039670", "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.006551", "end": "2025-12-16 15:20:15.073001", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.066450", "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.003821", "end": "2025-12-16 15:19:50.029179", "msg": "", "rc": 0, "start": "2025-12-16 15:19:50.025358", "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.005445", "end": "2025-12-16 15:19:43.930325", "msg": "", "rc": 0, "start": "2025-12-16 15:19:43.924880", "stderr": "", "stderr_lines": [], "stdout": "69.3%", "stdout_lines": ["69.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.011017", "end": "2025-12-16 15:20:15.691532", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.680515", "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.011939", "end": "2025-12-16 15:20:15.713216", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.701277", "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.005811", "end": "2025-12-16 15:20:15.995122", "msg": "", "rc": 0, "start": "2025-12-16 15:20:15.989311", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.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.005487", "end": "2025-12-16 12:20:16.170061", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:20:16.164574", "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.003830", "end": "2025-12-16 15:19:53.338967", "msg": "", "rc": 0, "start": "2025-12-16 15:19:53.335137", "stderr": "", "stderr_lines": [], "stdout": "59.3%", "stdout_lines": ["59.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.005441", "end": "2025-12-16 15:19:47.137953", "msg": "", "rc": 0, "start": "2025-12-16 15:19:47.132512", "stderr": "", "stderr_lines": [], "stdout": "26.9%", "stdout_lines": ["26.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.005571", "end": "2025-12-16 15:20:16.420344", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.414773", "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.008568", "end": "2025-12-16 15:20:16.980514", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.971946", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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-16 15:20:16.373482", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.347706", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.005217", "end": "2025-12-16 15:20:16.908305", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.903088", "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.005501", "end": "2025-12-16 15:20:16.924129", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.918628", "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.004874", "end": "2025-12-16 15:20:16.936849", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.931975", "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.003188", "end": "2025-12-16 15:20:16.952431", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.949243", "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.006724", "end": "2025-12-16 15:20:16.973015", "msg": "", "rc": 0, "start": "2025-12-16 15:20:16.966291", "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.002675", "end": "2025-12-16 15:19:51.951825", "msg": "", "rc": 0, "start": "2025-12-16 15:19:51.949150", "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.003030", "end": "2025-12-16 15:19:45.813459", "msg": "", "rc": 0, "start": "2025-12-16 15:19:45.810429", "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.011554", "end": "2025-12-16 15:20:17.626908", "msg": "", "rc": 0, "start": "2025-12-16 15:20:17.615354", "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.013073", "end": "2025-12-16 15:20:17.651786", "msg": "", "rc": 0, "start": "2025-12-16 15:20:17.638713", "stderr": "", "stderr_lines": [], "stdout": "37.5°C", "stdout_lines": ["37.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.003293", "end": "2025-12-16 15:20:17.903230", "msg": "", "rc": 0, "start": "2025-12-16 15:20:17.899937", "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.003238", "end": "2025-12-16 15:19:49.001007", "msg": "", "rc": 0, "start": "2025-12-16 15:19:48.997769", "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-16 12:20:18.123965", "msg": "", "rc": 0, "start": "2025-12-16 12:20:18.120012", "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.003250", "end": "2025-12-16 15:19:55.287066", "msg": "", "rc": 0, "start": "2025-12-16 15:19:55.283816", "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.003515", "end": "2025-12-16 15:20:18.321615", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.318100", "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.004572", "end": "2025-12-16 15:20:18.928221", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.923649", "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.029112", "end": "2025-12-16 15:20:18.324907", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.295795", "stderr": "", "stderr_lines": [], "stdout": "36.1°C", "stdout_lines": ["36.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.004297", "end": "2025-12-16 15:20:18.846618", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.842321", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.004679", "end": "2025-12-16 15:20:18.863644", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.858965", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.003976", "end": "2025-12-16 15:20:18.881180", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.877204", "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.005220", "end": "2025-12-16 15:20:18.897258", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.892038", "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.005695", "end": "2025-12-16 15:20:18.904667", "msg": "", "rc": 0, "start": "2025-12-16 15:20:18.898972", "stderr": "", "stderr_lines": [], "stdout": "1.13", "stdout_lines": ["1.13"]}
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.004162", "end": "2025-12-16 15:19:53.866573", "msg": "", "rc": 0, "start": "2025-12-16 15:19:53.862411", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005139", "end": "2025-12-16 15:19:47.723431", "msg": "", "rc": 0, "start": "2025-12-16 15:19:47.718292", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.010095", "end": "2025-12-16 15:20:19.614471", "msg": "", "rc": 0, "start": "2025-12-16 15:20:19.604376", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.011139", "end": "2025-12-16 15:20:19.665802", "msg": "", "rc": 0, "start": "2025-12-16 15:20:19.654663", "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.006255", "end": "2025-12-16 15:20:19.803296", "msg": "", "rc": 0, "start": "2025-12-16 15:20:19.797041", "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.005277", "end": "2025-12-16 15:19:50.887019", "msg": "", "rc": 0, "start": "2025-12-16 15:19:50.881742", "stderr": "", "stderr_lines": [], "stdout": "0.68", "stdout_lines": ["0.68"]}
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.004384", "end": "2025-12-16 15:19:57.256802", "msg": "", "rc": 0, "start": "2025-12-16 15:19:57.252418", "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.005961", "end": "2025-12-16 12:20:20.136038", "msg": "", "rc": 0, "start": "2025-12-16 12:20:20.130077", "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.005496", "end": "2025-12-16 15:20:20.228621", "msg": "", "rc": 0, "start": "2025-12-16 15:20:20.223125", "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.006942", "end": "2025-12-16 15:20:20.874128", "msg": "", "rc": 0, "start": "2025-12-16 15:20:20.867186", "stderr": "", "stderr_lines": [], "stdout": "1.30", "stdout_lines": ["1.30"]}
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.024146", "end": "2025-12-16 15:20:20.234463", "msg": "", "rc": 0, "start": "2025-12-16 15:20:20.210317", "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: 15:20:11 up 2 days, 4:52, 1 user, load average: 0.22, 0.23, 0.20\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.49\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:11 up 21 days, 2:11, 1 user, load average: 0.39, 0.36, 0.31\nDisk Usage: 23%\nMemory Usage: 85.3%\nCPU Load: 0.36\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:11 up 21 days, 2:31, 1 user, load average: 0.54, 0.54, 0.60\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.53\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:11 up 21 days, 3:44, 1 user, load average: 0.90, 0.66, 0.64\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 1.13\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:11 up 21 days, 4:30, 1 user, load average: 0.00, 0.00, 0.00\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: 15:20:12 up 14 days, 4:46, 1 user, load average: 0.24, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 20.3%\nCPU Load: 0.28\nCPU Temp: 36.1°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:11 up 193 days, 6:53, 1 user, load average: 0.48, 0.30, 0.23\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.48\nCPU Temp: 37.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:11 up 193 days, 6:53, 1 user, load average: 0.24, 0.17, 0.15\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.29\nCPU Temp: 32.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:19:46 up 10 days, 3:09, 0 user, load average: 0.27, 0.17, 0.17\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:19:40 up 16 days, 23:21, 0 user, load average: 0.09, 0.02, 0.01\nDisk Usage: 24%\nMemory Usage: 69.3%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:12 up 2 days, 4:51, 1 user, load average: 0.00, 0.04, 0.01\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:19:43 up 19 days, 18:14, 0 user, load average: 0.63, 0.47, 0.45\nDisk Usage: 28%\nMemory Usage: 26.9%\nCPU Load: 0.68\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:19:49 up 16 days, 4:35, 0 user, load average: 0.16, 0.18, 0.18\nDisk Usage: 75%\nMemory Usage: 59.3%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:20PM up 21 days, 2:09, 1 user, load averages: 0.27, 0.26, 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: 15:20:12 up 2 days, 4:51, 1 user, load average: 0.54, 0.31, 0.16\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.46\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:20:12 up 16:48, 1 user, load average: 1.33, 1.11, 1.10\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.30\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-16T20:20:21.820529+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `efea2ee2746d4066ad174418f6914acb` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:25:00.000328+00:00 |
| **Fin** | 2025-12-16T20:25:22.048860+00:00 |
| **Durée** | 22.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.4gb.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.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: [automate.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: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003400", "end": "2025-12-16 15:25:11.985170", "msg": "", "rc": 0, "start": "2025-12-16 15:25:11.981770", "stderr": "", "stderr_lines": [], "stdout": " 15:25:11 up 21 days, 2:36, 1 user, load average: 0.62, 0.58, 0.60", "stdout_lines": [" 15:25:11 up 21 days, 2:36, 1 user, load average: 0.62, 0.58, 0.60"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003979", "end": "2025-12-16 15:25:11.992263", "msg": "", "rc": 0, "start": "2025-12-16 15:25:11.988284", "stderr": "", "stderr_lines": [], "stdout": " 15:25:11 up 21 days, 4:35, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:25:11 up 21 days, 4:35, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003051", "end": "2025-12-16 15:25:12.023005", "msg": "", "rc": 0, "start": "2025-12-16 15:25:12.019954", "stderr": "", "stderr_lines": [], "stdout": " 15:25:12 up 2 days, 4:57, 1 user, load average: 0.19, 0.28, 0.24", "stdout_lines": [" 15:25:12 up 2 days, 4:57, 1 user, load average: 0.19, 0.28, 0.24"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003846", "end": "2025-12-16 15:25:12.024402", "msg": "", "rc": 0, "start": "2025-12-16 15:25:12.020556", "stderr": "", "stderr_lines": [], "stdout": " 15:25:12 up 21 days, 3:49, 1 user, load average: 0.90, 0.69, 0.65", "stdout_lines": [" 15:25:12 up 21 days, 3:49, 1 user, load average: 0.90, 0.69, 0.65"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003182", "end": "2025-12-16 15:24:46.995600", "msg": "", "rc": 0, "start": "2025-12-16 15:24:46.992418", "stderr": "", "stderr_lines": [], "stdout": " 15:24:46 up 10 days, 3:14, 0 user, load average: 0.10, 0.10, 0.13", "stdout_lines": [" 15:24:46 up 10 days, 3:14, 0 user, load average: 0.10, 0.10, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008595", "end": "2025-12-16 15:25:12.663282", "msg": "", "rc": 0, "start": "2025-12-16 15:25:12.654687", "stderr": "", "stderr_lines": [], "stdout": " 15:25:12 up 193 days, 6:58, 1 user, load average: 0.24, 0.15, 0.14", "stdout_lines": [" 15:25:12 up 193 days, 6:58, 1 user, load average: 0.24, 0.15, 0.14"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009274", "end": "2025-12-16 15:25:12.711604", "msg": "", "rc": 0, "start": "2025-12-16 15:25:12.702330", "stderr": "", "stderr_lines": [], "stdout": " 15:25:12 up 193 days, 6:58, 1 user, load average: 0.54, 0.35, 0.26", "stdout_lines": [" 15:25:12 up 193 days, 6:58, 1 user, load average: 0.54, 0.35, 0.26"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003719", "end": "2025-12-16 15:25:12.983031", "msg": "", "rc": 0, "start": "2025-12-16 15:25:11.979312", "stderr": "", "stderr_lines": [], "stdout": " 15:25:11 up 21 days, 2:16, 1 user, load average: 0.33, 0.29, 0.28", "stdout_lines": [" 15:25:11 up 21 days, 2:16, 1 user, load average: 0.33, 0.29, 0.28"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003461", "end": "2025-12-16 15:24:41.285898", "msg": "", "rc": 0, "start": "2025-12-16 15:24:41.282437", "stderr": "", "stderr_lines": [], "stdout": " 15:24:41 up 16 days, 23:26, 0 user, load average: 0.06, 0.03, 0.00", "stdout_lines": [" 15:24:41 up 16 days, 23:26, 0 user, load average: 0.06, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004691", "end": "2025-12-16 15:25:13.157621", "msg": "", "rc": 0, "start": "2025-12-16 15:25:13.152930", "stderr": "", "stderr_lines": [], "stdout": " 15:25:13 up 2 days, 4:56, 1 user, load average: 0.07, 0.04, 0.00", "stdout_lines": [" 15:25:13 up 2 days, 4:56, 1 user, load average: 0.07, 0.04, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003105", "end": "2025-12-16 15:24:44.215101", "msg": "", "rc": 0, "start": "2025-12-16 15:24:44.211996", "stderr": "", "stderr_lines": [], "stdout": " 15:24:44 up 19 days, 18:19, 0 user, load average: 0.32, 0.46, 0.45", "stdout_lines": [" 15:24:44 up 19 days, 18:19, 0 user, load average: 0.32, 0.46, 0.45"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003294", "end": "2025-12-16 15:24:50.558072", "msg": "", "rc": 0, "start": "2025-12-16 15:24:50.554778", "stderr": "", "stderr_lines": [], "stdout": " 15:24:50 up 16 days, 4:40, 0 user, load average: 0.07, 0.17, 0.17", "stdout_lines": [" 15:24:50 up 16 days, 4:40, 0 user, load average: 0.07, 0.17, 0.17"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004338", "end": "2025-12-16 12:25:13.425694", "msg": "", "rc": 0, "start": "2025-12-16 12:25:13.421356", "stderr": "", "stderr_lines": [], "stdout": "12:25PM up 21 days, 2:15, 1 user, load averages: 0.33, 0.26, 0.25", "stdout_lines": ["12:25PM up 21 days, 2:15, 1 user, load averages: 0.33, 0.26, 0.25"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019892", "end": "2025-12-16 15:25:13.358427", "msg": "", "rc": 0, "start": "2025-12-16 15:25:13.338535", "stderr": "", "stderr_lines": [], "stdout": " 15:25:13 up 14 days, 4:51, 1 user, load average: 0.30, 0.16, 0.10", "stdout_lines": [" 15:25:13 up 14 days, 4:51, 1 user, load average: 0.30, 0.16, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008307", "end": "2025-12-16 15:25:14.367583", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.359276", "stderr": "", "stderr_lines": [], "stdout": " 15:25:14 up 16:54, 1 user, load average: 1.28, 1.14, 1.10", "stdout_lines": [" 15:25:14 up 16:54, 1 user, load average: 1.28, 1.14, 1.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004398", "end": "2025-12-16 15:25:13.593914", "msg": "", "rc": 0, "start": "2025-12-16 15:25:13.589516", "stderr": "", "stderr_lines": [], "stdout": " 15:25:13 up 2 days, 4:56, 1 user, load average: 0.07, 0.15, 0.13", "stdout_lines": [" 15:25:13 up 2 days, 4:56, 1 user, load average: 0.07, 0.15, 0.13"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004290", "end": "2025-12-16 15:25:14.006990", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.002700", "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.004774", "end": "2025-12-16 15:25:14.024734", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.019960", "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.004064", "end": "2025-12-16 15:25:14.029296", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.025232", "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.004839", "end": "2025-12-16 15:25:14.043486", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.038647", "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.005873", "end": "2025-12-16 15:25:14.067953", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.062080", "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.005356", "end": "2025-12-16 15:24:49.019445", "msg": "", "rc": 0, "start": "2025-12-16 15:24:49.014089", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005811", "end": "2025-12-16 15:24:42.915509", "msg": "", "rc": 0, "start": "2025-12-16 15:24:42.909698", "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.010611", "end": "2025-12-16 15:25:14.758815", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.748204", "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.011512", "end": "2025-12-16 15:25:14.797147", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.785635", "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.005936", "end": "2025-12-16 15:25:14.982548", "msg": "", "rc": 0, "start": "2025-12-16 15:25:14.976612", "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.005433", "end": "2025-12-16 15:24:46.104435", "msg": "", "rc": 0, "start": "2025-12-16 15:24:46.099002", "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.004694", "end": "2025-12-16 15:24:52.372278", "msg": "", "rc": 0, "start": "2025-12-16 15:24:52.367584", "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.005522", "end": "2025-12-16 12:25:15.250397", "msg": "", "rc": 0, "start": "2025-12-16 12:25:15.244875", "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.006124", "end": "2025-12-16 15:25:15.403396", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.397272", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020584", "end": "2025-12-16 15:25:16.346413", "msg": "", "rc": 0, "start": "2025-12-16 15:25:16.325829", "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.025226", "end": "2025-12-16 15:25:15.401407", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.376181", "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.004332", "end": "2025-12-16 15:25:15.923253", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.918921", "stderr": "", "stderr_lines": [], "stdout": "85.2%", "stdout_lines": ["85.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.004287", "end": "2025-12-16 15:25:15.941176", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.936889", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005230", "end": "2025-12-16 15:25:15.957867", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.952637", "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.004819", "end": "2025-12-16 15:25:15.982795", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.977976", "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.005532", "end": "2025-12-16 15:25:16.003594", "msg": "", "rc": 0, "start": "2025-12-16 15:25:15.998062", "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.004047", "end": "2025-12-16 15:24:50.944160", "msg": "", "rc": 0, "start": "2025-12-16 15:24:50.940113", "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.006870", "end": "2025-12-16 15:24:44.854527", "msg": "", "rc": 0, "start": "2025-12-16 15:24:44.847657", "stderr": "", "stderr_lines": [], "stdout": "69.3%", "stdout_lines": ["69.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.011057", "end": "2025-12-16 15:25:16.629695", "msg": "", "rc": 0, "start": "2025-12-16 15:25:16.618638", "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.011903", "end": "2025-12-16 15:25:16.663823", "msg": "", "rc": 0, "start": "2025-12-16 15:25:16.651920", "stderr": "", "stderr_lines": [], "stdout": "13.3%", "stdout_lines": ["13.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.005828", "end": "2025-12-16 15:25:16.897009", "msg": "", "rc": 0, "start": "2025-12-16 15:25:16.891181", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003349", "end": "2025-12-16 15:24:54.252901", "msg": "", "rc": 0, "start": "2025-12-16 15:24:54.249552", "stderr": "", "stderr_lines": [], "stdout": "61.4%", "stdout_lines": ["61.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.005366", "end": "2025-12-16 12:25:17.136418", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:25:17.131052", "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.007965", "end": "2025-12-16 15:24:48.082270", "msg": "", "rc": 0, "start": "2025-12-16 15:24:48.074305", "stderr": "", "stderr_lines": [], "stdout": "26.9%", "stdout_lines": ["26.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.006198", "end": "2025-12-16 15:25:17.321242", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.315044", "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.009964", "end": "2025-12-16 15:25:18.315576", "msg": "", "rc": 0, "start": "2025-12-16 15:25:18.305612", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.025970", "end": "2025-12-16 15:25:17.318751", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.292781", "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.005343", "end": "2025-12-16 15:25:17.849995", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.844652", "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.004860", "end": "2025-12-16 15:25:17.862642", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.857782", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005549", "end": "2025-12-16 15:25:17.865200", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.859651", "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.002853", "end": "2025-12-16 15:25:17.906119", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.903266", "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.009366", "end": "2025-12-16 15:25:17.927921", "msg": "", "rc": 0, "start": "2025-12-16 15:25:17.918555", "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.002625", "end": "2025-12-16 15:24:52.864942", "msg": "", "rc": 0, "start": "2025-12-16 15:24:52.862317", "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.003238", "end": "2025-12-16 15:24:46.768943", "msg": "", "rc": 0, "start": "2025-12-16 15:24:46.765705", "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.011637", "end": "2025-12-16 15:25:18.542816", "msg": "", "rc": 0, "start": "2025-12-16 15:25:18.531179", "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.012955", "end": "2025-12-16 15:25:18.584093", "msg": "", "rc": 0, "start": "2025-12-16 15:25:18.571138", "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.003366", "end": "2025-12-16 15:25:18.806414", "msg": "", "rc": 0, "start": "2025-12-16 15:25:18.803048", "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.002956", "end": "2025-12-16 15:24:49.951411", "msg": "", "rc": 0, "start": "2025-12-16 15:24:49.948455", "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-16 15:24:56.169222", "msg": "", "rc": 0, "start": "2025-12-16 15:24:56.166543", "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-16 12:25:19.046272", "msg": "", "rc": 0, "start": "2025-12-16 12:25:19.042337", "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.003191", "end": "2025-12-16 15:25:19.234679", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.231488", "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-16 15:25:20.322012", "msg": "", "rc": 0, "start": "2025-12-16 15:25:20.317978", "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.028500", "end": "2025-12-16 15:25:19.245573", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.217073", "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.004254", "end": "2025-12-16 15:25:19.752454", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.748200", "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.004032", "end": "2025-12-16 15:25:19.778481", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.774449", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.004840", "end": "2025-12-16 15:25:19.788436", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.783596", "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.006172", "end": "2025-12-16 15:25:19.816696", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.810524", "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.005800", "end": "2025-12-16 15:25:19.831377", "msg": "", "rc": 0, "start": "2025-12-16 15:25:19.825577", "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.004218", "end": "2025-12-16 15:24:54.781370", "msg": "", "rc": 0, "start": "2025-12-16 15:24:54.777152", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.005149", "end": "2025-12-16 15:24:48.652976", "msg": "", "rc": 0, "start": "2025-12-16 15:24:48.647827", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.010169", "end": "2025-12-16 15:25:20.544922", "msg": "", "rc": 0, "start": "2025-12-16 15:25:20.534753", "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.011032", "end": "2025-12-16 15:25:20.577463", "msg": "", "rc": 0, "start": "2025-12-16 15:25:20.566431", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
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.006087", "end": "2025-12-16 15:25:20.734099", "msg": "", "rc": 0, "start": "2025-12-16 15:25:20.728012", "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.005220", "end": "2025-12-16 15:24:51.831361", "msg": "", "rc": 0, "start": "2025-12-16 15:24:51.826141", "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.004224", "end": "2025-12-16 15:24:58.165428", "msg": "", "rc": 0, "start": "2025-12-16 15:24:58.161204", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.006039", "end": "2025-12-16 12:25:21.039066", "msg": "", "rc": 0, "start": "2025-12-16 12:25:21.033027", "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.005700", "end": "2025-12-16 15:25:21.160211", "msg": "", "rc": 0, "start": "2025-12-16 15:25:21.154511", "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.008395", "end": "2025-12-16 15:25:22.241024", "msg": "", "rc": 0, "start": "2025-12-16 15:25:22.232629", "stderr": "", "stderr_lines": [], "stdout": "1.26", "stdout_lines": ["1.26"]}
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.024411", "end": "2025-12-16 15:25:21.125620", "msg": "", "rc": 0, "start": "2025-12-16 15:25:21.101209", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
TASK [Display health status] ***************************************************
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:11 up 21 days, 2:36, 1 user, load average: 0.62, 0.58, 0.60\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.60\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:11 up 21 days, 2:16, 1 user, load average: 0.33, 0.29, 0.28\nDisk Usage: 23%\nMemory Usage: 85.2%\nCPU Load: 0.30\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:12 up 2 days, 4:57, 1 user, load average: 0.19, 0.28, 0.24\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.23\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:12 up 21 days, 3:49, 1 user, load average: 0.90, 0.69, 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: 15:25:11 up 21 days, 4:35, 1 user, load average: 0.00, 0.00, 0.00\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: 15:25:13 up 14 days, 4:51, 1 user, load average: 0.30, 0.16, 0.10\nDisk Usage: 21%\nMemory Usage: 20.1%\nCPU Load: 0.41\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:12 up 193 days, 6:58, 1 user, load average: 0.54, 0.35, 0.26\nDisk Usage: 6%\nMemory Usage: 13.3%\nCPU Load: 0.46\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:12 up 193 days, 6:58, 1 user, load average: 0.24, 0.15, 0.14\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.28\nCPU Temp: 31.2°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:24:46 up 10 days, 3:14, 0 user, load average: 0.10, 0.10, 0.13\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:24:41 up 16 days, 23:26, 0 user, load average: 0.06, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.3%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:13 up 2 days, 4:56, 1 user, load average: 0.07, 0.04, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:24:44 up 19 days, 18:19, 0 user, load average: 0.32, 0.46, 0.45\nDisk Usage: 28%\nMemory Usage: 26.9%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:24:50 up 16 days, 4:40, 0 user, load average: 0.07, 0.17, 0.17\nDisk Usage: 75%\nMemory Usage: 61.4%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:25PM up 21 days, 2:15, 1 user, load averages: 0.33, 0.26, 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: 15:25:13 up 2 days, 4:56, 1 user, load average: 0.07, 0.15, 0.13\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:25:14 up 16:54, 1 user, load average: 1.28, 1.14, 1.10\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.26\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-16T20:25:22.087655+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `2d97823549fa40d387e3aec2841ea7b9` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:30:00.002462+00:00 |
| **Fin** | 2025-12-16T20:30:22.198084+00:00 |
| **Durée** | 22.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: [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: [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.003246", "end": "2025-12-16 15:30:11.724110", "msg": "", "rc": 0, "start": "2025-12-16 15:30:11.720864", "stderr": "", "stderr_lines": [], "stdout": " 15:30:11 up 21 days, 2:41, 1 user, load average: 0.59, 0.64, 0.63", "stdout_lines": [" 15:30:11 up 21 days, 2:41, 1 user, load average: 0.59, 0.64, 0.63"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003721", "end": "2025-12-16 15:30:11.735327", "msg": "", "rc": 0, "start": "2025-12-16 15:30:11.731606", "stderr": "", "stderr_lines": [], "stdout": " 15:30:11 up 21 days, 4:40, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:30:11 up 21 days, 4:40, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003877", "end": "2025-12-16 15:30:11.747923", "msg": "", "rc": 0, "start": "2025-12-16 15:30:11.744046", "stderr": "", "stderr_lines": [], "stdout": " 15:30:11 up 21 days, 3:54, 1 user, load average: 0.72, 0.73, 0.67", "stdout_lines": [" 15:30:11 up 21 days, 3:54, 1 user, load average: 0.72, 0.73, 0.67"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002838", "end": "2025-12-16 15:30:11.758565", "msg": "", "rc": 0, "start": "2025-12-16 15:30:11.755727", "stderr": "", "stderr_lines": [], "stdout": " 15:30:11 up 2 days, 5:02, 1 user, load average: 0.88, 0.56, 0.36", "stdout_lines": [" 15:30:11 up 2 days, 5:02, 1 user, load average: 0.88, 0.56, 0.36"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003173", "end": "2025-12-16 15:29:46.761037", "msg": "", "rc": 0, "start": "2025-12-16 15:29:46.757864", "stderr": "", "stderr_lines": [], "stdout": " 15:29:46 up 10 days, 3:19, 0 user, load average: 2.13, 0.56, 0.27", "stdout_lines": [" 15:29:46 up 10 days, 3:19, 0 user, load average: 2.13, 0.56, 0.27"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008497", "end": "2025-12-16 15:30:12.425640", "msg": "", "rc": 0, "start": "2025-12-16 15:30:12.417143", "stderr": "", "stderr_lines": [], "stdout": " 15:30:12 up 193 days, 7:03, 1 user, load average: 0.26, 0.15, 0.13", "stdout_lines": [" 15:30:12 up 193 days, 7:03, 1 user, load average: 0.26, 0.15, 0.13"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009284", "end": "2025-12-16 15:30:12.461572", "msg": "", "rc": 0, "start": "2025-12-16 15:30:12.452288", "stderr": "", "stderr_lines": [], "stdout": " 15:30:12 up 193 days, 7:03, 1 user, load average: 0.34, 0.28, 0.25", "stdout_lines": [" 15:30:12 up 193 days, 7:03, 1 user, load average: 0.34, 0.28, 0.25"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004245", "end": "2025-12-16 15:30:12.714573", "msg": "", "rc": 0, "start": "2025-12-16 15:30:11.710328", "stderr": "", "stderr_lines": [], "stdout": " 15:30:11 up 21 days, 2:21, 1 user, load average: 0.59, 0.37, 0.30", "stdout_lines": [" 15:30:11 up 21 days, 2:21, 1 user, load average: 0.59, 0.37, 0.30"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003682", "end": "2025-12-16 15:29:41.055991", "msg": "", "rc": 0, "start": "2025-12-16 15:29:41.052309", "stderr": "", "stderr_lines": [], "stdout": " 15:29:41 up 16 days, 23:31, 0 user, load average: 0.01, 0.02, 0.00", "stdout_lines": [" 15:29:41 up 16 days, 23:31, 0 user, load average: 0.01, 0.02, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004681", "end": "2025-12-16 15:30:12.938401", "msg": "", "rc": 0, "start": "2025-12-16 15:30:12.933720", "stderr": "", "stderr_lines": [], "stdout": " 15:30:12 up 2 days, 5:01, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:30:12 up 2 days, 5:01, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003261", "end": "2025-12-16 15:29:43.961361", "msg": "", "rc": 0, "start": "2025-12-16 15:29:43.958100", "stderr": "", "stderr_lines": [], "stdout": " 15:29:43 up 19 days, 18:24, 0 user, load average: 0.55, 0.47, 0.46", "stdout_lines": [" 15:29:43 up 19 days, 18:24, 0 user, load average: 0.55, 0.47, 0.46"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004134", "end": "2025-12-16 15:29:50.298730", "msg": "", "rc": 0, "start": "2025-12-16 15:29:50.294596", "stderr": "", "stderr_lines": [], "stdout": " 15:29:50 up 16 days, 4:45, 0 user, load average: 0.11, 0.15, 0.17", "stdout_lines": [" 15:29:50 up 16 days, 4:45, 0 user, load average: 0.11, 0.15, 0.17"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004516", "end": "2025-12-16 12:30:13.191189", "msg": "", "rc": 0, "start": "2025-12-16 12:30:13.186673", "stderr": "", "stderr_lines": [], "stdout": "12:30PM up 21 days, 2:20, 1 user, load averages: 0.24, 0.28, 0.25", "stdout_lines": ["12:30PM up 21 days, 2:20, 1 user, load averages: 0.24, 0.28, 0.25"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019748", "end": "2025-12-16 15:30:13.105183", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.085435", "stderr": "", "stderr_lines": [], "stdout": " 15:30:13 up 14 days, 4:56, 1 user, load average: 0.23, 0.16, 0.10", "stdout_lines": [" 15:30:13 up 14 days, 4:56, 1 user, load average: 0.23, 0.16, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006725", "end": "2025-12-16 15:30:13.422657", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.415932", "stderr": "", "stderr_lines": [], "stdout": " 15:30:13 up 16:59, 1 user, load average: 1.33, 1.15, 1.11", "stdout_lines": [" 15:30:13 up 16:59, 1 user, load average: 1.33, 1.15, 1.11"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003842", "end": "2025-12-16 15:30:13.360650", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.356808", "stderr": "", "stderr_lines": [], "stdout": " 15:30:13 up 2 days, 5:01, 1 user, load average: 0.00, 0.06, 0.09", "stdout_lines": [" 15:30:13 up 2 days, 5:01, 1 user, load average: 0.00, 0.06, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004419", "end": "2025-12-16 15:30:13.762781", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.758362", "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.004039", "end": "2025-12-16 15:30:13.772873", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.768834", "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.004851", "end": "2025-12-16 15:30:13.783172", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.778321", "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.004715", "end": "2025-12-16 15:30:13.804004", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.799289", "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.005799", "end": "2025-12-16 15:30:13.808822", "msg": "", "rc": 0, "start": "2025-12-16 15:30:13.803023", "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.005079", "end": "2025-12-16 15:29:48.780065", "msg": "", "rc": 0, "start": "2025-12-16 15:29:48.774986", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005397", "end": "2025-12-16 15:29:42.660115", "msg": "", "rc": 0, "start": "2025-12-16 15:29:42.654718", "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.010524", "end": "2025-12-16 15:30:14.528520", "msg": "", "rc": 0, "start": "2025-12-16 15:30:14.517996", "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.011630", "end": "2025-12-16 15:30:14.553859", "msg": "", "rc": 0, "start": "2025-12-16 15:30:14.542229", "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.005692", "end": "2025-12-16 15:30:14.728736", "msg": "", "rc": 0, "start": "2025-12-16 15:30:14.723044", "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.005587", "end": "2025-12-16 15:29:45.824966", "msg": "", "rc": 0, "start": "2025-12-16 15:29:45.819379", "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.005473", "end": "2025-12-16 12:30:15.037805", "msg": "", "rc": 0, "start": "2025-12-16 12:30:15.032332", "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.004751", "end": "2025-12-16 15:29:52.183062", "msg": "", "rc": 0, "start": "2025-12-16 15:29:52.178311", "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.005421", "end": "2025-12-16 15:30:15.171877", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.166456", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018479", "end": "2025-12-16 15:30:15.396878", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.378399", "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.025475", "end": "2025-12-16 15:30:15.155491", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.130016", "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.004412", "end": "2025-12-16 15:30:15.684719", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.680307", "stderr": "", "stderr_lines": [], "stdout": "85.1%", "stdout_lines": ["85.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.004072", "end": "2025-12-16 15:30:15.689784", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.685712", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004999", "end": "2025-12-16 15:30:15.710179", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.705180", "stderr": "", "stderr_lines": [], "stdout": "49.4%", "stdout_lines": ["49.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.005226", "end": "2025-12-16 15:30:15.730676", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.725450", "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.005473", "end": "2025-12-16 15:30:15.758231", "msg": "", "rc": 0, "start": "2025-12-16 15:30:15.752758", "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.003820", "end": "2025-12-16 15:29:50.712313", "msg": "", "rc": 0, "start": "2025-12-16 15:29:50.708493", "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.006103", "end": "2025-12-16 15:29:44.620751", "msg": "", "rc": 0, "start": "2025-12-16 15:29:44.614648", "stderr": "", "stderr_lines": [], "stdout": "69.3%", "stdout_lines": ["69.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.010878", "end": "2025-12-16 15:30:16.383190", "msg": "", "rc": 0, "start": "2025-12-16 15:30:16.372312", "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.012107", "end": "2025-12-16 15:30:16.431701", "msg": "", "rc": 0, "start": "2025-12-16 15:30:16.419594", "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.005767", "end": "2025-12-16 15:30:16.652114", "msg": "", "rc": 0, "start": "2025-12-16 15:30:16.646347", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.005342", "end": "2025-12-16 15:29:54.022775", "msg": "", "rc": 0, "start": "2025-12-16 15:29:54.017433", "stderr": "", "stderr_lines": [], "stdout": "60.3%", "stdout_lines": ["60.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.006393", "end": "2025-12-16 15:29:47.806657", "msg": "", "rc": 0, "start": "2025-12-16 15:29:47.800264", "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.005394", "end": "2025-12-16 12:30:16.898741", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:30:16.893347", "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.005757", "end": "2025-12-16 15:30:17.082416", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.076659", "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.009194", "end": "2025-12-16 15:30:17.413082", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.403888", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.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.025936", "end": "2025-12-16 15:30:17.095869", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.069933", "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.005145", "end": "2025-12-16 15:30:17.627346", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.622201", "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.004779", "end": "2025-12-16 15:30:17.635569", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.630790", "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.003394", "end": "2025-12-16 15:30:17.669032", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.665638", "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.006797", "end": "2025-12-16 15:30:17.668822", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.662025", "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.006900", "end": "2025-12-16 15:30:17.697995", "msg": "", "rc": 0, "start": "2025-12-16 15:30:17.691095", "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.002686", "end": "2025-12-16 15:29:52.675293", "msg": "", "rc": 0, "start": "2025-12-16 15:29:52.672607", "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.004581", "end": "2025-12-16 15:29:46.555839", "msg": "", "rc": 0, "start": "2025-12-16 15:29:46.551258", "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.011595", "end": "2025-12-16 15:30:18.356743", "msg": "", "rc": 0, "start": "2025-12-16 15:30:18.345148", "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.013199", "end": "2025-12-16 15:30:18.359618", "msg": "", "rc": 0, "start": "2025-12-16 15:30:18.346419", "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.003326", "end": "2025-12-16 15:30:18.624761", "msg": "", "rc": 0, "start": "2025-12-16 15:30:18.621435", "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.003865", "end": "2025-12-16 12:30:18.815580", "msg": "", "rc": 0, "start": "2025-12-16 12:30:18.811715", "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.003130", "end": "2025-12-16 15:29:49.756938", "msg": "", "rc": 0, "start": "2025-12-16 15:29:49.753808", "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.003050", "end": "2025-12-16 15:29:56.012475", "msg": "", "rc": 0, "start": "2025-12-16 15:29:56.009425", "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.002982", "end": "2025-12-16 15:30:19.044585", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.041603", "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.004619", "end": "2025-12-16 15:30:19.423736", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.419117", "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.028294", "end": "2025-12-16 15:30:19.015902", "msg": "", "rc": 0, "start": "2025-12-16 15:30:18.987608", "stderr": "", "stderr_lines": [], "stdout": "36.7°C", "stdout_lines": ["36.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.004394", "end": "2025-12-16 15:30:19.534634", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.530240", "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.003963", "end": "2025-12-16 15:30:19.551890", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.547927", "stderr": "", "stderr_lines": [], "stdout": "1.06", "stdout_lines": ["1.06"]}
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.004672", "end": "2025-12-16 15:30:19.563947", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.559275", "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.005266", "end": "2025-12-16 15:30:19.584188", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.578922", "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.005392", "end": "2025-12-16 15:30:19.604257", "msg": "", "rc": 0, "start": "2025-12-16 15:30:19.598865", "stderr": "", "stderr_lines": [], "stdout": "0.91", "stdout_lines": ["0.91"]}
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.004606", "end": "2025-12-16 15:29:54.598845", "msg": "", "rc": 0, "start": "2025-12-16 15:29:54.594239", "stderr": "", "stderr_lines": [], "stdout": "1.80", "stdout_lines": ["1.80"]}
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.005593", "end": "2025-12-16 15:29:48.448307", "msg": "", "rc": 0, "start": "2025-12-16 15:29:48.442714", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
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.011188", "end": "2025-12-16 15:30:20.342475", "msg": "", "rc": 0, "start": "2025-12-16 15:30:20.331287", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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.010115", "end": "2025-12-16 15:30:20.372210", "msg": "", "rc": 0, "start": "2025-12-16 15:30:20.362095", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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.005503", "end": "2025-12-16 15:30:20.558499", "msg": "", "rc": 0, "start": "2025-12-16 15:30:20.552996", "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.004629", "end": "2025-12-16 15:29:51.624755", "msg": "", "rc": 0, "start": "2025-12-16 15:29:51.620126", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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-16 12:30:20.826452", "msg": "", "rc": 0, "start": "2025-12-16 12:30:20.820438", "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.004370", "end": "2025-12-16 15:29:57.971648", "msg": "", "rc": 0, "start": "2025-12-16 15:29:57.967278", "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.005204", "end": "2025-12-16 15:30:20.972410", "msg": "", "rc": 0, "start": "2025-12-16 15:30:20.967206", "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.009463", "end": "2025-12-16 15:30:21.359243", "msg": "", "rc": 0, "start": "2025-12-16 15:30:21.349780", "stderr": "", "stderr_lines": [], "stdout": "1.31", "stdout_lines": ["1.31"]}
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.024144", "end": "2025-12-16 15:30:20.938127", "msg": "", "rc": 0, "start": "2025-12-16 15:30:20.913983", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:11 up 2 days, 5:02, 1 user, load average: 0.88, 0.56, 0.36\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 1.06\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:11 up 21 days, 2:41, 1 user, load average: 0.59, 0.64, 0.63\nDisk Usage: 14%\nMemory Usage: 49.4%\nCPU Load: 0.74\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:11 up 21 days, 2:21, 1 user, load average: 0.59, 0.37, 0.30\nDisk Usage: 23%\nMemory Usage: 85.1%\nCPU Load: 0.54\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:11 up 21 days, 3:54, 1 user, load average: 0.72, 0.73, 0.67\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.91\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:11 up 21 days, 4: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: 15:30:13 up 14 days, 4:56, 1 user, load average: 0.23, 0.16, 0.10\nDisk Usage: 21%\nMemory Usage: 19.5%\nCPU Load: 0.27\nCPU Temp: 36.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:12 up 193 days, 7:03, 1 user, load average: 0.34, 0.28, 0.25\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.43\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:12 up 193 days, 7:03, 1 user, load average: 0.26, 0.15, 0.13\nDisk Usage: 3%\nMemory Usage: 6.8%\nCPU Load: 0.29\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:29:46 up 10 days, 3:19, 0 user, load average: 2.13, 0.56, 0.27\nDisk Usage: 47%\nMemory Usage: 70.8%\nCPU Load: 1.80\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:29:41 up 16 days, 23:31, 0 user, load average: 0.01, 0.02, 0.00\nDisk Usage: 24%\nMemory Usage: 69.3%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:12 up 2 days, 5:01, 1 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:29:43 up 19 days, 18:24, 0 user, load average: 0.55, 0.47, 0.46\nDisk Usage: 28%\nMemory Usage: 26.2%\nCPU Load: 0.55\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:29:50 up 16 days, 4:45, 0 user, load average: 0.11, 0.15, 0.17\nDisk Usage: 75%\nMemory Usage: 60.3%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:30PM up 21 days, 2:20, 1 user, load averages: 0.24, 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: 15:30:13 up 2 days, 5:01, 1 user, load average: 0.00, 0.06, 0.09\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:30:13 up 16:59, 1 user, load average: 1.33, 1.15, 1.11\nDisk Usage: 1%\nMemory Usage: 20.1%\nCPU Load: 1.31\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-16T20:30:22.243961+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `c4eade13b80f473f92727229f4ed9ada` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:35:00.000460+00:00 |
| **Fin** | 2025-12-16T20:35:22.123667+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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004010", "end": "2025-12-16 15:35:11.079979", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.075969", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 21 days, 4:45, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:35:11 up 21 days, 4:45, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003770", "end": "2025-12-16 15:35:11.095691", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.091921", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 21 days, 3:59, 1 user, load average: 0.78, 0.71, 0.67", "stdout_lines": [" 15:35:11 up 21 days, 3:59, 1 user, load average: 0.78, 0.71, 0.67"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002950", "end": "2025-12-16 15:35:11.114515", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.111565", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 2 days, 5:07, 1 user, load average: 1.10, 0.86, 0.54", "stdout_lines": [" 15:35:11 up 2 days, 5:07, 1 user, load average: 1.10, 0.86, 0.54"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008508", "end": "2025-12-16 15:35:11.764702", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.756194", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 193 days, 7:08, 1 user, load average: 0.14, 0.12, 0.11", "stdout_lines": [" 15:35:11 up 193 days, 7:08, 1 user, load average: 0.14, 0.12, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009256", "end": "2025-12-16 15:35:11.798038", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.788782", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 193 days, 7:08, 1 user, load average: 0.67, 0.45, 0.32", "stdout_lines": [" 15:35:11 up 193 days, 7:08, 1 user, load average: 0.67, 0.45, 0.32"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003852", "end": "2025-12-16 15:35:12.066069", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.062217", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 21 days, 2:26, 1 user, load average: 0.23, 0.23, 0.25", "stdout_lines": [" 15:35:11 up 21 days, 2:26, 1 user, load average: 0.23, 0.23, 0.25"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003819", "end": "2025-12-16 15:35:12.081656", "msg": "", "rc": 0, "start": "2025-12-16 15:35:11.077837", "stderr": "", "stderr_lines": [], "stdout": " 15:35:11 up 21 days, 2:46, 1 user, load average: 0.68, 0.72, 0.67", "stdout_lines": [" 15:35:11 up 21 days, 2:46, 1 user, load average: 0.68, 0.72, 0.67"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003146", "end": "2025-12-16 15:34:46.762538", "msg": "", "rc": 0, "start": "2025-12-16 15:34:46.759392", "stderr": "", "stderr_lines": [], "stdout": " 15:34:46 up 10 days, 3:24, 0 user, load average: 0.09, 0.22, 0.19", "stdout_lines": [" 15:34:46 up 10 days, 3:24, 0 user, load average: 0.09, 0.22, 0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003555", "end": "2025-12-16 15:34:40.653158", "msg": "", "rc": 0, "start": "2025-12-16 15:34:40.649603", "stderr": "", "stderr_lines": [], "stdout": " 15:34:40 up 16 days, 23:36, 0 user, load average: 0.05, 0.03, 0.00", "stdout_lines": [" 15:34:40 up 16 days, 23:36, 0 user, load average: 0.05, 0.03, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004778", "end": "2025-12-16 15:35:12.519454", "msg": "", "rc": 0, "start": "2025-12-16 15:35:12.514676", "stderr": "", "stderr_lines": [], "stdout": " 15:35:12 up 2 days, 5:06, 1 user, load average: 0.22, 0.10, 0.03", "stdout_lines": [" 15:35:12 up 2 days, 5:06, 1 user, load average: 0.22, 0.10, 0.03"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019388", "end": "2025-12-16 15:35:12.463861", "msg": "", "rc": 0, "start": "2025-12-16 15:35:12.444473", "stderr": "", "stderr_lines": [], "stdout": " 15:35:12 up 14 days, 5:01, 1 user, load average: 0.24, 0.15, 0.10", "stdout_lines": [" 15:35:12 up 14 days, 5:01, 1 user, load average: 0.24, 0.15, 0.10"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003354", "end": "2025-12-16 15:34:43.533333", "msg": "", "rc": 0, "start": "2025-12-16 15:34:43.529979", "stderr": "", "stderr_lines": [], "stdout": " 15:34:43 up 19 days, 18:29, 0 user, load average: 0.34, 0.41, 0.44", "stdout_lines": [" 15:34:43 up 19 days, 18:29, 0 user, load average: 0.34, 0.41, 0.44"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003223", "end": "2025-12-16 15:34:49.838618", "msg": "", "rc": 0, "start": "2025-12-16 15:34:49.835395", "stderr": "", "stderr_lines": [], "stdout": " 15:34:49 up 16 days, 4:50, 0 user, load average: 0.19, 0.20, 0.18", "stdout_lines": [" 15:34:49 up 16 days, 4:50, 0 user, load average: 0.19, 0.20, 0.18"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004414", "end": "2025-12-16 12:35:12.781161", "msg": "", "rc": 0, "start": "2025-12-16 12:35:12.776747", "stderr": "", "stderr_lines": [], "stdout": "12:35PM up 21 days, 2:25, 1 user, load averages: 0.23, 0.23, 0.23", "stdout_lines": ["12:35PM up 21 days, 2:25, 1 user, load averages: 0.23, 0.23, 0.23"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007562", "end": "2025-12-16 15:35:13.315256", "msg": "", "rc": 0, "start": "2025-12-16 15:35:13.307694", "stderr": "", "stderr_lines": [], "stdout": " 15:35:13 up 17:04, 1 user, load average: 1.75, 1.24, 1.13", "stdout_lines": [" 15:35:13 up 17:04, 1 user, load average: 1.75, 1.24, 1.13"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003773", "end": "2025-12-16 15:35:12.931805", "msg": "", "rc": 0, "start": "2025-12-16 15:35:12.928032", "stderr": "", "stderr_lines": [], "stdout": " 15:35:12 up 2 days, 5:06, 1 user, load average: 0.20, 0.09, 0.09", "stdout_lines": [" 15:35:12 up 2 days, 5:06, 1 user, load average: 0.20, 0.09, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004383", "end": "2025-12-16 15:35:13.350146", "msg": "", "rc": 0, "start": "2025-12-16 15:35:13.345763", "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.004169", "end": "2025-12-16 15:35:13.361356", "msg": "", "rc": 0, "start": "2025-12-16 15:35:13.357187", "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.004976", "end": "2025-12-16 15:35:13.371207", "msg": "", "rc": 0, "start": "2025-12-16 15:35:13.366231", "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.004947", "end": "2025-12-16 15:35:13.400667", "msg": "", "rc": 0, "start": "2025-12-16 15:35:13.395720", "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.005577", "end": "2025-12-16 15:35:13.413552", "msg": "", "rc": 0, "start": "2025-12-16 15:35:13.407975", "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.005443", "end": "2025-12-16 15:34:48.378785", "msg": "", "rc": 0, "start": "2025-12-16 15:34:48.373342", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005349", "end": "2025-12-16 15:34:42.229716", "msg": "", "rc": 0, "start": "2025-12-16 15:34:42.224367", "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.010450", "end": "2025-12-16 15:35:14.129550", "msg": "", "rc": 0, "start": "2025-12-16 15:35:14.119100", "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.011894", "end": "2025-12-16 15:35:14.179050", "msg": "", "rc": 0, "start": "2025-12-16 15:35:14.167156", "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.005797", "end": "2025-12-16 15:35:14.342327", "msg": "", "rc": 0, "start": "2025-12-16 15:35:14.336530", "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.005390", "end": "2025-12-16 15:34:45.400631", "msg": "", "rc": 0, "start": "2025-12-16 15:34:45.395241", "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.005715", "end": "2025-12-16 12:35:14.628907", "msg": "", "rc": 0, "start": "2025-12-16 12:35:14.623192", "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.005295", "end": "2025-12-16 15:34:51.780793", "msg": "", "rc": 0, "start": "2025-12-16 15:34:51.775498", "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.005367", "end": "2025-12-16 15:35:14.762152", "msg": "", "rc": 0, "start": "2025-12-16 15:35:14.756785", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018484", "end": "2025-12-16 15:35:15.333186", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.314702", "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.025340", "end": "2025-12-16 15:35:14.741641", "msg": "", "rc": 0, "start": "2025-12-16 15:35:14.716301", "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.004446", "end": "2025-12-16 15:35:15.286384", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.281938", "stderr": "", "stderr_lines": [], "stdout": "85.1%", "stdout_lines": ["85.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.004905", "end": "2025-12-16 15:35:15.310394", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.305489", "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.004331", "end": "2025-12-16 15:35:15.314809", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.310478", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004625", "end": "2025-12-16 15:35:15.348405", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.343780", "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.007244", "end": "2025-12-16 15:35:15.347499", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.340255", "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.003663", "end": "2025-12-16 15:34:50.315063", "msg": "", "rc": 0, "start": "2025-12-16 15:34:50.311400", "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.004049", "end": "2025-12-16 15:34:44.181703", "msg": "", "rc": 0, "start": "2025-12-16 15:34:44.177654", "stderr": "", "stderr_lines": [], "stdout": "69.3%", "stdout_lines": ["69.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.011056", "end": "2025-12-16 15:35:15.974499", "msg": "", "rc": 0, "start": "2025-12-16 15:35:15.963443", "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.012837", "end": "2025-12-16 15:35:16.029870", "msg": "", "rc": 0, "start": "2025-12-16 15:35:16.017033", "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.006531", "end": "2025-12-16 15:35:16.298926", "msg": "", "rc": 0, "start": "2025-12-16 15:35:16.292395", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003786", "end": "2025-12-16 15:34:53.586718", "msg": "", "rc": 0, "start": "2025-12-16 15:34:53.582932", "stderr": "", "stderr_lines": [], "stdout": "59.5%", "stdout_lines": ["59.5%"]}
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.004081", "end": "2025-12-16 15:34:47.382867", "msg": "", "rc": 0, "start": "2025-12-16 15:34:47.378786", "stderr": "", "stderr_lines": [], "stdout": "27.6%", "stdout_lines": ["27.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.005300", "end": "2025-12-16 12:35:16.491405", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:35:16.486105", "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.005416", "end": "2025-12-16 15:35:16.723460", "msg": "", "rc": 0, "start": "2025-12-16 15:35:16.718044", "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.009243", "end": "2025-12-16 15:35:17.338801", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.329558", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025998", "end": "2025-12-16 15:35:16.668374", "msg": "", "rc": 0, "start": "2025-12-16 15:35:16.642376", "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.005060", "end": "2025-12-16 15:35:17.195954", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.190894", "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.004890", "end": "2025-12-16 15:35:17.209001", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.204111", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005525", "end": "2025-12-16 15:35:17.233081", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.227556", "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.003422", "end": "2025-12-16 15:35:17.253785", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.250363", "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.006497", "end": "2025-12-16 15:35:17.272382", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.265885", "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.002525", "end": "2025-12-16 15:34:52.210704", "msg": "", "rc": 0, "start": "2025-12-16 15:34:52.208179", "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.003212", "end": "2025-12-16 15:34:46.078363", "msg": "", "rc": 0, "start": "2025-12-16 15:34:46.075151", "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-16 15:35:17.883383", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.871468", "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.013067", "end": "2025-12-16 15:35:17.909956", "msg": "", "rc": 0, "start": "2025-12-16 15:35:17.896889", "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.003098", "end": "2025-12-16 15:35:18.159653", "msg": "", "rc": 0, "start": "2025-12-16 15:35:18.156555", "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.003973", "end": "2025-12-16 12:35:18.350887", "msg": "", "rc": 0, "start": "2025-12-16 12:35:18.346914", "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.002507", "end": "2025-12-16 15:34:55.516983", "msg": "", "rc": 0, "start": "2025-12-16 15:34:55.514476", "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.002749", "end": "2025-12-16 15:34:49.314448", "msg": "", "rc": 0, "start": "2025-12-16 15:34:49.311699", "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.002945", "end": "2025-12-16 15:35:18.581738", "msg": "", "rc": 0, "start": "2025-12-16 15:35:18.578793", "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.004511", "end": "2025-12-16 15:35:19.295937", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.291426", "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.028615", "end": "2025-12-16 15:35:18.578507", "msg": "", "rc": 0, "start": "2025-12-16 15:35:18.549892", "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.004215", "end": "2025-12-16 15:35:19.095861", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.091646", "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.004120", "end": "2025-12-16 15:35:19.132251", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.128131", "stderr": "", "stderr_lines": [], "stdout": "1.33", "stdout_lines": ["1.33"]}
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.004628", "end": "2025-12-16 15:35:19.138441", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.133813", "stderr": "", "stderr_lines": [], "stdout": "0.82", "stdout_lines": ["0.82"]}
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.005088", "end": "2025-12-16 15:35:19.161552", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.156464", "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.005461", "end": "2025-12-16 15:35:19.191845", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.186384", "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.004498", "end": "2025-12-16 15:34:54.117864", "msg": "", "rc": 0, "start": "2025-12-16 15:34:54.113366", "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.005212", "end": "2025-12-16 15:34:48.015043", "msg": "", "rc": 0, "start": "2025-12-16 15:34:48.009831", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
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.010142", "end": "2025-12-16 15:35:19.829884", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.819742", "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.011287", "end": "2025-12-16 15:35:19.908174", "msg": "", "rc": 0, "start": "2025-12-16 15:35:19.896887", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.005638", "end": "2025-12-16 15:35:20.090561", "msg": "", "rc": 0, "start": "2025-12-16 15:35:20.084923", "stderr": "", "stderr_lines": [], "stdout": "0.29", "stdout_lines": ["0.29"]}
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-16 15:34:51.223340", "msg": "", "rc": 0, "start": "2025-12-16 15:34:51.218156", "stderr": "", "stderr_lines": [], "stdout": "0.53", "stdout_lines": ["0.53"]}
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.004444", "end": "2025-12-16 15:34:57.447886", "msg": "", "rc": 0, "start": "2025-12-16 15:34:57.443442", "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.006397", "end": "2025-12-16 12:35:20.375525", "msg": "", "rc": 0, "start": "2025-12-16 12:35:20.369128", "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.005249", "end": "2025-12-16 15:35:20.507878", "msg": "", "rc": 0, "start": "2025-12-16 15:35:20.502629", "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.024464", "end": "2025-12-16 15:35:20.471191", "msg": "", "rc": 0, "start": "2025-12-16 15:35:20.446727", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.008348", "end": "2025-12-16 15:35:21.328046", "msg": "", "rc": 0, "start": "2025-12-16 15:35:21.319698", "stderr": "", "stderr_lines": [], "stdout": "1.77", "stdout_lines": ["1.77"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 21 days, 2:26, 1 user, load average: 0.23, 0.23, 0.25\nDisk Usage: 23%\nMemory Usage: 85.1%\nCPU Load: 0.21\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 2 days, 5:07, 1 user, load average: 1.10, 0.86, 0.54\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 1.33\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 21 days, 2:46, 1 user, load average: 0.68, 0.72, 0.67\nDisk Usage: 14%\nMemory Usage: 49.1%\nCPU Load: 0.82\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 21 days, 3:59, 1 user, load average: 0.78, 0.71, 0.67\nDisk Usage: 14%\nMemory Usage: 59.1%\nCPU Load: 0.82\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 21 days, 4:45, 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: 15:35:12 up 14 days, 5:01, 1 user, load average: 0.24, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.36\nCPU Temp: 35.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 193 days, 7:08, 1 user, load average: 0.67, 0.45, 0.32\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.65\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:11 up 193 days, 7:08, 1 user, load average: 0.14, 0.12, 0.11\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.12\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:34:46 up 10 days, 3:24, 0 user, load average: 0.09, 0.22, 0.19\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:34:40 up 16 days, 23:36, 0 user, load average: 0.05, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.3%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:12 up 2 days, 5:06, 1 user, load average: 0.22, 0.10, 0.03\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.29\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:34:43 up 19 days, 18:29, 0 user, load average: 0.34, 0.41, 0.44\nDisk Usage: 28%\nMemory Usage: 27.6%\nCPU Load: 0.53\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:34:49 up 16 days, 4:50, 0 user, load average: 0.19, 0.20, 0.18\nDisk Usage: 75%\nMemory Usage: 59.5%\nCPU Load: 0.16\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:35PM up 21 days, 2:25, 1 user, load averages: 0.23, 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: 15:35:12 up 2 days, 5:06, 1 user, load average: 0.20, 0.09, 0.09\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.17\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:35:13 up 17:04, 1 user, load average: 1.75, 1.24, 1.13\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.77\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-16T20:35:22.271970+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `6b8411f40ef94f0db5659e067ca91486` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:40:00.002662+00:00 |
| **Fin** | 2025-12-16T20:40:21.618552+00:00 |
| **Durée** | 21.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: [hp2.i7.home] => {"changed": false, "ping": "pong"}
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: [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.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: [mimi.pc.home]
ok: [hp3.i5.home]
ok: [ali2v.xeon.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: [localhost]
ok: [orangepi.pc.home]
TASK [Get system uptime] *******************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003059", "end": "2025-12-16 15:40:11.588282", "msg": "", "rc": 0, "start": "2025-12-16 15:40:11.585223", "stderr": "", "stderr_lines": [], "stdout": " 15:40:11 up 21 days, 2:31, 1 user, load average: 0.18, 0.24, 0.25", "stdout_lines": [" 15:40:11 up 21 days, 2:31, 1 user, load average: 0.18, 0.24, 0.25"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003704", "end": "2025-12-16 15:40:11.609301", "msg": "", "rc": 0, "start": "2025-12-16 15:40:11.605597", "stderr": "", "stderr_lines": [], "stdout": " 15:40:11 up 21 days, 4:50, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:40:11 up 21 days, 4:50, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004004", "end": "2025-12-16 15:40:11.623791", "msg": "", "rc": 0, "start": "2025-12-16 15:40:11.619787", "stderr": "", "stderr_lines": [], "stdout": " 15:40:11 up 21 days, 4:04, 1 user, load average: 0.55, 0.65, 0.65", "stdout_lines": [" 15:40:11 up 21 days, 4:04, 1 user, load average: 0.55, 0.65, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002829", "end": "2025-12-16 15:40:11.633698", "msg": "", "rc": 0, "start": "2025-12-16 15:40:11.630869", "stderr": "", "stderr_lines": [], "stdout": " 15:40:11 up 2 days, 5:12, 1 user, load average: 0.87, 0.92, 0.65", "stdout_lines": [" 15:40:11 up 2 days, 5:12, 1 user, load average: 0.87, 0.92, 0.65"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003528", "end": "2025-12-16 15:40:11.635090", "msg": "", "rc": 0, "start": "2025-12-16 15:40:11.631562", "stderr": "", "stderr_lines": [], "stdout": " 15:40:11 up 21 days, 2:51, 1 user, load average: 0.98, 0.83, 0.74", "stdout_lines": [" 15:40:11 up 21 days, 2:51, 1 user, load average: 0.98, 0.83, 0.74"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003477", "end": "2025-12-16 15:39:46.604318", "msg": "", "rc": 0, "start": "2025-12-16 15:39:46.600841", "stderr": "", "stderr_lines": [], "stdout": " 15:39:46 up 10 days, 3:29, 0 user, load average: 0.02, 0.10, 0.15", "stdout_lines": [" 15:39:46 up 10 days, 3:29, 0 user, load average: 0.02, 0.10, 0.15"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003308", "end": "2025-12-16 15:39:40.447253", "msg": "", "rc": 0, "start": "2025-12-16 15:39:40.443945", "stderr": "", "stderr_lines": [], "stdout": " 15:39:40 up 16 days, 23:41, 0 user, load average: 0.01, 0.04, 0.00", "stdout_lines": [" 15:39:40 up 16 days, 23:41, 0 user, load average: 0.01, 0.04, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008458", "end": "2025-12-16 15:40:12.271487", "msg": "", "rc": 0, "start": "2025-12-16 15:40:12.263029", "stderr": "", "stderr_lines": [], "stdout": " 15:40:12 up 193 days, 7:13, 1 user, load average: 0.15, 0.12, 0.10", "stdout_lines": [" 15:40:12 up 193 days, 7:13, 1 user, load average: 0.15, 0.12, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009553", "end": "2025-12-16 15:40:12.322711", "msg": "", "rc": 0, "start": "2025-12-16 15:40:12.313158", "stderr": "", "stderr_lines": [], "stdout": " 15:40:12 up 193 days, 7:13, 1 user, load average: 0.31, 0.41, 0.35", "stdout_lines": [" 15:40:12 up 193 days, 7:13, 1 user, load average: 0.31, 0.41, 0.35"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004665", "end": "2025-12-16 15:40:12.571517", "msg": "", "rc": 0, "start": "2025-12-16 15:40:12.566852", "stderr": "", "stderr_lines": [], "stdout": " 15:40:12 up 2 days, 5:11, 1 user, load average: 0.01, 0.06, 0.03", "stdout_lines": [" 15:40:12 up 2 days, 5:11, 1 user, load average: 0.01, 0.06, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003205", "end": "2025-12-16 15:39:43.613102", "msg": "", "rc": 0, "start": "2025-12-16 15:39:43.609897", "stderr": "", "stderr_lines": [], "stdout": " 15:39:43 up 19 days, 18:34, 0 user, load average: 0.49, 0.45, 0.45", "stdout_lines": [" 15:39:43 up 19 days, 18:34, 0 user, load average: 0.49, 0.45, 0.45"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004233", "end": "2025-12-16 12:40:12.787675", "msg": "", "rc": 0, "start": "2025-12-16 12:40:12.783442", "stderr": "", "stderr_lines": [], "stdout": "12:40PM up 21 days, 2:30, 1 user, load averages: 0.25, 0.27, 0.25", "stdout_lines": ["12:40PM up 21 days, 2:30, 1 user, load averages: 0.25, 0.27, 0.25"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002893", "end": "2025-12-16 15:39:49.935618", "msg": "", "rc": 0, "start": "2025-12-16 15:39:49.932725", "stderr": "", "stderr_lines": [], "stdout": " 15:39:49 up 16 days, 4:55, 0 user, load average: 0.27, 0.22, 0.19", "stdout_lines": [" 15:39:49 up 16 days, 4:55, 0 user, load average: 0.27, 0.22, 0.19"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003790", "end": "2025-12-16 15:40:13.003840", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.000050", "stderr": "", "stderr_lines": [], "stdout": " 15:40:13 up 2 days, 5:11, 1 user, load average: 0.00, 0.04, 0.07", "stdout_lines": [" 15:40:13 up 2 days, 5:11, 1 user, load average: 0.00, 0.04, 0.07"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007538", "end": "2025-12-16 15:40:13.866778", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.859240", "stderr": "", "stderr_lines": [], "stdout": " 15:40:13 up 17:09, 1 user, load average: 1.56, 1.28, 1.17", "stdout_lines": [" 15:40:13 up 17:09, 1 user, load average: 1.56, 1.28, 1.17"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019288", "end": "2025-12-16 15:40:12.956469", "msg": "", "rc": 0, "start": "2025-12-16 15:40:12.937181", "stderr": "", "stderr_lines": [], "stdout": " 15:40:12 up 14 days, 5:06, 1 user, load average: 0.23, 0.15, 0.10", "stdout_lines": [" 15:40:12 up 14 days, 5:06, 1 user, load average: 0.23, 0.15, 0.10"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004371", "end": "2025-12-16 15:40:13.496143", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.491772", "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.004087", "end": "2025-12-16 15:40:13.516529", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.512442", "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.004222", "end": "2025-12-16 15:40:13.532384", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.528162", "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.004847", "end": "2025-12-16 15:40:13.535892", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.531045", "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.005689", "end": "2025-12-16 15:40:13.539479", "msg": "", "rc": 0, "start": "2025-12-16 15:40:13.533790", "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.005359", "end": "2025-12-16 15:39:48.487563", "msg": "", "rc": 0, "start": "2025-12-16 15:39:48.482204", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005561", "end": "2025-12-16 15:39:42.351210", "msg": "", "rc": 0, "start": "2025-12-16 15:39:42.345649", "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.010694", "end": "2025-12-16 15:40:14.240741", "msg": "", "rc": 0, "start": "2025-12-16 15:40:14.230047", "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.011614", "end": "2025-12-16 15:40:14.254202", "msg": "", "rc": 0, "start": "2025-12-16 15:40:14.242588", "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.005747", "end": "2025-12-16 15:40:14.441332", "msg": "", "rc": 0, "start": "2025-12-16 15:40:14.435585", "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.005488", "end": "2025-12-16 15:39:45.514462", "msg": "", "rc": 0, "start": "2025-12-16 15:39:45.508974", "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.005864", "end": "2025-12-16 12:40:14.722050", "msg": "", "rc": 0, "start": "2025-12-16 12:40:14.716186", "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.004467", "end": "2025-12-16 15:39:51.864514", "msg": "", "rc": 0, "start": "2025-12-16 15:39:51.860047", "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.005267", "end": "2025-12-16 15:40:14.895101", "msg": "", "rc": 0, "start": "2025-12-16 15:40:14.889834", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019518", "end": "2025-12-16 15:40:15.865997", "msg": "", "rc": 0, "start": "2025-12-16 15:40:15.846479", "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.024983", "end": "2025-12-16 15:40:14.882491", "msg": "", "rc": 0, "start": "2025-12-16 15:40:14.857508", "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.004411", "end": "2025-12-16 15:40:15.408986", "msg": "", "rc": 0, "start": "2025-12-16 15:40:15.404575", "stderr": "", "stderr_lines": [], "stdout": "85.0%", "stdout_lines": ["85.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.004244", "end": "2025-12-16 15:40:15.421452", "msg": "", "rc": 0, "start": "2025-12-16 15:40:15.417208", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004918", "end": "2025-12-16 15:40:15.443880", "msg": "", "rc": 0, "start": "2025-12-16 15:40:15.438962", "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.004636", "end": "2025-12-16 15:40:15.469797", "msg": "", "rc": 0, "start": "2025-12-16 15:40:15.465161", "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.005938", "end": "2025-12-16 15:40:15.488932", "msg": "", "rc": 0, "start": "2025-12-16 15:40:15.482994", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003719", "end": "2025-12-16 15:39:50.488111", "msg": "", "rc": 0, "start": "2025-12-16 15:39:50.484392", "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.004312", "end": "2025-12-16 15:39:44.308794", "msg": "", "rc": 0, "start": "2025-12-16 15:39:44.304482", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011359", "end": "2025-12-16 15:40:16.126721", "msg": "", "rc": 0, "start": "2025-12-16 15:40:16.115362", "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.012048", "end": "2025-12-16 15:40:16.145741", "msg": "", "rc": 0, "start": "2025-12-16 15:40:16.133693", "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.005994", "end": "2025-12-16 15:40:16.481620", "msg": "", "rc": 0, "start": "2025-12-16 15:40:16.475626", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004078", "end": "2025-12-16 15:39:47.495264", "msg": "", "rc": 0, "start": "2025-12-16 15:39:47.491186", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005289", "end": "2025-12-16 12:40:16.614115", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:40:16.608826", "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.009132", "end": "2025-12-16 15:39:53.785744", "msg": "", "rc": 0, "start": "2025-12-16 15:39:53.776612", "stderr": "", "stderr_lines": [], "stdout": "60.6%", "stdout_lines": ["60.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.010716", "end": "2025-12-16 15:40:17.896888", "msg": "", "rc": 0, "start": "2025-12-16 15:40:17.886172", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005436", "end": "2025-12-16 15:40:16.916382", "msg": "", "rc": 0, "start": "2025-12-16 15:40:16.910946", "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.025999", "end": "2025-12-16 15:40:16.803311", "msg": "", "rc": 0, "start": "2025-12-16 15:40:16.777312", "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.005360", "end": "2025-12-16 15:40:17.327620", "msg": "", "rc": 0, "start": "2025-12-16 15:40:17.322260", "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.005018", "end": "2025-12-16 15:40:17.331474", "msg": "", "rc": 0, "start": "2025-12-16 15:40:17.326456", "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.005894", "end": "2025-12-16 15:40:17.357521", "msg": "", "rc": 0, "start": "2025-12-16 15:40:17.351627", "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.003264", "end": "2025-12-16 15:40:17.372253", "msg": "", "rc": 0, "start": "2025-12-16 15:40:17.368989", "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.007439", "end": "2025-12-16 15:40:17.406765", "msg": "", "rc": 0, "start": "2025-12-16 15:40:17.399326", "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.002388", "end": "2025-12-16 15:39:52.405411", "msg": "", "rc": 0, "start": "2025-12-16 15:39:52.403023", "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.002983", "end": "2025-12-16 15:39:46.244174", "msg": "", "rc": 0, "start": "2025-12-16 15:39:46.241191", "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.011937", "end": "2025-12-16 15:40:18.041119", "msg": "", "rc": 0, "start": "2025-12-16 15:40:18.029182", "stderr": "", "stderr_lines": [], "stdout": "33.1°C", "stdout_lines": ["33.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.012996", "end": "2025-12-16 15:40:18.084599", "msg": "", "rc": 0, "start": "2025-12-16 15:40:18.071603", "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.003273", "end": "2025-12-16 15:40:18.393060", "msg": "", "rc": 0, "start": "2025-12-16 15:40:18.389787", "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.002809", "end": "2025-12-16 15:39:49.415691", "msg": "", "rc": 0, "start": "2025-12-16 15:39:49.412882", "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.003910", "end": "2025-12-16 12:40:18.549525", "msg": "", "rc": 0, "start": "2025-12-16 12:40:18.545615", "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.002630", "end": "2025-12-16 15:39:55.671619", "msg": "", "rc": 0, "start": "2025-12-16 15:39:55.668989", "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.004227", "end": "2025-12-16 15:40:19.862132", "msg": "", "rc": 0, "start": "2025-12-16 15:40:19.857905", "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.003232", "end": "2025-12-16 15:40:18.840263", "msg": "", "rc": 0, "start": "2025-12-16 15:40:18.837031", "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.028866", "end": "2025-12-16 15:40:18.739434", "msg": "", "rc": 0, "start": "2025-12-16 15:40:18.710568", "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.004646", "end": "2025-12-16 15:40:19.258801", "msg": "", "rc": 0, "start": "2025-12-16 15:40:19.254155", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.004011", "end": "2025-12-16 15:40:19.285699", "msg": "", "rc": 0, "start": "2025-12-16 15:40:19.281688", "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.004970", "end": "2025-12-16 15:40:19.292063", "msg": "", "rc": 0, "start": "2025-12-16 15:40:19.287093", "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.005274", "end": "2025-12-16 15:40:19.318218", "msg": "", "rc": 0, "start": "2025-12-16 15:40:19.312944", "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.005914", "end": "2025-12-16 15:40:19.321345", "msg": "", "rc": 0, "start": "2025-12-16 15:40:19.315431", "stderr": "", "stderr_lines": [], "stdout": "0.55", "stdout_lines": ["0.55"]}
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.004391", "end": "2025-12-16 15:39:54.269588", "msg": "", "rc": 0, "start": "2025-12-16 15:39:54.265197", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
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.005956", "end": "2025-12-16 15:39:48.126668", "msg": "", "rc": 0, "start": "2025-12-16 15:39:48.120712", "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.010331", "end": "2025-12-16 15:40:20.064666", "msg": "", "rc": 0, "start": "2025-12-16 15:40:20.054335", "stderr": "", "stderr_lines": [], "stdout": "0.14", "stdout_lines": ["0.14"]}
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.011225", "end": "2025-12-16 15:40:20.093045", "msg": "", "rc": 0, "start": "2025-12-16 15:40:20.081820", "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.005660", "end": "2025-12-16 15:40:20.241309", "msg": "", "rc": 0, "start": "2025-12-16 15:40:20.235649", "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.004911", "end": "2025-12-16 15:39:51.332232", "msg": "", "rc": 0, "start": "2025-12-16 15:39:51.327321", "stderr": "", "stderr_lines": [], "stdout": "0.49", "stdout_lines": ["0.49"]}
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.006150", "end": "2025-12-16 12:40:20.572561", "msg": "", "rc": 0, "start": "2025-12-16 12:40:20.566411", "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.004192", "end": "2025-12-16 15:39:57.695210", "msg": "", "rc": 0, "start": "2025-12-16 15:39:57.691018", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.005224", "end": "2025-12-16 15:40:20.669368", "msg": "", "rc": 0, "start": "2025-12-16 15:40:20.664144", "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.009522", "end": "2025-12-16 15:40:20.820676", "msg": "", "rc": 0, "start": "2025-12-16 15:40:20.811154", "stderr": "", "stderr_lines": [], "stdout": "1.60", "stdout_lines": ["1.60"]}
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.024382", "end": "2025-12-16 15:40:20.640647", "msg": "", "rc": 0, "start": "2025-12-16 15:40:20.616265", "stderr": "", "stderr_lines": [], "stdout": "0.42", "stdout_lines": ["0.42"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:11 up 2 days, 5:12, 1 user, load average: 0.87, 0.92, 0.65\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.89\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:11 up 21 days, 2:31, 1 user, load average: 0.18, 0.24, 0.25\nDisk Usage: 23%\nMemory Usage: 85.0%\nCPU Load: 0.41\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:11 up 21 days, 2:51, 1 user, load average: 0.98, 0.83, 0.74\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.91\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:11 up 21 days, 4:04, 1 user, load average: 0.55, 0.65, 0.65\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.55\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:11 up 21 days, 4:50, 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: 15:40:12 up 14 days, 5:06, 1 user, load average: 0.23, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.42\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:12 up 193 days, 7:13, 1 user, load average: 0.31, 0.41, 0.35\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.34\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:12 up 193 days, 7:13, 1 user, load average: 0.15, 0.12, 0.10\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.14\nCPU Temp: 33.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:39:46 up 10 days, 3:29, 0 user, load average: 0.02, 0.10, 0.15\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:39:40 up 16 days, 23:41, 0 user, load average: 0.01, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:12 up 2 days, 5:11, 1 user, load average: 0.01, 0.06, 0.03\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:39:43 up 19 days, 18:34, 0 user, load average: 0.49, 0.45, 0.45\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.49\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:39:49 up 16 days, 4:55, 0 user, load average: 0.27, 0.22, 0.19\nDisk Usage: 75%\nMemory Usage: 60.6%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:40PM up 21 days, 2:30, 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: 15:40:13 up 2 days, 5:11, 1 user, load average: 0.00, 0.04, 0.07\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:40:13 up 17:09, 1 user, load average: 1.56, 1.28, 1.17\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.60\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-16T20:40:21.657223+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `af82c1bf7b2c4d4b9576079a8c6b48ff` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:45:00.001593+00:00 |
| **Fin** | 2025-12-16T20:45:21.639286+00:00 |
| **Durée** | 21.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: [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.003035", "end": "2025-12-16 15:45:11.286600", "msg": "", "rc": 0, "start": "2025-12-16 15:45:11.283565", "stderr": "", "stderr_lines": [], "stdout": " 15:45:11 up 21 days, 2:36, 1 user, load average: 0.23, 0.24, 0.26", "stdout_lines": [" 15:45:11 up 21 days, 2:36, 1 user, load average: 0.23, 0.24, 0.26"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003209", "end": "2025-12-16 15:45:11.296499", "msg": "", "rc": 0, "start": "2025-12-16 15:45:11.293290", "stderr": "", "stderr_lines": [], "stdout": " 15:45:11 up 21 days, 2:56, 1 user, load average: 0.58, 0.68, 0.70", "stdout_lines": [" 15:45:11 up 21 days, 2:56, 1 user, load average: 0.58, 0.68, 0.70"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003532", "end": "2025-12-16 15:45:11.299621", "msg": "", "rc": 0, "start": "2025-12-16 15:45:11.296089", "stderr": "", "stderr_lines": [], "stdout": " 15:45:11 up 21 days, 4:55, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 15:45:11 up 21 days, 4:55, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004164", "end": "2025-12-16 15:45:11.318773", "msg": "", "rc": 0, "start": "2025-12-16 15:45:11.314609", "stderr": "", "stderr_lines": [], "stdout": " 15:45:11 up 21 days, 4:09, 1 user, load average: 0.69, 0.59, 0.62", "stdout_lines": [" 15:45:11 up 21 days, 4:09, 1 user, load average: 0.69, 0.59, 0.62"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002884", "end": "2025-12-16 15:45:11.327918", "msg": "", "rc": 0, "start": "2025-12-16 15:45:11.325034", "stderr": "", "stderr_lines": [], "stdout": " 15:45:11 up 2 days, 5:17, 1 user, load average: 0.34, 0.49, 0.53", "stdout_lines": [" 15:45:11 up 2 days, 5:17, 1 user, load average: 0.34, 0.49, 0.53"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002806", "end": "2025-12-16 15:44:46.265122", "msg": "", "rc": 0, "start": "2025-12-16 15:44:46.262316", "stderr": "", "stderr_lines": [], "stdout": " 15:44:46 up 10 days, 3:34, 0 user, load average: 0.41, 0.26, 0.19", "stdout_lines": [" 15:44:46 up 10 days, 3:34, 0 user, load average: 0.41, 0.26, 0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003269", "end": "2025-12-16 15:44:40.141203", "msg": "", "rc": 0, "start": "2025-12-16 15:44:40.137934", "stderr": "", "stderr_lines": [], "stdout": " 15:44:40 up 16 days, 23:46, 0 user, load average: 0.01, 0.03, 0.00", "stdout_lines": [" 15:44:40 up 16 days, 23:46, 0 user, load average: 0.01, 0.03, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008931", "end": "2025-12-16 15:45:11.959757", "msg": "", "rc": 0, "start": "2025-12-16 15:45:11.950826", "stderr": "", "stderr_lines": [], "stdout": " 15:45:11 up 193 days, 7:18, 1 user, load average: 0.05, 0.10, 0.09", "stdout_lines": [" 15:45:11 up 193 days, 7:18, 1 user, load average: 0.05, 0.10, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009250", "end": "2025-12-16 15:45:12.013164", "msg": "", "rc": 0, "start": "2025-12-16 15:45:12.003914", "stderr": "", "stderr_lines": [], "stdout": " 15:45:12 up 193 days, 7:18, 1 user, load average: 0.12, 0.25, 0.29", "stdout_lines": [" 15:45:12 up 193 days, 7:18, 1 user, load average: 0.12, 0.25, 0.29"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004639", "end": "2025-12-16 15:45:12.216678", "msg": "", "rc": 0, "start": "2025-12-16 15:45:12.212039", "stderr": "", "stderr_lines": [], "stdout": " 15:45:12 up 2 days, 5:16, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 15:45:12 up 2 days, 5:16, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003276", "end": "2025-12-16 15:44:43.314725", "msg": "", "rc": 0, "start": "2025-12-16 15:44:43.311449", "stderr": "", "stderr_lines": [], "stdout": " 15:44:43 up 19 days, 18:39, 0 user, load average: 0.48, 0.50, 0.47", "stdout_lines": [" 15:44:43 up 19 days, 18:39, 0 user, load average: 0.48, 0.50, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003930", "end": "2025-12-16 15:44:49.576209", "msg": "", "rc": 0, "start": "2025-12-16 15:44:49.572279", "stderr": "", "stderr_lines": [], "stdout": " 15:44:49 up 16 days, 5:00, 0 user, load average: 0.33, 0.21, 0.19", "stdout_lines": [" 15:44:49 up 16 days, 5:00, 0 user, load average: 0.33, 0.21, 0.19"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004365", "end": "2025-12-16 12:45:12.471226", "msg": "", "rc": 0, "start": "2025-12-16 12:45:12.466861", "stderr": "", "stderr_lines": [], "stdout": "12:45PM up 21 days, 2:34, 1 user, load averages: 0.17, 0.23, 0.24", "stdout_lines": ["12:45PM up 21 days, 2:34, 1 user, load averages: 0.17, 0.23, 0.24"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003700", "end": "2025-12-16 15:45:12.639956", "msg": "", "rc": 0, "start": "2025-12-16 15:45:12.636256", "stderr": "", "stderr_lines": [], "stdout": " 15:45:12 up 2 days, 5:16, 1 user, load average: 0.59, 0.14, 0.08", "stdout_lines": [" 15:45:12 up 2 days, 5:16, 1 user, load average: 0.59, 0.14, 0.08"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007608", "end": "2025-12-16 15:45:12.835462", "msg": "", "rc": 0, "start": "2025-12-16 15:45:12.827854", "stderr": "", "stderr_lines": [], "stdout": " 15:45:12 up 17:14, 1 user, load average: 1.33, 1.24, 1.19", "stdout_lines": [" 15:45:12 up 17:14, 1 user, load average: 1.33, 1.24, 1.19"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019386", "end": "2025-12-16 15:45:12.666187", "msg": "", "rc": 0, "start": "2025-12-16 15:45:12.646801", "stderr": "", "stderr_lines": [], "stdout": " 15:45:12 up 14 days, 5:11, 1 user, load average: 0.26, 0.18, 0.11", "stdout_lines": [" 15:45:12 up 14 days, 5:11, 1 user, load average: 0.26, 0.18, 0.11"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004305", "end": "2025-12-16 15:45:13.192528", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.188223", "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.004289", "end": "2025-12-16 15:45:13.208106", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.203817", "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.004968", "end": "2025-12-16 15:45:13.214018", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.209050", "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.004400", "end": "2025-12-16 15:45:13.234980", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.230580", "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.005719", "end": "2025-12-16 15:45:13.246594", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.240875", "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.005478", "end": "2025-12-16 15:44:48.205708", "msg": "", "rc": 0, "start": "2025-12-16 15:44:48.200230", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005772", "end": "2025-12-16 15:44:42.051372", "msg": "", "rc": 0, "start": "2025-12-16 15:44:42.045600", "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.010729", "end": "2025-12-16 15:45:13.934524", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.923795", "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.011783", "end": "2025-12-16 15:45:13.974618", "msg": "", "rc": 0, "start": "2025-12-16 15:45:13.962835", "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.005723", "end": "2025-12-16 15:45:14.176014", "msg": "", "rc": 0, "start": "2025-12-16 15:45:14.170291", "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.005172", "end": "2025-12-16 15:44:45.223339", "msg": "", "rc": 0, "start": "2025-12-16 15:44:45.218167", "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.005586", "end": "2025-12-16 15:44:51.547573", "msg": "", "rc": 0, "start": "2025-12-16 15:44:51.541987", "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.006315", "end": "2025-12-16 12:45:14.439106", "msg": "", "rc": 0, "start": "2025-12-16 12:45:14.432791", "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.005280", "end": "2025-12-16 15:45:14.600009", "msg": "", "rc": 0, "start": "2025-12-16 15:45:14.594729", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019248", "end": "2025-12-16 15:45:14.853084", "msg": "", "rc": 0, "start": "2025-12-16 15:45:14.833836", "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.025598", "end": "2025-12-16 15:45:14.587428", "msg": "", "rc": 0, "start": "2025-12-16 15:45:14.561830", "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.004897", "end": "2025-12-16 15:45:15.119227", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.114330", "stderr": "", "stderr_lines": [], "stdout": "84.9%", "stdout_lines": ["84.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.004794", "end": "2025-12-16 15:45:15.131014", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.126220", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004185", "end": "2025-12-16 15:45:15.138412", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.134227", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004740", "end": "2025-12-16 15:45:15.160602", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.155862", "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.005445", "end": "2025-12-16 15:45:15.177720", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.172275", "stderr": "", "stderr_lines": [], "stdout": "58.9%", "stdout_lines": ["58.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.003955", "end": "2025-12-16 15:44:50.153313", "msg": "", "rc": 0, "start": "2025-12-16 15:44:50.149358", "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.004270", "end": "2025-12-16 15:44:43.980294", "msg": "", "rc": 0, "start": "2025-12-16 15:44:43.976024", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011012", "end": "2025-12-16 15:45:15.813048", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.802036", "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.012109", "end": "2025-12-16 15:45:15.846127", "msg": "", "rc": 0, "start": "2025-12-16 15:45:15.834018", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005848", "end": "2025-12-16 15:45:16.120799", "msg": "", "rc": 0, "start": "2025-12-16 15:45:16.114951", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.005232", "end": "2025-12-16 15:44:47.155396", "msg": "", "rc": 0, "start": "2025-12-16 15:44:47.150164", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005290", "end": "2025-12-16 12:45:16.313210", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:45:16.307920", "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.004064", "end": "2025-12-16 15:44:53.473049", "msg": "", "rc": 0, "start": "2025-12-16 15:44:53.468985", "stderr": "", "stderr_lines": [], "stdout": "59.8%", "stdout_lines": ["59.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.008432", "end": "2025-12-16 15:45:16.816181", "msg": "", "rc": 0, "start": "2025-12-16 15:45:16.807749", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005378", "end": "2025-12-16 15:45:16.551995", "msg": "", "rc": 0, "start": "2025-12-16 15:45:16.546617", "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.025633", "end": "2025-12-16 15:45:16.503272", "msg": "", "rc": 0, "start": "2025-12-16 15:45:16.477639", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005073", "end": "2025-12-16 15:45:17.030705", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.025632", "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.005013", "end": "2025-12-16 15:45:17.038221", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.033208", "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.005430", "end": "2025-12-16 15:45:17.052040", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.046610", "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.002797", "end": "2025-12-16 15:45:17.077025", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.074228", "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.006515", "end": "2025-12-16 15:45:17.092060", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.085545", "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.002680", "end": "2025-12-16 15:44:52.051158", "msg": "", "rc": 0, "start": "2025-12-16 15:44:52.048478", "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.003098", "end": "2025-12-16 15:44:45.909957", "msg": "", "rc": 0, "start": "2025-12-16 15:44:45.906859", "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.011661", "end": "2025-12-16 15:45:17.726449", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.714788", "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.013770", "end": "2025-12-16 15:45:17.750482", "msg": "", "rc": 0, "start": "2025-12-16 15:45:17.736712", "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.003109", "end": "2025-12-16 15:45:18.016584", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.013475", "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.003109", "end": "2025-12-16 15:44:49.085350", "msg": "", "rc": 0, "start": "2025-12-16 15:44:49.082241", "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.003874", "end": "2025-12-16 12:45:18.222908", "msg": "", "rc": 0, "start": "2025-12-16 12:45:18.219034", "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.002900", "end": "2025-12-16 15:44:55.342521", "msg": "", "rc": 0, "start": "2025-12-16 15:44:55.339621", "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.003061", "end": "2025-12-16 15:45:18.451827", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.448766", "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.005106", "end": "2025-12-16 15:45:18.810798", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.805692", "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.028645", "end": "2025-12-16 15:45:18.422141", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.393496", "stderr": "", "stderr_lines": [], "stdout": "36.7°C", "stdout_lines": ["36.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.004290", "end": "2025-12-16 15:45:18.947094", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.942804", "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.004009", "end": "2025-12-16 15:45:18.974107", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.970098", "stderr": "", "stderr_lines": [], "stdout": "0.61", "stdout_lines": ["0.61"]}
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.004763", "end": "2025-12-16 15:45:18.984030", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.979267", "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.005173", "end": "2025-12-16 15:45:18.996879", "msg": "", "rc": 0, "start": "2025-12-16 15:45:18.991706", "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.006403", "end": "2025-12-16 15:45:19.014916", "msg": "", "rc": 0, "start": "2025-12-16 15:45:19.008513", "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.004802", "end": "2025-12-16 15:44:53.966240", "msg": "", "rc": 0, "start": "2025-12-16 15:44:53.961438", "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.005198", "end": "2025-12-16 15:44:47.850921", "msg": "", "rc": 0, "start": "2025-12-16 15:44:47.845723", "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.010176", "end": "2025-12-16 15:45:19.739101", "msg": "", "rc": 0, "start": "2025-12-16 15:45:19.728925", "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.011165", "end": "2025-12-16 15:45:19.765396", "msg": "", "rc": 0, "start": "2025-12-16 15:45:19.754231", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.005578", "end": "2025-12-16 15:45:19.928667", "msg": "", "rc": 0, "start": "2025-12-16 15:45:19.923089", "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.005064", "end": "2025-12-16 15:44:51.025580", "msg": "", "rc": 0, "start": "2025-12-16 15:44:51.020516", "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.006492", "end": "2025-12-16 12:45:20.234794", "msg": "", "rc": 0, "start": "2025-12-16 12:45:20.228302", "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.004274", "end": "2025-12-16 15:44:57.367023", "msg": "", "rc": 0, "start": "2025-12-16 15:44:57.362749", "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.005588", "end": "2025-12-16 15:45:20.358768", "msg": "", "rc": 0, "start": "2025-12-16 15:45:20.353180", "stderr": "", "stderr_lines": [], "stdout": "0.57", "stdout_lines": ["0.57"]}
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.007998", "end": "2025-12-16 15:45:20.845714", "msg": "", "rc": 0, "start": "2025-12-16 15:45:20.837716", "stderr": "", "stderr_lines": [], "stdout": "1.54", "stdout_lines": ["1.54"]}
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.024666", "end": "2025-12-16 15:45:20.326269", "msg": "", "rc": 0, "start": "2025-12-16 15:45:20.301603", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:11 up 21 days, 2:36, 1 user, load average: 0.23, 0.24, 0.26\nDisk Usage: 23%\nMemory Usage: 84.9%\nCPU Load: 0.21\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:11 up 2 days, 5:17, 1 user, load average: 0.34, 0.49, 0.53\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.61\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:11 up 21 days, 2:56, 1 user, load average: 0.58, 0.68, 0.70\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.53\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:11 up 21 days, 4:09, 1 user, load average: 0.69, 0.59, 0.62\nDisk Usage: 14%\nMemory Usage: 58.9%\nCPU Load: 0.66\nCPU Temp: 52.0°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:11 up 21 days, 4:55, 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: 15:45:12 up 14 days, 5:11, 1 user, load average: 0.26, 0.18, 0.11\nDisk Usage: 21%\nMemory Usage: 20.4%\nCPU Load: 0.30\nCPU Temp: 36.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:12 up 193 days, 7:18, 1 user, load average: 0.12, 0.25, 0.29\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.11\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:11 up 193 days, 7:18, 1 user, load average: 0.05, 0.10, 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: 15:44:46 up 10 days, 3:34, 0 user, load average: 0.41, 0.26, 0.19\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.38\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:44:40 up 16 days, 23:46, 0 user, load average: 0.01, 0.03, 0.00\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:12 up 2 days, 5:16, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:44:43 up 19 days, 18:39, 0 user, load average: 0.48, 0.50, 0.47\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.40\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:44:49 up 16 days, 5:00, 0 user, load average: 0.33, 0.21, 0.19\nDisk Usage: 75%\nMemory Usage: 59.8%\nCPU Load: 0.28\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:45PM up 21 days, 2:34, 1 user, load averages: 0.17, 0.23, 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: 15:45:12 up 2 days, 5:16, 1 user, load average: 0.59, 0.14, 0.08\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.57\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:45:12 up 17:14, 1 user, load average: 1.33, 1.24, 1.19\nDisk Usage: 1%\nMemory Usage: 20.4%\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-16T20:45:21.685423+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `191d5d665c364e6f99720916dfd94e4f` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:50:00.004044+00:00 |
| **Fin** | 2025-12-16T20:50:23.063726+00:00 |
| **Durée** | 23.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: [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: [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: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003834", "end": "2025-12-16 15:50:12.118052", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.114218", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 21 days, 5:00, 1 user, load average: 0.07, 0.02, 0.00", "stdout_lines": [" 15:50:12 up 21 days, 5:00, 1 user, load average: 0.07, 0.02, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003987", "end": "2025-12-16 15:50:12.135544", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.131557", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 21 days, 4:14, 1 user, load average: 0.73, 0.67, 0.65", "stdout_lines": [" 15:50:12 up 21 days, 4:14, 1 user, load average: 0.73, 0.67, 0.65"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002923", "end": "2025-12-16 15:50:12.145808", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.142885", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 2 days, 5:22, 1 user, load average: 0.37, 0.37, 0.46", "stdout_lines": [" 15:50:12 up 2 days, 5:22, 1 user, load average: 0.37, 0.37, 0.46"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004152", "end": "2025-12-16 15:50:12.137450", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.133298", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 21 days, 3:01, 1 user, load average: 0.45, 0.50, 0.61", "stdout_lines": [" 15:50:12 up 21 days, 3:01, 1 user, load average: 0.45, 0.50, 0.61"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003792", "end": "2025-12-16 15:49:47.126815", "msg": "", "rc": 0, "start": "2025-12-16 15:49:47.123023", "stderr": "", "stderr_lines": [], "stdout": " 15:49:47 up 10 days, 3:39, 0 user, load average: 0.14, 0.20, 0.18", "stdout_lines": [" 15:49:47 up 10 days, 3:39, 0 user, load average: 0.14, 0.20, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008654", "end": "2025-12-16 15:50:12.799504", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.790850", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 193 days, 7:23, 1 user, load average: 0.06, 0.09, 0.09", "stdout_lines": [" 15:50:12 up 193 days, 7:23, 1 user, load average: 0.06, 0.09, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009321", "end": "2025-12-16 15:50:12.831894", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.822573", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 193 days, 7:23, 1 user, load average: 0.26, 0.21, 0.26", "stdout_lines": [" 15:50:12 up 193 days, 7:23, 1 user, load average: 0.26, 0.21, 0.26"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004148", "end": "2025-12-16 15:50:13.105233", "msg": "", "rc": 0, "start": "2025-12-16 15:50:12.101085", "stderr": "", "stderr_lines": [], "stdout": " 15:50:12 up 21 days, 2:41, 1 user, load average: 0.22, 0.22, 0.25", "stdout_lines": [" 15:50:12 up 21 days, 2:41, 1 user, load average: 0.22, 0.22, 0.25"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003754", "end": "2025-12-16 15:49:41.430152", "msg": "", "rc": 0, "start": "2025-12-16 15:49:41.426398", "stderr": "", "stderr_lines": [], "stdout": " 15:49:41 up 16 days, 23:51, 0 user, load average: 0.08, 0.03, 0.01", "stdout_lines": [" 15:49:41 up 16 days, 23:51, 0 user, load average: 0.08, 0.03, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004726", "end": "2025-12-16 15:50:13.311662", "msg": "", "rc": 0, "start": "2025-12-16 15:50:13.306936", "stderr": "", "stderr_lines": [], "stdout": " 15:50:13 up 2 days, 5:21, 1 user, load average: 0.07, 0.02, 0.00", "stdout_lines": [" 15:50:13 up 2 days, 5:21, 1 user, load average: 0.07, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003305", "end": "2025-12-16 15:49:44.314979", "msg": "", "rc": 0, "start": "2025-12-16 15:49:44.311674", "stderr": "", "stderr_lines": [], "stdout": " 15:49:44 up 19 days, 18:44, 0 user, load average: 0.27, 0.39, 0.43", "stdout_lines": [" 15:49:44 up 19 days, 18:44, 0 user, load average: 0.27, 0.39, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003477", "end": "2025-12-16 15:49:50.676037", "msg": "", "rc": 0, "start": "2025-12-16 15:49:50.672560", "stderr": "", "stderr_lines": [], "stdout": " 15:49:50 up 16 days, 5:05, 0 user, load average: 0.03, 0.10, 0.14", "stdout_lines": [" 15:49:50 up 16 days, 5:05, 0 user, load average: 0.03, 0.10, 0.14"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004644", "end": "2025-12-16 12:50:13.590858", "msg": "", "rc": 0, "start": "2025-12-16 12:50:13.586214", "stderr": "", "stderr_lines": [], "stdout": "12:50PM up 21 days, 2:40, 1 user, load averages: 0.15, 0.22, 0.23", "stdout_lines": ["12:50PM up 21 days, 2:40, 1 user, load averages: 0.15, 0.22, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019701", "end": "2025-12-16 15:50:13.489427", "msg": "", "rc": 0, "start": "2025-12-16 15:50:13.469726", "stderr": "", "stderr_lines": [], "stdout": " 15:50:13 up 14 days, 5:16, 1 user, load average: 0.22, 0.14, 0.10", "stdout_lines": [" 15:50:13 up 14 days, 5:16, 1 user, load average: 0.22, 0.14, 0.10"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007141", "end": "2025-12-16 15:50:14.267163", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.260022", "stderr": "", "stderr_lines": [], "stdout": " 15:50:14 up 17:19, 1 user, load average: 1.17, 1.17, 1.17", "stdout_lines": [" 15:50:14 up 17:19, 1 user, load average: 1.17, 1.17, 1.17"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003708", "end": "2025-12-16 15:50:13.733856", "msg": "", "rc": 0, "start": "2025-12-16 15:50:13.730148", "stderr": "", "stderr_lines": [], "stdout": " 15:50:13 up 2 days, 5:21, 1 user, load average: 0.07, 0.10, 0.08", "stdout_lines": [" 15:50:13 up 2 days, 5:21, 1 user, load average: 0.07, 0.10, 0.08"]}
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-16 15:50:14.141996", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.137604", "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.004048", "end": "2025-12-16 15:50:14.156882", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.152834", "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.004666", "end": "2025-12-16 15:50:14.175978", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.171312", "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.004532", "end": "2025-12-16 15:50:14.188070", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.183538", "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.005737", "end": "2025-12-16 15:50:14.209422", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.203685", "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.005048", "end": "2025-12-16 15:49:49.152137", "msg": "", "rc": 0, "start": "2025-12-16 15:49:49.147089", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005530", "end": "2025-12-16 15:49:43.001065", "msg": "", "rc": 0, "start": "2025-12-16 15:49:42.995535", "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.010561", "end": "2025-12-16 15:50:14.894449", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.883888", "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.011771", "end": "2025-12-16 15:50:14.894010", "msg": "", "rc": 0, "start": "2025-12-16 15:50:14.882239", "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.005693", "end": "2025-12-16 15:50:15.137523", "msg": "", "rc": 0, "start": "2025-12-16 15:50:15.131830", "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.005464", "end": "2025-12-16 15:49:46.159497", "msg": "", "rc": 0, "start": "2025-12-16 15:49:46.154033", "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.005672", "end": "2025-12-16 12:50:15.371180", "msg": "", "rc": 0, "start": "2025-12-16 12:50:15.365508", "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.005867", "end": "2025-12-16 15:49:52.513447", "msg": "", "rc": 0, "start": "2025-12-16 15:49:52.507580", "stderr": "", "stderr_lines": [], "stdout": "75%", "stdout_lines": ["75%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020352", "end": "2025-12-16 15:50:16.176950", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.156598", "stderr": "", "stderr_lines": [], "stdout": "1%", "stdout_lines": ["1%"]}
ok: [jump.point.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005626", "end": "2025-12-16 15:50:15.567191", "msg": "", "rc": 0, "start": "2025-12-16 15:50:15.561565", "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.025249", "end": "2025-12-16 15:50:15.532174", "msg": "", "rc": 0, "start": "2025-12-16 15:50:15.506925", "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.004468", "end": "2025-12-16 15:50:16.059537", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.055069", "stderr": "", "stderr_lines": [], "stdout": "84.8%", "stdout_lines": ["84.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.004297", "end": "2025-12-16 15:50:16.077370", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.073073", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004776", "end": "2025-12-16 15:50:16.109166", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.104390", "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.004947", "end": "2025-12-16 15:50:16.113972", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.109025", "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.005576", "end": "2025-12-16 15:50:16.115036", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.109460", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003729", "end": "2025-12-16 15:49:51.092350", "msg": "", "rc": 0, "start": "2025-12-16 15:49:51.088621", "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.004321", "end": "2025-12-16 15:49:44.929323", "msg": "", "rc": 0, "start": "2025-12-16 15:49:44.925002", "stderr": "", "stderr_lines": [], "stdout": "69.2%", "stdout_lines": ["69.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.010833", "end": "2025-12-16 15:50:16.776184", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.765351", "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.012160", "end": "2025-12-16 15:50:16.777442", "msg": "", "rc": 0, "start": "2025-12-16 15:50:16.765282", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005968", "end": "2025-12-16 15:50:17.072491", "msg": "", "rc": 0, "start": "2025-12-16 15:50:17.066523", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004009", "end": "2025-12-16 15:49:48.102956", "msg": "", "rc": 0, "start": "2025-12-16 15:49:48.098947", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.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.005366", "end": "2025-12-16 12:50:17.249470", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:50:17.244104", "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.003662", "end": "2025-12-16 15:49:54.379503", "msg": "", "rc": 0, "start": "2025-12-16 15:49:54.375841", "stderr": "", "stderr_lines": [], "stdout": "59.2%", "stdout_lines": ["59.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.009817", "end": "2025-12-16 15:50:18.192218", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.182401", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.005472", "end": "2025-12-16 15:50:17.508102", "msg": "", "rc": 0, "start": "2025-12-16 15:50:17.502630", "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.025971", "end": "2025-12-16 15:50:17.451822", "msg": "", "rc": 0, "start": "2025-12-16 15:50:17.425851", "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.005251", "end": "2025-12-16 15:50:17.985318", "msg": "", "rc": 0, "start": "2025-12-16 15:50:17.980067", "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.004855", "end": "2025-12-16 15:50:18.012410", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.007555", "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.006571", "end": "2025-12-16 15:50:18.021250", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.014679", "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.006738", "end": "2025-12-16 15:50:18.039894", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.033156", "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.003257", "end": "2025-12-16 15:50:18.051376", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.048119", "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.002579", "end": "2025-12-16 15:49:52.997821", "msg": "", "rc": 0, "start": "2025-12-16 15:49:52.995242", "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.002834", "end": "2025-12-16 15:49:46.853136", "msg": "", "rc": 0, "start": "2025-12-16 15:49:46.850302", "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.012009", "end": "2025-12-16 15:50:18.687803", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.675794", "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.012955", "end": "2025-12-16 15:50:18.729656", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.716701", "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.003122", "end": "2025-12-16 15:50:18.952369", "msg": "", "rc": 0, "start": "2025-12-16 15:50:18.949247", "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.003065", "end": "2025-12-16 15:49:50.024327", "msg": "", "rc": 0, "start": "2025-12-16 15:49:50.021262", "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.002800", "end": "2025-12-16 15:49:56.302317", "msg": "", "rc": 0, "start": "2025-12-16 15:49:56.299517", "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.004523", "end": "2025-12-16 12:50:19.201197", "msg": "", "rc": 0, "start": "2025-12-16 12:50:19.196674", "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.002950", "end": "2025-12-16 15:50:19.379757", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.376807", "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.004284", "end": "2025-12-16 15:50:20.165327", "msg": "", "rc": 0, "start": "2025-12-16 15:50:20.161043", "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.029074", "end": "2025-12-16 15:50:19.379183", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.350109", "stderr": "", "stderr_lines": [], "stdout": "35.2°C", "stdout_lines": ["35.2°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.004241", "end": "2025-12-16 15:50:19.902344", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.898103", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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-16 15:50:19.928244", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.924235", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.005015", "end": "2025-12-16 15:50:19.937031", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.932016", "stderr": "", "stderr_lines": [], "stdout": "0.54", "stdout_lines": ["0.54"]}
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.005219", "end": "2025-12-16 15:50:19.948926", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.943707", "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.005986", "end": "2025-12-16 15:50:19.969699", "msg": "", "rc": 0, "start": "2025-12-16 15:50:19.963713", "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.004164", "end": "2025-12-16 15:49:54.923184", "msg": "", "rc": 0, "start": "2025-12-16 15:49:54.919020", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.005028", "end": "2025-12-16 15:49:48.779006", "msg": "", "rc": 0, "start": "2025-12-16 15:49:48.773978", "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.010123", "end": "2025-12-16 15:50:20.688957", "msg": "", "rc": 0, "start": "2025-12-16 15:50:20.678834", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.011300", "end": "2025-12-16 15:50:20.726398", "msg": "", "rc": 0, "start": "2025-12-16 15:50:20.715098", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
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.005703", "end": "2025-12-16 15:50:20.892690", "msg": "", "rc": 0, "start": "2025-12-16 15:50:20.886987", "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.005099", "end": "2025-12-16 15:49:51.946408", "msg": "", "rc": 0, "start": "2025-12-16 15:49:51.941309", "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.006011", "end": "2025-12-16 12:50:21.193859", "msg": "", "rc": 0, "start": "2025-12-16 12:50:21.187848", "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.004583", "end": "2025-12-16 15:49:58.325629", "msg": "", "rc": 0, "start": "2025-12-16 15:49:58.321046", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.005489", "end": "2025-12-16 15:50:21.317613", "msg": "", "rc": 0, "start": "2025-12-16 15:50:21.312124", "stderr": "", "stderr_lines": [], "stdout": "0.06", "stdout_lines": ["0.06"]}
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.007292", "end": "2025-12-16 15:50:22.164213", "msg": "", "rc": 0, "start": "2025-12-16 15:50:22.156921", "stderr": "", "stderr_lines": [], "stdout": "1.45", "stdout_lines": ["1.45"]}
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.024434", "end": "2025-12-16 15:50:21.300153", "msg": "", "rc": 0, "start": "2025-12-16 15:50:21.275719", "stderr": "", "stderr_lines": [], "stdout": "0.34", "stdout_lines": ["0.34"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 21 days, 2:41, 1 user, load average: 0.22, 0.22, 0.25\nDisk Usage: 23%\nMemory Usage: 84.8%\nCPU Load: 0.20\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 2 days, 5:22, 1 user, load average: 0.37, 0.37, 0.46\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.31\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 21 days, 3:01, 1 user, load average: 0.45, 0.50, 0.61\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.54\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 21 days, 4:14, 1 user, load average: 0.73, 0.67, 0.65\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.77\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 21 days, 5:00, 1 user, load average: 0.07, 0.02, 0.00\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:13 up 14 days, 5:16, 1 user, load average: 0.22, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.34\nCPU Temp: 35.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 193 days, 7:23, 1 user, load average: 0.26, 0.21, 0.26\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.30\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:12 up 193 days, 7:23, 1 user, load average: 0.06, 0.09, 0.09\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.05\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:49:47 up 10 days, 3:39, 0 user, load average: 0.14, 0.20, 0.18\nDisk Usage: 47%\nMemory Usage: 71.3%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:49:41 up 16 days, 23:51, 0 user, load average: 0.08, 0.03, 0.01\nDisk Usage: 24%\nMemory Usage: 69.2%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:13 up 2 days, 5:21, 1 user, load average: 0.07, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:49:44 up 19 days, 18:44, 0 user, load average: 0.27, 0.39, 0.43\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:49:50 up 16 days, 5:05, 0 user, load average: 0.03, 0.10, 0.14\nDisk Usage: 75%\nMemory Usage: 59.2%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:50PM up 21 days, 2:40, 1 user, load averages: 0.15, 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: 15:50:13 up 2 days, 5:21, 1 user, load average: 0.07, 0.10, 0.08\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.06\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:50:14 up 17:19, 1 user, load average: 1.17, 1.17, 1.17\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.45\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-16T20:50:23.107593+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `2d7321d25dde418488465b18c5346d0c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T20:55:00.001925+00:00 |
| **Fin** | 2025-12-16T20:55:22.240451+00:00 |
| **Durée** | 22.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: [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: [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.003301", "end": "2025-12-16 15:55:12.031577", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.028276", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 21 days, 3:06, 1 user, load average: 0.70, 0.57, 0.60", "stdout_lines": [" 15:55:12 up 21 days, 3:06, 1 user, load average: 0.70, 0.57, 0.60"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003836", "end": "2025-12-16 15:55:12.036077", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.032241", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 21 days, 5:05, 1 user, load average: 0.08, 0.02, 0.01", "stdout_lines": [" 15:55:12 up 21 days, 5:05, 1 user, load average: 0.08, 0.02, 0.01"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003057", "end": "2025-12-16 15:55:12.070781", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.067724", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 2 days, 5:27, 1 user, load average: 0.15, 0.26, 0.39", "stdout_lines": [" 15:55:12 up 2 days, 5:27, 1 user, load average: 0.15, 0.26, 0.39"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004130", "end": "2025-12-16 15:55:12.079976", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.075846", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 21 days, 4:19, 1 user, load average: 0.29, 0.56, 0.62", "stdout_lines": [" 15:55:12 up 21 days, 4:19, 1 user, load average: 0.29, 0.56, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002832", "end": "2025-12-16 15:54:47.025189", "msg": "", "rc": 0, "start": "2025-12-16 15:54:47.022357", "stderr": "", "stderr_lines": [], "stdout": " 15:54:47 up 10 days, 3:44, 0 user, load average: 0.00, 0.06, 0.12", "stdout_lines": [" 15:54:47 up 10 days, 3:44, 0 user, load average: 0.00, 0.06, 0.12"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008519", "end": "2025-12-16 15:55:12.716628", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.708109", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 193 days, 7:28, 1 user, load average: 0.16, 0.13, 0.10", "stdout_lines": [" 15:55:12 up 193 days, 7:28, 1 user, load average: 0.16, 0.13, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009314", "end": "2025-12-16 15:55:12.753007", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.743693", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 193 days, 7:28, 1 user, load average: 0.22, 0.20, 0.24", "stdout_lines": [" 15:55:12 up 193 days, 7:28, 1 user, load average: 0.22, 0.20, 0.24"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.003917", "end": "2025-12-16 15:55:13.027014", "msg": "", "rc": 0, "start": "2025-12-16 15:55:12.023097", "stderr": "", "stderr_lines": [], "stdout": " 15:55:12 up 21 days, 2:46, 1 user, load average: 0.40, 0.25, 0.25", "stdout_lines": [" 15:55:12 up 21 days, 2:46, 1 user, load average: 0.40, 0.25, 0.25"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003479", "end": "2025-12-16 15:54:41.313384", "msg": "", "rc": 0, "start": "2025-12-16 15:54:41.309905", "stderr": "", "stderr_lines": [], "stdout": " 15:54:41 up 16 days, 23:56, 0 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 15:54:41 up 16 days, 23:56, 0 user, load average: 0.00, 0.01, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004733", "end": "2025-12-16 15:55:13.219848", "msg": "", "rc": 0, "start": "2025-12-16 15:55:13.215115", "stderr": "", "stderr_lines": [], "stdout": " 15:55:13 up 2 days, 5:26, 1 user, load average: 0.15, 0.05, 0.01", "stdout_lines": [" 15:55:13 up 2 days, 5:26, 1 user, load average: 0.15, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003254", "end": "2025-12-16 15:54:44.237944", "msg": "", "rc": 0, "start": "2025-12-16 15:54:44.234690", "stderr": "", "stderr_lines": [], "stdout": " 15:54:44 up 19 days, 18:49, 0 user, load average: 0.74, 0.52, 0.47", "stdout_lines": [" 15:54:44 up 19 days, 18:49, 0 user, load average: 0.74, 0.52, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002910", "end": "2025-12-16 15:54:50.579438", "msg": "", "rc": 0, "start": "2025-12-16 15:54:50.576528", "stderr": "", "stderr_lines": [], "stdout": " 15:54:50 up 16 days, 5:10, 0 user, load average: 0.03, 0.08, 0.12", "stdout_lines": [" 15:54:50 up 16 days, 5:10, 0 user, load average: 0.03, 0.08, 0.12"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004534", "end": "2025-12-16 12:55:13.480978", "msg": "", "rc": 0, "start": "2025-12-16 12:55:13.476444", "stderr": "", "stderr_lines": [], "stdout": "12:55PM up 21 days, 2:45, 1 user, load averages: 0.20, 0.25, 0.24", "stdout_lines": ["12:55PM up 21 days, 2:45, 1 user, load averages: 0.20, 0.25, 0.24"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019235", "end": "2025-12-16 15:55:13.406314", "msg": "", "rc": 0, "start": "2025-12-16 15:55:13.387079", "stderr": "", "stderr_lines": [], "stdout": " 15:55:13 up 14 days, 5:21, 1 user, load average: 0.17, 0.15, 0.10", "stdout_lines": [" 15:55:13 up 14 days, 5:21, 1 user, load average: 0.17, 0.15, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003686", "end": "2025-12-16 15:55:13.647573", "msg": "", "rc": 0, "start": "2025-12-16 15:55:13.643887", "stderr": "", "stderr_lines": [], "stdout": " 15:55:13 up 2 days, 5:26, 1 user, load average: 0.00, 0.03, 0.05", "stdout_lines": [" 15:55:13 up 2 days, 5:26, 1 user, load average: 0.00, 0.03, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007092", "end": "2025-12-16 15:55:14.594257", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.587165", "stderr": "", "stderr_lines": [], "stdout": " 15:55:14 up 17:25, 1 user, load average: 1.16, 1.12, 1.15", "stdout_lines": [" 15:55:14 up 17:25, 1 user, load average: 1.16, 1.12, 1.15"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004353", "end": "2025-12-16 15:55:14.047341", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.042988", "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.004180", "end": "2025-12-16 15:55:14.073781", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.069601", "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.004696", "end": "2025-12-16 15:55:14.074474", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.069778", "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.004914", "end": "2025-12-16 15:55:14.112261", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.107347", "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.005558", "end": "2025-12-16 15:55:14.130131", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.124573", "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.005222", "end": "2025-12-16 15:54:49.072269", "msg": "", "rc": 0, "start": "2025-12-16 15:54:49.067047", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005604", "end": "2025-12-16 15:54:42.920194", "msg": "", "rc": 0, "start": "2025-12-16 15:54:42.914590", "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.010655", "end": "2025-12-16 15:55:14.796962", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.786307", "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.011725", "end": "2025-12-16 15:55:14.825213", "msg": "", "rc": 0, "start": "2025-12-16 15:55:14.813488", "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.005715", "end": "2025-12-16 15:55:15.064175", "msg": "", "rc": 0, "start": "2025-12-16 15:55:15.058460", "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.005176", "end": "2025-12-16 15:54:46.110150", "msg": "", "rc": 0, "start": "2025-12-16 15:54:46.104974", "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.005510", "end": "2025-12-16 15:54:52.393111", "msg": "", "rc": 0, "start": "2025-12-16 15:54:52.387601", "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.005510", "end": "2025-12-16 12:55:15.288684", "msg": "", "rc": 0, "start": "2025-12-16 12:55:15.283174", "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.005848", "end": "2025-12-16 15:55:15.495790", "msg": "", "rc": 0, "start": "2025-12-16 15:55:15.489942", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018750", "end": "2025-12-16 15:55:16.515649", "msg": "", "rc": 0, "start": "2025-12-16 15:55:16.496899", "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.025044", "end": "2025-12-16 15:55:15.431691", "msg": "", "rc": 0, "start": "2025-12-16 15:55:15.406647", "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.004619", "end": "2025-12-16 15:55:15.958302", "msg": "", "rc": 0, "start": "2025-12-16 15:55:15.953683", "stderr": "", "stderr_lines": [], "stdout": "84.7%", "stdout_lines": ["84.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.004137", "end": "2025-12-16 15:55:15.964368", "msg": "", "rc": 0, "start": "2025-12-16 15:55:15.960231", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004815", "end": "2025-12-16 15:55:15.988749", "msg": "", "rc": 0, "start": "2025-12-16 15:55:15.983934", "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.005347", "end": "2025-12-16 15:55:16.007205", "msg": "", "rc": 0, "start": "2025-12-16 15:55:16.001858", "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.005637", "end": "2025-12-16 15:55:16.012709", "msg": "", "rc": 0, "start": "2025-12-16 15:55:16.007072", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003745", "end": "2025-12-16 15:54:50.984692", "msg": "", "rc": 0, "start": "2025-12-16 15:54:50.980947", "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.004592", "end": "2025-12-16 15:54:44.824810", "msg": "", "rc": 0, "start": "2025-12-16 15:54:44.820218", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010927", "end": "2025-12-16 15:55:16.665806", "msg": "", "rc": 0, "start": "2025-12-16 15:55:16.654879", "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.011953", "end": "2025-12-16 15:55:16.709513", "msg": "", "rc": 0, "start": "2025-12-16 15:55:16.697560", "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.005899", "end": "2025-12-16 15:55:16.966053", "msg": "", "rc": 0, "start": "2025-12-16 15:55:16.960154", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004332", "end": "2025-12-16 15:54:47.996231", "msg": "", "rc": 0, "start": "2025-12-16 15:54:47.991899", "stderr": "", "stderr_lines": [], "stdout": "27.5%", "stdout_lines": ["27.5%"]}
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.003887", "end": "2025-12-16 15:54:54.264012", "msg": "", "rc": 0, "start": "2025-12-16 15:54:54.260125", "stderr": "", "stderr_lines": [], "stdout": "58.4%", "stdout_lines": ["58.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.005347", "end": "2025-12-16 12:55:17.261751", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 12:55:17.256404", "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.005487", "end": "2025-12-16 15:55:17.386884", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.381397", "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.008639", "end": "2025-12-16 15:55:17.417246", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.408607", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.026572", "end": "2025-12-16 15:55:17.351964", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.325392", "stderr": "", "stderr_lines": [], "stdout": "20.5%", "stdout_lines": ["20.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.005278", "end": "2025-12-16 15:55:17.891130", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.885852", "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.004835", "end": "2025-12-16 15:55:17.903265", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.898430", "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.005438", "end": "2025-12-16 15:55:17.905167", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.899729", "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.003398", "end": "2025-12-16 15:55:17.937089", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.933691", "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.006419", "end": "2025-12-16 15:55:17.939454", "msg": "", "rc": 0, "start": "2025-12-16 15:55:17.933035", "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.002608", "end": "2025-12-16 15:54:52.887778", "msg": "", "rc": 0, "start": "2025-12-16 15:54:52.885170", "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.003032", "end": "2025-12-16 15:54:46.743047", "msg": "", "rc": 0, "start": "2025-12-16 15:54:46.740015", "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.011814", "end": "2025-12-16 15:55:18.584892", "msg": "", "rc": 0, "start": "2025-12-16 15:55:18.573078", "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.013140", "end": "2025-12-16 15:55:18.621750", "msg": "", "rc": 0, "start": "2025-12-16 15:55:18.608610", "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.003449", "end": "2025-12-16 15:55:18.851039", "msg": "", "rc": 0, "start": "2025-12-16 15:55:18.847590", "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.003020", "end": "2025-12-16 15:54:49.926815", "msg": "", "rc": 0, "start": "2025-12-16 15:54:49.923795", "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.004141", "end": "2025-12-16 12:55:19.092915", "msg": "", "rc": 0, "start": "2025-12-16 12:55:19.088774", "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.002579", "end": "2025-12-16 15:54:56.211020", "msg": "", "rc": 0, "start": "2025-12-16 15:54:56.208441", "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-16 15:55:19.269749", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.266844", "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.004012", "end": "2025-12-16 15:55:19.393240", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.389228", "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.028878", "end": "2025-12-16 15:55:19.283437", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.254559", "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.004211", "end": "2025-12-16 15:55:19.798481", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.794270", "stderr": "", "stderr_lines": [], "stdout": "0.36", "stdout_lines": ["0.36"]}
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.003999", "end": "2025-12-16 15:55:19.831236", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.827237", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004889", "end": "2025-12-16 15:55:19.834763", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.829874", "stderr": "", "stderr_lines": [], "stdout": "0.67", "stdout_lines": ["0.67"]}
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.005819", "end": "2025-12-16 15:55:19.858570", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.852751", "stderr": "", "stderr_lines": [], "stdout": "0.07", "stdout_lines": ["0.07"]}
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.005381", "end": "2025-12-16 15:55:19.867104", "msg": "", "rc": 0, "start": "2025-12-16 15:55:19.861723", "stderr": "", "stderr_lines": [], "stdout": "0.40", "stdout_lines": ["0.40"]}
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.004391", "end": "2025-12-16 15:54:54.837139", "msg": "", "rc": 0, "start": "2025-12-16 15:54:54.832748", "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.005157", "end": "2025-12-16 15:54:48.658752", "msg": "", "rc": 0, "start": "2025-12-16 15:54:48.653595", "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.010311", "end": "2025-12-16 15:55:20.588603", "msg": "", "rc": 0, "start": "2025-12-16 15:55:20.578292", "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.011217", "end": "2025-12-16 15:55:20.660832", "msg": "", "rc": 0, "start": "2025-12-16 15:55:20.649615", "stderr": "", "stderr_lines": [], "stdout": "0.27", "stdout_lines": ["0.27"]}
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.005632", "end": "2025-12-16 15:55:20.804197", "msg": "", "rc": 0, "start": "2025-12-16 15:55:20.798565", "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.004762", "end": "2025-12-16 15:54:51.832354", "msg": "", "rc": 0, "start": "2025-12-16 15:54:51.827592", "stderr": "", "stderr_lines": [], "stdout": "0.70", "stdout_lines": ["0.70"]}
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.004445", "end": "2025-12-16 15:54:58.206668", "msg": "", "rc": 0, "start": "2025-12-16 15:54:58.202223", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.006491", "end": "2025-12-16 12:55:21.128839", "msg": "", "rc": 0, "start": "2025-12-16 12:55:21.122348", "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.005275", "end": "2025-12-16 15:55:21.230890", "msg": "", "rc": 0, "start": "2025-12-16 15:55:21.225615", "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.007592", "end": "2025-12-16 15:55:21.374232", "msg": "", "rc": 0, "start": "2025-12-16 15:55:21.366640", "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.024641", "end": "2025-12-16 15:55:21.171069", "msg": "", "rc": 0, "start": "2025-12-16 15:55:21.146428", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 2 days, 5:27, 1 user, load average: 0.15, 0.26, 0.39\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.28\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 21 days, 2:46, 1 user, load average: 0.40, 0.25, 0.25\nDisk Usage: 23%\nMemory Usage: 84.7%\nCPU Load: 0.36\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 21 days, 3:06, 1 user, load average: 0.70, 0.57, 0.60\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.67\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 21 days, 4:19, 1 user, load average: 0.29, 0.56, 0.62\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.40\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 21 days, 5:05, 1 user, load average: 0.08, 0.02, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.07\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:13 up 14 days, 5:21, 1 user, load average: 0.17, 0.15, 0.10\nDisk Usage: 21%\nMemory Usage: 20.5%\nCPU Load: 0.30\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 193 days, 7:28, 1 user, load average: 0.22, 0.20, 0.24\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.27\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:12 up 193 days, 7:28, 1 user, load average: 0.16, 0.13, 0.10\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.15\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:54:47 up 10 days, 3:44, 0 user, load average: 0.00, 0.06, 0.12\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:54:41 up 16 days, 23:56, 0 user, load average: 0.00, 0.01, 0.00\nDisk Usage: 24%\nMemory Usage: 69.0%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:13 up 2 days, 5:26, 1 user, load average: 0.15, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:54:44 up 19 days, 18:49, 0 user, load average: 0.74, 0.52, 0.47\nDisk Usage: 28%\nMemory Usage: 27.5%\nCPU Load: 0.70\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:54:50 up 16 days, 5:10, 0 user, load average: 0.03, 0.08, 0.12\nDisk Usage: 75%\nMemory Usage: 58.4%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 12:55PM up 21 days, 2:45, 1 user, load averages: 0.20, 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: 15:55:13 up 2 days, 5:26, 1 user, load average: 0.00, 0.03, 0.05\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:55:14 up 17:25, 1 user, load average: 1.16, 1.12, 1.15\nDisk Usage: 1%\nMemory Usage: 20.4%\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-16T20:55:22.279821+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `8164beb5714c4d7281b9f014bf5fcb04` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:00:00.002079+00:00 |
| **Fin** | 2025-12-16T21:00:21.848489+00:00 |
| **Durée** | 21.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: [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.003015", "end": "2025-12-16 16:00:11.181439", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.178424", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 21 days, 2:51, 1 user, load average: 0.08, 0.18, 0.22", "stdout_lines": [" 16:00:11 up 21 days, 2:51, 1 user, load average: 0.08, 0.18, 0.22"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003943", "end": "2025-12-16 16:00:11.190162", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.186219", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 21 days, 5:10, 1 user, load average: 0.02, 0.06, 0.02", "stdout_lines": [" 16:00:11 up 21 days, 5:10, 1 user, load average: 0.02, 0.06, 0.02"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002967", "end": "2025-12-16 16:00:11.213441", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.210474", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 2 days, 5:32, 1 user, load average: 0.27, 0.27, 0.35", "stdout_lines": [" 16:00:11 up 2 days, 5:32, 1 user, load average: 0.27, 0.27, 0.35"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004125", "end": "2025-12-16 16:00:11.221465", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.217340", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 21 days, 4:24, 1 user, load average: 0.72, 0.63, 0.64", "stdout_lines": [" 16:00:11 up 21 days, 4:24, 1 user, load average: 0.72, 0.63, 0.64"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002765", "end": "2025-12-16 15:59:46.169086", "msg": "", "rc": 0, "start": "2025-12-16 15:59:46.166321", "stderr": "", "stderr_lines": [], "stdout": " 15:59:46 up 10 days, 3:49, 0 user, load average: 0.19, 0.13, 0.13", "stdout_lines": [" 15:59:46 up 10 days, 3:49, 0 user, load average: 0.19, 0.13, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008385", "end": "2025-12-16 16:00:11.880463", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.872078", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 193 days, 7:33, 1 user, load average: 0.12, 0.12, 0.09", "stdout_lines": [" 16:00:11 up 193 days, 7:33, 1 user, load average: 0.12, 0.12, 0.09"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009280", "end": "2025-12-16 16:00:11.925584", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.916304", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 193 days, 7:33, 1 user, load average: 0.22, 0.18, 0.21", "stdout_lines": [" 16:00:11 up 193 days, 7:33, 1 user, load average: 0.22, 0.18, 0.21"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004543", "end": "2025-12-16 16:00:12.195570", "msg": "", "rc": 0, "start": "2025-12-16 16:00:11.191027", "stderr": "", "stderr_lines": [], "stdout": " 16:00:11 up 21 days, 3:11, 1 user, load average: 0.44, 0.52, 0.56", "stdout_lines": [" 16:00:11 up 21 days, 3:11, 1 user, load average: 0.44, 0.52, 0.56"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003864", "end": "2025-12-16 15:59:40.491627", "msg": "", "rc": 0, "start": "2025-12-16 15:59:40.487763", "stderr": "", "stderr_lines": [], "stdout": " 15:59:40 up 17 days, 1 min, 0 user, load average: 0.03, 0.04, 0.00", "stdout_lines": [" 15:59:40 up 17 days, 1 min, 0 user, load average: 0.03, 0.04, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005329", "end": "2025-12-16 16:00:12.388673", "msg": "", "rc": 0, "start": "2025-12-16 16:00:12.383344", "stderr": "", "stderr_lines": [], "stdout": " 16:00:12 up 2 days, 5:31, 1 user, load average: 0.06, 0.06, 0.01", "stdout_lines": [" 16:00:12 up 2 days, 5:31, 1 user, load average: 0.06, 0.06, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003483", "end": "2025-12-16 15:59:43.429057", "msg": "", "rc": 0, "start": "2025-12-16 15:59:43.425574", "stderr": "", "stderr_lines": [], "stdout": " 15:59:43 up 19 days, 18:54, 0 user, load average: 0.44, 0.41, 0.43", "stdout_lines": [" 15:59:43 up 19 days, 18:54, 0 user, load average: 0.44, 0.41, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002959", "end": "2025-12-16 15:59:49.742377", "msg": "", "rc": 0, "start": "2025-12-16 15:59:49.739418", "stderr": "", "stderr_lines": [], "stdout": " 15:59:49 up 16 days, 5:15, 0 user, load average: 0.17, 0.19, 0.15", "stdout_lines": [" 15:59:49 up 16 days, 5:15, 0 user, load average: 0.17, 0.19, 0.15"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004538", "end": "2025-12-16 13:00:12.671906", "msg": "", "rc": 0, "start": "2025-12-16 13:00:12.667368", "stderr": "", "stderr_lines": [], "stdout": " 1:00PM up 21 days, 2:50, 1 user, load averages: 0.45, 0.31, 0.26", "stdout_lines": [" 1:00PM up 21 days, 2:50, 1 user, load averages: 0.45, 0.31, 0.26"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019807", "end": "2025-12-16 16:00:12.572451", "msg": "", "rc": 0, "start": "2025-12-16 16:00:12.552644", "stderr": "", "stderr_lines": [], "stdout": " 16:00:12 up 14 days, 5:26, 1 user, load average: 0.14, 0.11, 0.09", "stdout_lines": [" 16:00:12 up 14 days, 5:26, 1 user, load average: 0.14, 0.11, 0.09"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003649", "end": "2025-12-16 16:00:12.822944", "msg": "", "rc": 0, "start": "2025-12-16 16:00:12.819295", "stderr": "", "stderr_lines": [], "stdout": " 16:00:12 up 2 days, 5:31, 1 user, load average: 0.17, 0.06, 0.05", "stdout_lines": [" 16:00:12 up 2 days, 5:31, 1 user, load average: 0.17, 0.06, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006938", "end": "2025-12-16 16:00:13.041810", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.034872", "stderr": "", "stderr_lines": [], "stdout": " 16:00:13 up 17:30, 1 user, load average: 1.54, 1.23, 1.17", "stdout_lines": [" 16:00:13 up 17:30, 1 user, load average: 1.54, 1.23, 1.17"]}
TASK [Get disk usage] **********************************************************
ok: [hp2.i7.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005028", "end": "2025-12-16 16:00:13.244063", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.239035", "stderr": "", "stderr_lines": [], "stdout": "14%", "stdout_lines": ["14%"]}
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004317", "end": "2025-12-16 16:00:13.250340", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.246023", "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.004141", "end": "2025-12-16 16:00:13.260889", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.256748", "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.004931", "end": "2025-12-16 16:00:13.294155", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.289224", "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-16 16:00:13.308361", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.302617", "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.005121", "end": "2025-12-16 15:59:48.237230", "msg": "", "rc": 0, "start": "2025-12-16 15:59:48.232109", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005748", "end": "2025-12-16 15:59:42.142680", "msg": "", "rc": 0, "start": "2025-12-16 15:59:42.136932", "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.010793", "end": "2025-12-16 16:00:13.996975", "msg": "", "rc": 0, "start": "2025-12-16 16:00:13.986182", "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.011642", "end": "2025-12-16 16:00:14.016629", "msg": "", "rc": 0, "start": "2025-12-16 16:00:14.004987", "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.005773", "end": "2025-12-16 16:00:14.232110", "msg": "", "rc": 0, "start": "2025-12-16 16:00:14.226337", "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.005238", "end": "2025-12-16 15:59:45.314688", "msg": "", "rc": 0, "start": "2025-12-16 15:59:45.309450", "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.005452", "end": "2025-12-16 13:00:14.467800", "msg": "", "rc": 0, "start": "2025-12-16 13:00:14.462348", "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.005315", "end": "2025-12-16 15:59:51.598825", "msg": "", "rc": 0, "start": "2025-12-16 15:59:51.593510", "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.005322", "end": "2025-12-16 16:00:14.652367", "msg": "", "rc": 0, "start": "2025-12-16 16:00:14.647045", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019026", "end": "2025-12-16 16:00:15.002046", "msg": "", "rc": 0, "start": "2025-12-16 16:00:14.983020", "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.025695", "end": "2025-12-16 16:00:14.646338", "msg": "", "rc": 0, "start": "2025-12-16 16:00:14.620643", "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-16 16:00:15.177919", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.173528", "stderr": "", "stderr_lines": [], "stdout": "84.7%", "stdout_lines": ["84.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.004977", "end": "2025-12-16 16:00:15.209863", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.204886", "stderr": "", "stderr_lines": [], "stdout": "49.2%", "stdout_lines": ["49.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.004208", "end": "2025-12-16 16:00:15.215501", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.211293", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004587", "end": "2025-12-16 16:00:15.228842", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.224255", "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.005713", "end": "2025-12-16 16:00:15.244897", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.239184", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003688", "end": "2025-12-16 15:59:50.199174", "msg": "", "rc": 0, "start": "2025-12-16 15:59:50.195486", "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.004350", "end": "2025-12-16 15:59:44.056604", "msg": "", "rc": 0, "start": "2025-12-16 15:59:44.052254", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011327", "end": "2025-12-16 16:00:15.915011", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.903684", "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.012005", "end": "2025-12-16 16:00:15.944889", "msg": "", "rc": 0, "start": "2025-12-16 16:00:15.932884", "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.006158", "end": "2025-12-16 16:00:16.149771", "msg": "", "rc": 0, "start": "2025-12-16 16:00:16.143613", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004054", "end": "2025-12-16 15:59:47.232367", "msg": "", "rc": 0, "start": "2025-12-16 15:59:47.228313", "stderr": "", "stderr_lines": [], "stdout": "27.3%", "stdout_lines": ["27.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.005148", "end": "2025-12-16 13:00:16.398828", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:00:16.393680", "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.003732", "end": "2025-12-16 15:59:53.532037", "msg": "", "rc": 0, "start": "2025-12-16 15:59:53.528305", "stderr": "", "stderr_lines": [], "stdout": "59.7%", "stdout_lines": ["59.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.005392", "end": "2025-12-16 16:00:16.572019", "msg": "", "rc": 0, "start": "2025-12-16 16:00:16.566627", "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.010386", "end": "2025-12-16 16:00:16.987306", "msg": "", "rc": 0, "start": "2025-12-16 16:00:16.976920", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025218", "end": "2025-12-16 16:00:16.598502", "msg": "", "rc": 0, "start": "2025-12-16 16:00:16.573284", "stderr": "", "stderr_lines": [], "stdout": "20.8%", "stdout_lines": ["20.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.005036", "end": "2025-12-16 16:00:17.139641", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.134605", "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.004945", "end": "2025-12-16 16:00:17.153981", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.149036", "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.005579", "end": "2025-12-16 16:00:17.168998", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.163419", "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.003294", "end": "2025-12-16 16:00:17.179192", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.175898", "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.006677", "end": "2025-12-16 16:00:17.193371", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.186694", "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.002382", "end": "2025-12-16 15:59:52.126233", "msg": "", "rc": 0, "start": "2025-12-16 15:59:52.123851", "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.003377", "end": "2025-12-16 15:59:45.976626", "msg": "", "rc": 0, "start": "2025-12-16 15:59:45.973249", "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.011805", "end": "2025-12-16 16:00:17.839622", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.827817", "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.012898", "end": "2025-12-16 16:00:17.877710", "msg": "", "rc": 0, "start": "2025-12-16 16:00:17.864812", "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.003201", "end": "2025-12-16 16:00:18.109188", "msg": "", "rc": 0, "start": "2025-12-16 16:00:18.105987", "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.002894", "end": "2025-12-16 15:59:49.144813", "msg": "", "rc": 0, "start": "2025-12-16 15:59:49.141919", "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.002407", "end": "2025-12-16 15:59:55.434353", "msg": "", "rc": 0, "start": "2025-12-16 15:59:55.431946", "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.004146", "end": "2025-12-16 13:00:18.366108", "msg": "", "rc": 0, "start": "2025-12-16 13:00:18.361962", "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.003039", "end": "2025-12-16 16:00:18.559008", "msg": "", "rc": 0, "start": "2025-12-16 16:00:18.555969", "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.004210", "end": "2025-12-16 16:00:18.977759", "msg": "", "rc": 0, "start": "2025-12-16 16:00:18.973549", "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.028793", "end": "2025-12-16 16:00:18.543264", "msg": "", "rc": 0, "start": "2025-12-16 16:00:18.514471", "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.004295", "end": "2025-12-16 16:00:19.060546", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.056251", "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.003966", "end": "2025-12-16 16:00:19.064854", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.060888", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.004695", "end": "2025-12-16 16:00:19.093221", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.088526", "stderr": "", "stderr_lines": [], "stdout": "0.41", "stdout_lines": ["0.41"]}
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.005128", "end": "2025-12-16 16:00:19.121807", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.116679", "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.005537", "end": "2025-12-16 16:00:19.142258", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.136721", "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.004025", "end": "2025-12-16 15:59:54.065077", "msg": "", "rc": 0, "start": "2025-12-16 15:59:54.061052", "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.005206", "end": "2025-12-16 15:59:47.921158", "msg": "", "rc": 0, "start": "2025-12-16 15:59:47.915952", "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.010166", "end": "2025-12-16 16:00:19.831859", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.821693", "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.011190", "end": "2025-12-16 16:00:19.857307", "msg": "", "rc": 0, "start": "2025-12-16 16:00:19.846117", "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.005512", "end": "2025-12-16 16:00:20.034792", "msg": "", "rc": 0, "start": "2025-12-16 16:00:20.029280", "stderr": "", "stderr_lines": [], "stdout": "0.05", "stdout_lines": ["0.05"]}
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.005211", "end": "2025-12-16 15:59:51.081740", "msg": "", "rc": 0, "start": "2025-12-16 15:59:51.076529", "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.006079", "end": "2025-12-16 13:00:20.323144", "msg": "", "rc": 0, "start": "2025-12-16 13:00:20.317065", "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.004164", "end": "2025-12-16 15:59:57.435625", "msg": "", "rc": 0, "start": "2025-12-16 15:59:57.431461", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.005427", "end": "2025-12-16 16:00:20.465647", "msg": "", "rc": 0, "start": "2025-12-16 16:00:20.460220", "stderr": "", "stderr_lines": [], "stdout": "0.22", "stdout_lines": ["0.22"]}
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.009212", "end": "2025-12-16 16:00:20.971842", "msg": "", "rc": 0, "start": "2025-12-16 16:00:20.962630", "stderr": "", "stderr_lines": [], "stdout": "1.50", "stdout_lines": ["1.50"]}
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.024634", "end": "2025-12-16 16:00:20.446754", "msg": "", "rc": 0, "start": "2025-12-16 16:00:20.422120", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 21 days, 2:51, 1 user, load average: 0.08, 0.18, 0.22\nDisk Usage: 23%\nMemory Usage: 84.7%\nCPU Load: 0.08\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 2 days, 5:32, 1 user, load average: 0.27, 0.27, 0.35\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.31\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 21 days, 3:11, 1 user, load average: 0.44, 0.52, 0.56\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.41\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 21 days, 4:24, 1 user, load average: 0.72, 0.63, 0.64\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 1.00\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 21 days, 5:10, 1 user, load average: 0.02, 0.06, 0.02\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:12 up 14 days, 5:26, 1 user, load average: 0.14, 0.11, 0.09\nDisk Usage: 21%\nMemory Usage: 20.8%\nCPU Load: 0.21\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 193 days, 7:33, 1 user, load average: 0.22, 0.18, 0.21\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.28\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:11 up 193 days, 7:33, 1 user, load average: 0.12, 0.12, 0.09\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.11\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:59:46 up 10 days, 3:49, 0 user, load average: 0.19, 0.13, 0.13\nDisk Usage: 47%\nMemory Usage: 71.1%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:59:40 up 17 days, 1 min, 0 user, load average: 0.03, 0.04, 0.00\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:12 up 2 days, 5:31, 1 user, load average: 0.06, 0.06, 0.01\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.05\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:59:43 up 19 days, 18:54, 0 user, load average: 0.44, 0.41, 0.43\nDisk Usage: 28%\nMemory Usage: 27.3%\nCPU Load: 0.41\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 15:59:49 up 16 days, 5:15, 0 user, load average: 0.17, 0.19, 0.15\nDisk Usage: 75%\nMemory Usage: 59.7%\nCPU Load: 0.23\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:00PM up 21 days, 2:50, 1 user, load averages: 0.45, 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: 16:00:12 up 2 days, 5:31, 1 user, load average: 0.17, 0.06, 0.05\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:00:13 up 17:30, 1 user, load average: 1.54, 1.23, 1.17\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.50\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-16T21:00:21.891309+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `3ec80acc97644d26b60302c707630753` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:05:00.002542+00:00 |
| **Fin** | 2025-12-16T21:05:22.991588+00:00 |
| **Durée** | 23.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: [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: [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.003379", "end": "2025-12-16 16:05:11.883344", "msg": "", "rc": 0, "start": "2025-12-16 16:05:11.879965", "stderr": "", "stderr_lines": [], "stdout": " 16:05:11 up 21 days, 3:16, 1 user, load average: 0.54, 0.47, 0.53", "stdout_lines": [" 16:05:11 up 21 days, 3:16, 1 user, load average: 0.54, 0.47, 0.53"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003581", "end": "2025-12-16 16:05:11.890791", "msg": "", "rc": 0, "start": "2025-12-16 16:05:11.887210", "stderr": "", "stderr_lines": [], "stdout": " 16:05:11 up 21 days, 5:15, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 16:05:11 up 21 days, 5:15, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002887", "end": "2025-12-16 16:05:11.918459", "msg": "", "rc": 0, "start": "2025-12-16 16:05:11.915572", "stderr": "", "stderr_lines": [], "stdout": " 16:05:11 up 2 days, 5:37, 1 user, load average: 0.28, 0.26, 0.33", "stdout_lines": [" 16:05:11 up 2 days, 5:37, 1 user, load average: 0.28, 0.26, 0.33"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004340", "end": "2025-12-16 16:05:11.920650", "msg": "", "rc": 0, "start": "2025-12-16 16:05:11.916310", "stderr": "", "stderr_lines": [], "stdout": " 16:05:11 up 21 days, 4:29, 1 user, load average: 0.48, 0.57, 0.62", "stdout_lines": [" 16:05:11 up 21 days, 4:29, 1 user, load average: 0.48, 0.57, 0.62"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002889", "end": "2025-12-16 16:04:46.886454", "msg": "", "rc": 0, "start": "2025-12-16 16:04:46.883565", "stderr": "", "stderr_lines": [], "stdout": " 16:04:46 up 10 days, 3:54, 0 user, load average: 0.01, 0.08, 0.09", "stdout_lines": [" 16:04:46 up 10 days, 3:54, 0 user, load average: 0.01, 0.08, 0.09"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008611", "end": "2025-12-16 16:05:12.589256", "msg": "", "rc": 0, "start": "2025-12-16 16:05:12.580645", "stderr": "", "stderr_lines": [], "stdout": " 16:05:12 up 193 days, 7:38, 1 user, load average: 0.25, 0.14, 0.10", "stdout_lines": [" 16:05:12 up 193 days, 7:38, 1 user, load average: 0.25, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009309", "end": "2025-12-16 16:05:12.626942", "msg": "", "rc": 0, "start": "2025-12-16 16:05:12.617633", "stderr": "", "stderr_lines": [], "stdout": " 16:05:12 up 193 days, 7:38, 1 user, load average: 0.25, 0.17, 0.18", "stdout_lines": [" 16:05:12 up 193 days, 7:38, 1 user, load average: 0.25, 0.17, 0.18"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004172", "end": "2025-12-16 16:05:12.879885", "msg": "", "rc": 0, "start": "2025-12-16 16:05:11.875713", "stderr": "", "stderr_lines": [], "stdout": " 16:05:11 up 21 days, 2:56, 1 user, load average: 0.19, 0.21, 0.22", "stdout_lines": [" 16:05:11 up 21 days, 2:56, 1 user, load average: 0.19, 0.21, 0.22"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003664", "end": "2025-12-16 16:04:41.208691", "msg": "", "rc": 0, "start": "2025-12-16 16:04:41.205027", "stderr": "", "stderr_lines": [], "stdout": " 16:04:41 up 17 days, 6 min, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 16:04:41 up 17 days, 6 min, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004718", "end": "2025-12-16 16:05:13.101751", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.097033", "stderr": "", "stderr_lines": [], "stdout": " 16:05:13 up 2 days, 5:36, 1 user, load average: 0.00, 0.02, 0.00", "stdout_lines": [" 16:05:13 up 2 days, 5:36, 1 user, load average: 0.00, 0.02, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003600", "end": "2025-12-16 16:04:44.129219", "msg": "", "rc": 0, "start": "2025-12-16 16:04:44.125619", "stderr": "", "stderr_lines": [], "stdout": " 16:04:44 up 19 days, 18:59, 0 user, load average: 0.62, 0.44, 0.43", "stdout_lines": [" 16:04:44 up 19 days, 18:59, 0 user, load average: 0.62, 0.44, 0.43"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002888", "end": "2025-12-16 16:04:50.465767", "msg": "", "rc": 0, "start": "2025-12-16 16:04:50.462879", "stderr": "", "stderr_lines": [], "stdout": " 16:04:50 up 16 days, 5:20, 0 user, load average: 0.37, 0.24, 0.18", "stdout_lines": [" 16:04:50 up 16 days, 5:20, 0 user, load average: 0.37, 0.24, 0.18"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004622", "end": "2025-12-16 13:05:13.397190", "msg": "", "rc": 0, "start": "2025-12-16 13:05:13.392568", "stderr": "", "stderr_lines": [], "stdout": " 1:05PM up 21 days, 2:55, 1 user, load averages: 0.07, 0.21, 0.23", "stdout_lines": [" 1:05PM up 21 days, 2:55, 1 user, load averages: 0.07, 0.21, 0.23"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019639", "end": "2025-12-16 16:05:13.290934", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.271295", "stderr": "", "stderr_lines": [], "stdout": " 16:05:13 up 14 days, 5:31, 1 user, load average: 0.25, 0.14, 0.10", "stdout_lines": [" 16:05:13 up 14 days, 5:31, 1 user, load average: 0.25, 0.14, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003880", "end": "2025-12-16 16:05:13.520493", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.516613", "stderr": "", "stderr_lines": [], "stdout": " 16:05:13 up 2 days, 5:36, 1 user, load average: 0.16, 0.07, 0.05", "stdout_lines": [" 16:05:13 up 2 days, 5:36, 1 user, load average: 0.16, 0.07, 0.05"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007362", "end": "2025-12-16 16:05:14.161303", "msg": "", "rc": 0, "start": "2025-12-16 16:05:14.153941", "stderr": "", "stderr_lines": [], "stdout": " 16:05:14 up 17:35, 1 user, load average: 1.37, 1.21, 1.17", "stdout_lines": [" 16:05:14 up 17:35, 1 user, load average: 1.37, 1.21, 1.17"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004359", "end": "2025-12-16 16:05:13.959703", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.955344", "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.004627", "end": "2025-12-16 16:05:13.976125", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.971498", "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.004158", "end": "2025-12-16 16:05:13.976456", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.972298", "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.005128", "end": "2025-12-16 16:05:13.999822", "msg": "", "rc": 0, "start": "2025-12-16 16:05:13.994694", "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.005999", "end": "2025-12-16 16:05:14.035242", "msg": "", "rc": 0, "start": "2025-12-16 16:05:14.029243", "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.005066", "end": "2025-12-16 16:04:48.938853", "msg": "", "rc": 0, "start": "2025-12-16 16:04:48.933787", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.006401", "end": "2025-12-16 16:04:42.862237", "msg": "", "rc": 0, "start": "2025-12-16 16:04:42.855836", "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.010554", "end": "2025-12-16 16:05:14.710868", "msg": "", "rc": 0, "start": "2025-12-16 16:05:14.700314", "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.011426", "end": "2025-12-16 16:05:14.735027", "msg": "", "rc": 0, "start": "2025-12-16 16:05:14.723601", "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.005710", "end": "2025-12-16 16:05:14.912987", "msg": "", "rc": 0, "start": "2025-12-16 16:05:14.907277", "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.005490", "end": "2025-12-16 16:04:46.081954", "msg": "", "rc": 0, "start": "2025-12-16 16:04:46.076464", "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.005767", "end": "2025-12-16 13:05:15.229833", "msg": "", "rc": 0, "start": "2025-12-16 13:05:15.224066", "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.004833", "end": "2025-12-16 16:04:52.350360", "msg": "", "rc": 0, "start": "2025-12-16 16:04:52.345527", "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.006340", "end": "2025-12-16 16:05:15.350045", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.343705", "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.025232", "end": "2025-12-16 16:05:15.356334", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.331102", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.021102", "end": "2025-12-16 16:05:16.209542", "msg": "", "rc": 0, "start": "2025-12-16 16:05:16.188440", "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.004358", "end": "2025-12-16 16:05:15.917863", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.913505", "stderr": "", "stderr_lines": [], "stdout": "84.5%", "stdout_lines": ["84.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.004150", "end": "2025-12-16 16:05:15.925059", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.920909", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004611", "end": "2025-12-16 16:05:15.947158", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.942547", "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.004904", "end": "2025-12-16 16:05:15.984421", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.979517", "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.005329", "end": "2025-12-16 16:05:15.993014", "msg": "", "rc": 0, "start": "2025-12-16 16:05:15.987685", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003932", "end": "2025-12-16 16:04:50.919111", "msg": "", "rc": 0, "start": "2025-12-16 16:04:50.915179", "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.004386", "end": "2025-12-16 16:04:44.790402", "msg": "", "rc": 0, "start": "2025-12-16 16:04:44.786016", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011031", "end": "2025-12-16 16:05:16.614605", "msg": "", "rc": 0, "start": "2025-12-16 16:05:16.603574", "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.011987", "end": "2025-12-16 16:05:16.648664", "msg": "", "rc": 0, "start": "2025-12-16 16:05:16.636677", "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.005895", "end": "2025-12-16 16:05:16.904092", "msg": "", "rc": 0, "start": "2025-12-16 16:05:16.898197", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.6%"]}
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.004100", "end": "2025-12-16 16:04:47.961145", "msg": "", "rc": 0, "start": "2025-12-16 16:04:47.957045", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003479", "end": "2025-12-16 16:04:54.205889", "msg": "", "rc": 0, "start": "2025-12-16 16:04:54.202410", "stderr": "", "stderr_lines": [], "stdout": "59.4%", "stdout_lines": ["59.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.005806", "end": "2025-12-16 13:05:17.103348", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:05:17.097542", "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.005437", "end": "2025-12-16 16:05:17.342699", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.337262", "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.008989", "end": "2025-12-16 16:05:18.176145", "msg": "", "rc": 0, "start": "2025-12-16 16:05:18.167156", "stderr": "", "stderr_lines": [], "stdout": "20.1%", "stdout_lines": ["20.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.025967", "end": "2025-12-16 16:05:17.328265", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.302298", "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.005271", "end": "2025-12-16 16:05:17.860542", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.855271", "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.004737", "end": "2025-12-16 16:05:17.867504", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.862767", "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.005705", "end": "2025-12-16 16:05:17.888281", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.882576", "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-16 16:05:17.898153", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.894724", "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.006666", "end": "2025-12-16 16:05:17.921638", "msg": "", "rc": 0, "start": "2025-12-16 16:05:17.914972", "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.002731", "end": "2025-12-16 16:04:52.890736", "msg": "", "rc": 0, "start": "2025-12-16 16:04:52.888005", "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.003107", "end": "2025-12-16 16:04:46.718625", "msg": "", "rc": 0, "start": "2025-12-16 16:04:46.715518", "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.011681", "end": "2025-12-16 16:05:18.563124", "msg": "", "rc": 0, "start": "2025-12-16 16:05:18.551443", "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.012940", "end": "2025-12-16 16:05:18.594687", "msg": "", "rc": 0, "start": "2025-12-16 16:05:18.581747", "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.003207", "end": "2025-12-16 16:05:18.857377", "msg": "", "rc": 0, "start": "2025-12-16 16:05:18.854170", "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.003015", "end": "2025-12-16 16:04:49.878934", "msg": "", "rc": 0, "start": "2025-12-16 16:04:49.875919", "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.003921", "end": "2025-12-16 13:05:19.054770", "msg": "", "rc": 0, "start": "2025-12-16 13:05:19.050849", "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.002454", "end": "2025-12-16 16:04:56.212018", "msg": "", "rc": 0, "start": "2025-12-16 16:04:56.209564", "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.002933", "end": "2025-12-16 16:05:19.286195", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.283262", "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.004171", "end": "2025-12-16 16:05:20.110318", "msg": "", "rc": 0, "start": "2025-12-16 16:05:20.106147", "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.028365", "end": "2025-12-16 16:05:19.255907", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.227542", "stderr": "", "stderr_lines": [], "stdout": "36.2°C", "stdout_lines": ["36.2°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.004523", "end": "2025-12-16 16:05:19.783427", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.778904", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.004560", "end": "2025-12-16 16:05:19.801732", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.797172", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
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.004037", "end": "2025-12-16 16:05:19.803154", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.799117", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
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.005851", "end": "2025-12-16 16:05:19.827264", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.821413", "stderr": "", "stderr_lines": [], "stdout": "0.63", "stdout_lines": ["0.63"]}
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.005595", "end": "2025-12-16 16:05:19.833845", "msg": "", "rc": 0, "start": "2025-12-16 16:05:19.828250", "stderr": "", "stderr_lines": [], "stdout": "0.08", "stdout_lines": ["0.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.004149", "end": "2025-12-16 16:04:54.773103", "msg": "", "rc": 0, "start": "2025-12-16 16:04:54.768954", "stderr": "", "stderr_lines": [], "stdout": "0.01", "stdout_lines": ["0.01"]}
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.004883", "end": "2025-12-16 16:04:48.611977", "msg": "", "rc": 0, "start": "2025-12-16 16:04:48.607094", "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.012403", "end": "2025-12-16 16:05:20.511660", "msg": "", "rc": 0, "start": "2025-12-16 16:05:20.499257", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.010171", "end": "2025-12-16 16:05:20.548483", "msg": "", "rc": 0, "start": "2025-12-16 16:05:20.538312", "stderr": "", "stderr_lines": [], "stdout": "0.31", "stdout_lines": ["0.31"]}
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.006214", "end": "2025-12-16 16:05:20.768780", "msg": "", "rc": 0, "start": "2025-12-16 16:05:20.762566", "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.005206", "end": "2025-12-16 16:04:51.787503", "msg": "", "rc": 0, "start": "2025-12-16 16:04:51.782297", "stderr": "", "stderr_lines": [], "stdout": "0.60", "stdout_lines": ["0.60"]}
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.006148", "end": "2025-12-16 13:05:21.002368", "msg": "", "rc": 0, "start": "2025-12-16 13:05:20.996220", "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.004372", "end": "2025-12-16 16:04:58.129433", "msg": "", "rc": 0, "start": "2025-12-16 16:04:58.125061", "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.005385", "end": "2025-12-16 16:05:21.202435", "msg": "", "rc": 0, "start": "2025-12-16 16:05:21.197050", "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.007908", "end": "2025-12-16 16:05:22.089979", "msg": "", "rc": 0, "start": "2025-12-16 16:05:22.082071", "stderr": "", "stderr_lines": [], "stdout": "1.53", "stdout_lines": ["1.53"]}
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.024225", "end": "2025-12-16 16:05:21.174744", "msg": "", "rc": 0, "start": "2025-12-16 16:05:21.150519", "stderr": "", "stderr_lines": [], "stdout": "0.37", "stdout_lines": ["0.37"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:11 up 21 days, 2:56, 1 user, load average: 0.19, 0.21, 0.22\nDisk Usage: 23%\nMemory Usage: 84.5%\nCPU Load: 0.25\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:11 up 2 days, 5:37, 1 user, load average: 0.28, 0.26, 0.33\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.39\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:11 up 21 days, 3:16, 1 user, load average: 0.54, 0.47, 0.53\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.60\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:11 up 21 days, 4:29, 1 user, load average: 0.48, 0.57, 0.62\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.63\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:11 up 21 days, 5:15, 1 user, load average: 0.00, 0.02, 0.00\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: 16:05:13 up 14 days, 5:31, 1 user, load average: 0.25, 0.14, 0.10\nDisk Usage: 21%\nMemory Usage: 19.6%\nCPU Load: 0.37\nCPU Temp: 36.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:12 up 193 days, 7:38, 1 user, load average: 0.25, 0.17, 0.18\nDisk Usage: 6%\nMemory Usage: 12.9%\nCPU Load: 0.23\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:12 up 193 days, 7:38, 1 user, load average: 0.25, 0.14, 0.10\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: 16:04:46 up 10 days, 3:54, 0 user, load average: 0.01, 0.08, 0.09\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.01\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:04:41 up 17 days, 6 min, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:13 up 2 days, 5:36, 1 user, load average: 0.00, 0.02, 0.00\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:04:44 up 19 days, 18:59, 0 user, load average: 0.62, 0.44, 0.43\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.60\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:04:50 up 16 days, 5:20, 0 user, load average: 0.37, 0.24, 0.18\nDisk Usage: 75%\nMemory Usage: 59.4%\nCPU Load: 0.32\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:05PM up 21 days, 2:55, 1 user, load averages: 0.07, 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: 16:05:13 up 2 days, 5:36, 1 user, load average: 0.16, 0.07, 0.05\nDisk Usage: 79%\nMemory Usage: 13.6%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:05:14 up 17:35, 1 user, load average: 1.37, 1.21, 1.17\nDisk Usage: 1%\nMemory Usage: 20.1%\nCPU Load: 1.53\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-16T21:05:23.035519+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `cf61b675664e44659a7fe2d530ba9fde` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:10:00.004120+00:00 |
| **Fin** | 2025-12-16T21:10:21.700450+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: [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.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.003073", "end": "2025-12-16 16:10:11.481853", "msg": "", "rc": 0, "start": "2025-12-16 16:10:11.478780", "stderr": "", "stderr_lines": [], "stdout": " 16:10:11 up 21 days, 3:01, 1 user, load average: 0.29, 0.26, 0.23", "stdout_lines": [" 16:10:11 up 21 days, 3:01, 1 user, load average: 0.29, 0.26, 0.23"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003538", "end": "2025-12-16 16:10:11.494703", "msg": "", "rc": 0, "start": "2025-12-16 16:10:11.491165", "stderr": "", "stderr_lines": [], "stdout": " 16:10:11 up 21 days, 5:20, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 16:10:11 up 21 days, 5:20, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003401", "end": "2025-12-16 16:10:11.488269", "msg": "", "rc": 0, "start": "2025-12-16 16:10:11.484868", "stderr": "", "stderr_lines": [], "stdout": " 16:10:11 up 21 days, 3:21, 1 user, load average: 0.62, 0.50, 0.53", "stdout_lines": [" 16:10:11 up 21 days, 3:21, 1 user, load average: 0.62, 0.50, 0.53"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004331", "end": "2025-12-16 16:10:11.512264", "msg": "", "rc": 0, "start": "2025-12-16 16:10:11.507933", "stderr": "", "stderr_lines": [], "stdout": " 16:10:11 up 21 days, 4:34, 1 user, load average: 0.69, 0.56, 0.59", "stdout_lines": [" 16:10:11 up 21 days, 4:34, 1 user, load average: 0.69, 0.56, 0.59"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002855", "end": "2025-12-16 16:10:11.521338", "msg": "", "rc": 0, "start": "2025-12-16 16:10:11.518483", "stderr": "", "stderr_lines": [], "stdout": " 16:10:11 up 2 days, 5:42, 1 user, load average: 0.36, 0.34, 0.35", "stdout_lines": [" 16:10:11 up 2 days, 5:42, 1 user, load average: 0.36, 0.34, 0.35"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002997", "end": "2025-12-16 16:09:46.477324", "msg": "", "rc": 0, "start": "2025-12-16 16:09:46.474327", "stderr": "", "stderr_lines": [], "stdout": " 16:09:46 up 10 days, 3:59, 0 user, load average: 0.19, 0.11, 0.10", "stdout_lines": [" 16:09:46 up 10 days, 3:59, 0 user, load average: 0.19, 0.11, 0.10"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003137", "end": "2025-12-16 16:09:40.316283", "msg": "", "rc": 0, "start": "2025-12-16 16:09:40.313146", "stderr": "", "stderr_lines": [], "stdout": " 16:09:40 up 17 days, 11 min, 0 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 16:09:40 up 17 days, 11 min, 0 user, load average: 0.00, 0.00, 0.00"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008579", "end": "2025-12-16 16:10:12.197342", "msg": "", "rc": 0, "start": "2025-12-16 16:10:12.188763", "stderr": "", "stderr_lines": [], "stdout": " 16:10:12 up 193 days, 7:43, 1 user, load average: 0.24, 0.14, 0.10", "stdout_lines": [" 16:10:12 up 193 days, 7:43, 1 user, load average: 0.24, 0.14, 0.10"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009479", "end": "2025-12-16 16:10:12.292262", "msg": "", "rc": 0, "start": "2025-12-16 16:10:12.282783", "stderr": "", "stderr_lines": [], "stdout": " 16:10:12 up 193 days, 7:43, 1 user, load average: 0.20, 0.16, 0.17", "stdout_lines": [" 16:10:12 up 193 days, 7:43, 1 user, load average: 0.20, 0.16, 0.17"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004809", "end": "2025-12-16 16:10:12.454609", "msg": "", "rc": 0, "start": "2025-12-16 16:10:12.449800", "stderr": "", "stderr_lines": [], "stdout": " 16:10:12 up 2 days, 5:41, 1 user, load average: 0.18, 0.05, 0.01", "stdout_lines": [" 16:10:12 up 2 days, 5:41, 1 user, load average: 0.18, 0.05, 0.01"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003265", "end": "2025-12-16 16:09:43.485785", "msg": "", "rc": 0, "start": "2025-12-16 16:09:43.482520", "stderr": "", "stderr_lines": [], "stdout": " 16:09:43 up 19 days, 19:04, 0 user, load average: 0.54, 0.63, 0.53", "stdout_lines": [" 16:09:43 up 19 days, 19:04, 0 user, load average: 0.54, 0.63, 0.53"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002771", "end": "2025-12-16 16:09:49.790619", "msg": "", "rc": 0, "start": "2025-12-16 16:09:49.787848", "stderr": "", "stderr_lines": [], "stdout": " 16:09:49 up 16 days, 5:25, 0 user, load average: 0.03, 0.13, 0.15", "stdout_lines": [" 16:09:49 up 16 days, 5:25, 0 user, load average: 0.03, 0.13, 0.15"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004345", "end": "2025-12-16 13:10:12.766074", "msg": "", "rc": 0, "start": "2025-12-16 13:10:12.761729", "stderr": "", "stderr_lines": [], "stdout": " 1:10PM up 21 days, 3 hrs, 1 user, load averages: 0.35, 0.27, 0.25", "stdout_lines": [" 1:10PM up 21 days, 3 hrs, 1 user, load averages: 0.35, 0.27, 0.25"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003695", "end": "2025-12-16 16:10:12.885403", "msg": "", "rc": 0, "start": "2025-12-16 16:10:12.881708", "stderr": "", "stderr_lines": [], "stdout": " 16:10:12 up 2 days, 5:41, 1 user, load average: 0.00, 0.02, 0.02", "stdout_lines": [" 16:10:12 up 2 days, 5:41, 1 user, load average: 0.00, 0.02, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007486", "end": "2025-12-16 16:10:13.927991", "msg": "", "rc": 0, "start": "2025-12-16 16:10:13.920505", "stderr": "", "stderr_lines": [], "stdout": " 16:10:13 up 17:40, 1 user, load average: 1.21, 1.14, 1.15", "stdout_lines": [" 16:10:13 up 17:40, 1 user, load average: 1.21, 1.14, 1.15"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019297", "end": "2025-12-16 16:10:12.883111", "msg": "", "rc": 0, "start": "2025-12-16 16:10:12.863814", "stderr": "", "stderr_lines": [], "stdout": " 16:10:12 up 14 days, 5:36, 1 user, load average: 0.14, 0.12, 0.09", "stdout_lines": [" 16:10:12 up 14 days, 5:36, 1 user, load average: 0.14, 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.004348", "end": "2025-12-16 16:10:13.423230", "msg": "", "rc": 0, "start": "2025-12-16 16:10:13.418882", "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.004514", "end": "2025-12-16 16:10:13.442309", "msg": "", "rc": 0, "start": "2025-12-16 16:10:13.437795", "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.004153", "end": "2025-12-16 16:10:13.459200", "msg": "", "rc": 0, "start": "2025-12-16 16:10:13.455047", "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.004818", "end": "2025-12-16 16:10:13.469233", "msg": "", "rc": 0, "start": "2025-12-16 16:10:13.464415", "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.006104", "end": "2025-12-16 16:10:13.499726", "msg": "", "rc": 0, "start": "2025-12-16 16:10:13.493622", "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.005865", "end": "2025-12-16 16:09:48.425835", "msg": "", "rc": 0, "start": "2025-12-16 16:09:48.419970", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005942", "end": "2025-12-16 16:09:42.307051", "msg": "", "rc": 0, "start": "2025-12-16 16:09:42.301109", "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.010933", "end": "2025-12-16 16:10:14.177580", "msg": "", "rc": 0, "start": "2025-12-16 16:10:14.166647", "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.011729", "end": "2025-12-16 16:10:14.171337", "msg": "", "rc": 0, "start": "2025-12-16 16:10:14.159608", "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.005841", "end": "2025-12-16 16:10:14.420478", "msg": "", "rc": 0, "start": "2025-12-16 16:10:14.414637", "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.005436", "end": "2025-12-16 16:09:45.510184", "msg": "", "rc": 0, "start": "2025-12-16 16:09:45.504748", "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.005764", "end": "2025-12-16 13:10:14.658915", "msg": "", "rc": 0, "start": "2025-12-16 13:10:14.653151", "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.004534", "end": "2025-12-16 16:09:51.787453", "msg": "", "rc": 0, "start": "2025-12-16 16:09:51.782919", "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.005401", "end": "2025-12-16 16:10:14.845731", "msg": "", "rc": 0, "start": "2025-12-16 16:10:14.840330", "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.025179", "end": "2025-12-16 16:10:14.823004", "msg": "", "rc": 0, "start": "2025-12-16 16:10:14.797825", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018477", "end": "2025-12-16 16:10:16.030795", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.012318", "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.004455", "end": "2025-12-16 16:10:15.363870", "msg": "", "rc": 0, "start": "2025-12-16 16:10:15.359415", "stderr": "", "stderr_lines": [], "stdout": "84.3%", "stdout_lines": ["84.3%"]}
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.004280", "end": "2025-12-16 16:10:15.363318", "msg": "", "rc": 0, "start": "2025-12-16 16:10:15.359038", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.005033", "end": "2025-12-16 16:10:15.375903", "msg": "", "rc": 0, "start": "2025-12-16 16:10:15.370870", "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.004907", "end": "2025-12-16 16:10:15.411560", "msg": "", "rc": 0, "start": "2025-12-16 16:10:15.406653", "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.006229", "end": "2025-12-16 16:10:15.440844", "msg": "", "rc": 0, "start": "2025-12-16 16:10:15.434615", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003677", "end": "2025-12-16 16:09:50.383772", "msg": "", "rc": 0, "start": "2025-12-16 16:09:50.380095", "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.006902", "end": "2025-12-16 16:09:44.257505", "msg": "", "rc": 0, "start": "2025-12-16 16:09:44.250603", "stderr": "", "stderr_lines": [], "stdout": "69.2%", "stdout_lines": ["69.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.010933", "end": "2025-12-16 16:10:16.055508", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.044575", "stderr": "", "stderr_lines": [], "stdout": "7.0%", "stdout_lines": ["7.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.012074", "end": "2025-12-16 16:10:16.100114", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.088040", "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.005867", "end": "2025-12-16 16:10:16.350565", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.344698", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.003579", "end": "2025-12-16 16:09:53.648831", "msg": "", "rc": 0, "start": "2025-12-16 16:09:53.645252", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.005334", "end": "2025-12-16 13:10:16.562031", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:10:16.556697", "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.006948", "end": "2025-12-16 16:09:47.455514", "msg": "", "rc": 0, "start": "2025-12-16 16:09:47.448566", "stderr": "", "stderr_lines": [], "stdout": "26.9%", "stdout_lines": ["26.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.005393", "end": "2025-12-16 16:10:16.785691", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.780298", "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.009086", "end": "2025-12-16 16:10:16.931579", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.922493", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.026073", "end": "2025-12-16 16:10:16.756664", "msg": "", "rc": 0, "start": "2025-12-16 16:10:16.730591", "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.005028", "end": "2025-12-16 16:10:17.272505", "msg": "", "rc": 0, "start": "2025-12-16 16:10:17.267477", "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.004814", "end": "2025-12-16 16:10:17.300378", "msg": "", "rc": 0, "start": "2025-12-16 16:10:17.295564", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005784", "end": "2025-12-16 16:10:17.300548", "msg": "", "rc": 0, "start": "2025-12-16 16:10:17.294764", "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.003435", "end": "2025-12-16 16:10:17.325018", "msg": "", "rc": 0, "start": "2025-12-16 16:10:17.321583", "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.006808", "end": "2025-12-16 16:10:17.344636", "msg": "", "rc": 0, "start": "2025-12-16 16:10:17.337828", "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.002720", "end": "2025-12-16 16:09:52.274707", "msg": "", "rc": 0, "start": "2025-12-16 16:09:52.271987", "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.003220", "end": "2025-12-16 16:09:46.117077", "msg": "", "rc": 0, "start": "2025-12-16 16:09:46.113857", "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.012213", "end": "2025-12-16 16:10:17.981398", "msg": "", "rc": 0, "start": "2025-12-16 16:10:17.969185", "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.012964", "end": "2025-12-16 16:10:18.092768", "msg": "", "rc": 0, "start": "2025-12-16 16:10:18.079804", "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.003454", "end": "2025-12-16 16:10:18.254701", "msg": "", "rc": 0, "start": "2025-12-16 16:10:18.251247", "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.003237", "end": "2025-12-16 16:09:49.298924", "msg": "", "rc": 0, "start": "2025-12-16 16:09:49.295687", "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.002706", "end": "2025-12-16 16:09:55.570003", "msg": "", "rc": 0, "start": "2025-12-16 16:09:55.567297", "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.004086", "end": "2025-12-16 13:10:18.560325", "msg": "", "rc": 0, "start": "2025-12-16 13:10:18.556239", "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.002989", "end": "2025-12-16 16:10:18.680511", "msg": "", "rc": 0, "start": "2025-12-16 16:10:18.677522", "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.004770", "end": "2025-12-16 16:10:18.864147", "msg": "", "rc": 0, "start": "2025-12-16 16:10:18.859377", "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.028507", "end": "2025-12-16 16:10:18.666075", "msg": "", "rc": 0, "start": "2025-12-16 16:10:18.637568", "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.004240", "end": "2025-12-16 16:10:19.198112", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.193872", "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.004008", "end": "2025-12-16 16:10:19.207339", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.203331", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.004982", "end": "2025-12-16 16:10:19.204319", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.199337", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.005367", "end": "2025-12-16 16:10:19.239256", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.233889", "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.005565", "end": "2025-12-16 16:10:19.235645", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.230080", "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.004338", "end": "2025-12-16 16:09:54.153545", "msg": "", "rc": 0, "start": "2025-12-16 16:09:54.149207", "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.005044", "end": "2025-12-16 16:09:48.024412", "msg": "", "rc": 0, "start": "2025-12-16 16:09:48.019368", "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.011073", "end": "2025-12-16 16:10:19.933194", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.922121", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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.010198", "end": "2025-12-16 16:10:19.981920", "msg": "", "rc": 0, "start": "2025-12-16 16:10:19.971722", "stderr": "", "stderr_lines": [], "stdout": "0.46", "stdout_lines": ["0.46"]}
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.006238", "end": "2025-12-16 16:10:20.140228", "msg": "", "rc": 0, "start": "2025-12-16 16:10:20.133990", "stderr": "", "stderr_lines": [], "stdout": "0.15", "stdout_lines": ["0.15"]}
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.004983", "end": "2025-12-16 16:09:51.186007", "msg": "", "rc": 0, "start": "2025-12-16 16:09:51.181024", "stderr": "", "stderr_lines": [], "stdout": "0.58", "stdout_lines": ["0.58"]}
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.004027", "end": "2025-12-16 16:09:57.543516", "msg": "", "rc": 0, "start": "2025-12-16 16:09:57.539489", "stderr": "", "stderr_lines": [], "stdout": "0.03", "stdout_lines": ["0.03"]}
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.007433", "end": "2025-12-16 13:10:20.448841", "msg": "", "rc": 0, "start": "2025-12-16 13:10:20.441408", "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.005406", "end": "2025-12-16 16:10:20.567780", "msg": "", "rc": 0, "start": "2025-12-16 16:10:20.562374", "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.008391", "end": "2025-12-16 16:10:20.811480", "msg": "", "rc": 0, "start": "2025-12-16 16:10:20.803089", "stderr": "", "stderr_lines": [], "stdout": "1.65", "stdout_lines": ["1.65"]}
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.023999", "end": "2025-12-16 16:10:20.597364", "msg": "", "rc": 0, "start": "2025-12-16 16:10:20.573365", "stderr": "", "stderr_lines": [], "stdout": "0.21", "stdout_lines": ["0.21"]}
TASK [Display health status] ***************************************************
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:11 up 21 days, 3:01, 1 user, load average: 0.29, 0.26, 0.23\nDisk Usage: 23%\nMemory Usage: 84.3%\nCPU Load: 0.27\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:11 up 2 days, 5:42, 1 user, load average: 0.36, 0.34, 0.35\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.47\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:11 up 21 days, 3:21, 1 user, load average: 0.62, 0.50, 0.53\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.65\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:11 up 21 days, 4:34, 1 user, load average: 0.69, 0.56, 0.59\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.66\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:11 up 21 days, 5:20, 1 user, load average: 0.00, 0.01, 0.00\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: 16:10:12 up 14 days, 5:36, 1 user, load average: 0.14, 0.12, 0.09\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.21\nCPU Temp: 35.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:12 up 193 days, 7:43, 1 user, load average: 0.20, 0.16, 0.17\nDisk Usage: 6%\nMemory Usage: 12.8%\nCPU Load: 0.35\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:12 up 193 days, 7:43, 1 user, load average: 0.24, 0.14, 0.10\nDisk Usage: 3%\nMemory Usage: 7.0%\nCPU Load: 0.46\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:09:46 up 10 days, 3:59, 0 user, load average: 0.19, 0.11, 0.10\nDisk Usage: 47%\nMemory Usage: 71.0%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:09:40 up 17 days, 11 min, 0 user, load average: 0.00, 0.00, 0.00\nDisk Usage: 24%\nMemory Usage: 69.2%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:10:12 up 2 days, 5:41, 1 user, load average: 0.18, 0.05, 0.01\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.15\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:09:43 up 19 days, 19:04, 0 user, load average: 0.54, 0.63, 0.53\nDisk Usage: 28%\nMemory Usage: 26.9%\nCPU Load: 0.58\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:09:49 up 16 days, 5:25, 0 user, load average: 0.03, 0.13, 0.15\nDisk Usage: 75%\nMemory Usage: 60.5%\nCPU Load: 0.03\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:10PM up 21 days, 3 hrs, 1 user, load averages: 0.35, 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: 16:10:12 up 2 days, 5:41, 1 user, load average: 0.00, 0.02, 0.02\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: 16:10:13 up 17:40, 1 user, load average: 1.21, 1.14, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T21:10:21.735806+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `b2d5feaacd7e4a03adb00d553300967e` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:15:00.000489+00:00 |
| **Fin** | 2025-12-16T21:15:22.087418+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: [ali2v.xeon.home] => {"changed": false, "ping": "pong"}
ok: [mimi.pc.home] => {"changed": false, "ping": "pong"}
ok: [hp3.i5.home] => {"changed": false, "ping": "pong"}
ok: [raspi.8gb.home] => {"changed": false, "ping": "pong"}
ok: [dev.lab.home] => {"changed": false, "ping": "pong"}
ok: [raspi.4gb.home] => {"changed": false, "ping": "pong"}
ok: [media.labb.home] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"changed": false, "ping": "pong"}
ok: [dev.prod.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: [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.003719", "end": "2025-12-16 16:15:11.323779", "msg": "", "rc": 0, "start": "2025-12-16 16:15:11.320060", "stderr": "", "stderr_lines": [], "stdout": " 16:15:11 up 21 days, 3:06, 1 user, load average: 0.25, 0.23, 0.22", "stdout_lines": [" 16:15:11 up 21 days, 3:06, 1 user, load average: 0.25, 0.23, 0.22"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003542", "end": "2025-12-16 16:15:11.340139", "msg": "", "rc": 0, "start": "2025-12-16 16:15:11.336597", "stderr": "", "stderr_lines": [], "stdout": " 16:15:11 up 21 days, 5:25, 1 user, load average: 0.00, 0.00, 0.00", "stdout_lines": [" 16:15:11 up 21 days, 5:25, 1 user, load average: 0.00, 0.00, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003920", "end": "2025-12-16 16:15:11.353174", "msg": "", "rc": 0, "start": "2025-12-16 16:15:11.349254", "stderr": "", "stderr_lines": [], "stdout": " 16:15:11 up 21 days, 4:39, 1 user, load average: 0.61, 0.58, 0.59", "stdout_lines": [" 16:15:11 up 21 days, 4:39, 1 user, load average: 0.61, 0.58, 0.59"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003077", "end": "2025-12-16 16:15:11.365910", "msg": "", "rc": 0, "start": "2025-12-16 16:15:11.362833", "stderr": "", "stderr_lines": [], "stdout": " 16:15:11 up 2 days, 5:47, 1 user, load average: 0.33, 0.33, 0.35", "stdout_lines": [" 16:15:11 up 2 days, 5:47, 1 user, load average: 0.33, 0.33, 0.35"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002816", "end": "2025-12-16 16:14:46.342401", "msg": "", "rc": 0, "start": "2025-12-16 16:14:46.339585", "stderr": "", "stderr_lines": [], "stdout": " 16:14:46 up 10 days, 4:04, 0 user, load average: 0.52, 0.35, 0.19", "stdout_lines": [" 16:14:46 up 10 days, 4:04, 0 user, load average: 0.52, 0.35, 0.19"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008426", "end": "2025-12-16 16:15:12.014781", "msg": "", "rc": 0, "start": "2025-12-16 16:15:12.006355", "stderr": "", "stderr_lines": [], "stdout": " 16:15:12 up 193 days, 7:48, 1 user, load average: 0.33, 0.18, 0.11", "stdout_lines": [" 16:15:12 up 193 days, 7:48, 1 user, load average: 0.33, 0.18, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009317", "end": "2025-12-16 16:15:12.031725", "msg": "", "rc": 0, "start": "2025-12-16 16:15:12.022408", "stderr": "", "stderr_lines": [], "stdout": " 16:15:12 up 193 days, 7:48, 1 user, load average: 0.26, 0.22, 0.19", "stdout_lines": [" 16:15:12 up 193 days, 7:48, 1 user, load average: 0.26, 0.22, 0.19"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004550", "end": "2025-12-16 16:15:12.333604", "msg": "", "rc": 0, "start": "2025-12-16 16:15:11.329054", "stderr": "", "stderr_lines": [], "stdout": " 16:15:11 up 21 days, 3:26, 1 user, load average: 0.59, 0.60, 0.56", "stdout_lines": [" 16:15:11 up 21 days, 3:26, 1 user, load average: 0.59, 0.60, 0.56"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005664", "end": "2025-12-16 16:14:40.652951", "msg": "", "rc": 0, "start": "2025-12-16 16:14:40.647287", "stderr": "", "stderr_lines": [], "stdout": " 16:14:40 up 17 days, 16 min, 0 user, load average: 0.07, 0.05, 0.01", "stdout_lines": [" 16:14:40 up 17 days, 16 min, 0 user, load average: 0.07, 0.05, 0.01"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004590", "end": "2025-12-16 16:15:12.525583", "msg": "", "rc": 0, "start": "2025-12-16 16:15:12.520993", "stderr": "", "stderr_lines": [], "stdout": " 16:15:12 up 2 days, 5:46, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 16:15:12 up 2 days, 5:46, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003215", "end": "2025-12-16 16:14:43.563569", "msg": "", "rc": 0, "start": "2025-12-16 16:14:43.560354", "stderr": "", "stderr_lines": [], "stdout": " 16:14:43 up 19 days, 19:09, 0 user, load average: 0.28, 0.44, 0.47", "stdout_lines": [" 16:14:43 up 19 days, 19:09, 0 user, load average: 0.28, 0.44, 0.47"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003053", "end": "2025-12-16 16:14:49.863678", "msg": "", "rc": 0, "start": "2025-12-16 16:14:49.860625", "stderr": "", "stderr_lines": [], "stdout": " 16:14:49 up 16 days, 5:30, 0 user, load average: 0.00, 0.05, 0.11", "stdout_lines": [" 16:14:49 up 16 days, 5:30, 0 user, load average: 0.00, 0.05, 0.11"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019265", "end": "2025-12-16 16:15:12.707465", "msg": "", "rc": 0, "start": "2025-12-16 16:15:12.688200", "stderr": "", "stderr_lines": [], "stdout": " 16:15:12 up 14 days, 5:41, 1 user, load average: 0.14, 0.08, 0.08", "stdout_lines": [" 16:15:12 up 14 days, 5:41, 1 user, load average: 0.14, 0.08, 0.08"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004279", "end": "2025-12-16 13:15:12.834086", "msg": "", "rc": 0, "start": "2025-12-16 13:15:12.829807", "stderr": "", "stderr_lines": [], "stdout": " 1:15PM up 21 days, 3:05, 1 user, load averages: 0.21, 0.21, 0.23", "stdout_lines": [" 1:15PM up 21 days, 3:05, 1 user, load averages: 0.21, 0.21, 0.23"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003674", "end": "2025-12-16 16:15:12.940952", "msg": "", "rc": 0, "start": "2025-12-16 16:15:12.937278", "stderr": "", "stderr_lines": [], "stdout": " 16:15:12 up 2 days, 5:46, 1 user, load average: 0.11, 0.08, 0.04", "stdout_lines": [" 16:15:12 up 2 days, 5:46, 1 user, load average: 0.11, 0.08, 0.04"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008242", "end": "2025-12-16 16:15:13.270209", "msg": "", "rc": 0, "start": "2025-12-16 16:15:13.261967", "stderr": "", "stderr_lines": [], "stdout": " 16:15:13 up 17:45, 1 user, load average: 1.24, 1.14, 1.15", "stdout_lines": [" 16:15:13 up 17:45, 1 user, load average: 1.24, 1.14, 1.15"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004192", "end": "2025-12-16 16:15:13.394550", "msg": "", "rc": 0, "start": "2025-12-16 16:15:13.390358", "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.004279", "end": "2025-12-16 16:15:13.391476", "msg": "", "rc": 0, "start": "2025-12-16 16:15:13.387197", "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.004517", "end": "2025-12-16 16:15:13.416468", "msg": "", "rc": 0, "start": "2025-12-16 16:15:13.411951", "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.005015", "end": "2025-12-16 16:15:13.438611", "msg": "", "rc": 0, "start": "2025-12-16 16:15:13.433596", "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-16 16:15:13.451890", "msg": "", "rc": 0, "start": "2025-12-16 16:15:13.446072", "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.005125", "end": "2025-12-16 16:14:48.368115", "msg": "", "rc": 0, "start": "2025-12-16 16:14:48.362990", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005499", "end": "2025-12-16 16:14:42.236464", "msg": "", "rc": 0, "start": "2025-12-16 16:14:42.230965", "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-16 16:15:14.149360", "msg": "", "rc": 0, "start": "2025-12-16 16:15:14.138730", "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.011708", "end": "2025-12-16 16:15:14.155147", "msg": "", "rc": 0, "start": "2025-12-16 16:15:14.143439", "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-16 16:15:14.353141", "msg": "", "rc": 0, "start": "2025-12-16 16:15:14.347367", "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.005059", "end": "2025-12-16 16:14:45.394406", "msg": "", "rc": 0, "start": "2025-12-16 16:14:45.389347", "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.005510", "end": "2025-12-16 13:15:14.607442", "msg": "", "rc": 0, "start": "2025-12-16 13:15:14.601932", "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.004796", "end": "2025-12-16 16:14:51.738070", "msg": "", "rc": 0, "start": "2025-12-16 16:14:51.733274", "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.005498", "end": "2025-12-16 16:15:14.764633", "msg": "", "rc": 0, "start": "2025-12-16 16:15:14.759135", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.020255", "end": "2025-12-16 16:15:15.173348", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.153093", "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.025468", "end": "2025-12-16 16:15:14.779405", "msg": "", "rc": 0, "start": "2025-12-16 16:15:14.753937", "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.004561", "end": "2025-12-16 16:15:15.297090", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.292529", "stderr": "", "stderr_lines": [], "stdout": "84.2%", "stdout_lines": ["84.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.004250", "end": "2025-12-16 16:15:15.330960", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.326710", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004548", "end": "2025-12-16 16:15:15.341616", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.337068", "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.004573", "end": "2025-12-16 16:15:15.338827", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.334254", "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.005770", "end": "2025-12-16 16:15:15.369455", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.363685", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.003857", "end": "2025-12-16 16:14:50.284117", "msg": "", "rc": 0, "start": "2025-12-16 16:14:50.280260", "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.005508", "end": "2025-12-16 16:14:44.181652", "msg": "", "rc": 0, "start": "2025-12-16 16:14:44.176144", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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.011081", "end": "2025-12-16 16:15:15.997418", "msg": "", "rc": 0, "start": "2025-12-16 16:15:15.986337", "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.011894", "end": "2025-12-16 16:15:16.040803", "msg": "", "rc": 0, "start": "2025-12-16 16:15:16.028909", "stderr": "", "stderr_lines": [], "stdout": "13.1%", "stdout_lines": ["13.1%"]}
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.005807", "end": "2025-12-16 16:15:16.252655", "msg": "", "rc": 0, "start": "2025-12-16 16:15:16.246848", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004209", "end": "2025-12-16 16:14:53.603580", "msg": "", "rc": 0, "start": "2025-12-16 16:14:53.599371", "stderr": "", "stderr_lines": [], "stdout": "59.6%", "stdout_lines": ["59.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.005264", "end": "2025-12-16 13:15:16.518794", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:15:16.513530", "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.004315", "end": "2025-12-16 16:14:47.436550", "msg": "", "rc": 0, "start": "2025-12-16 16:14:47.432235", "stderr": "", "stderr_lines": [], "stdout": "26.4%", "stdout_lines": ["26.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.005372", "end": "2025-12-16 16:15:16.670294", "msg": "", "rc": 0, "start": "2025-12-16 16:15:16.664922", "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.009343", "end": "2025-12-16 16:15:17.234967", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.225624", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025519", "end": "2025-12-16 16:15:16.681214", "msg": "", "rc": 0, "start": "2025-12-16 16:15:16.655695", "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.005024", "end": "2025-12-16 16:15:17.238690", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.233666", "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.004837", "end": "2025-12-16 16:15:17.250263", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.245426", "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.005556", "end": "2025-12-16 16:15:17.248977", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.243421", "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.003391", "end": "2025-12-16 16:15:17.278295", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.274904", "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.007236", "end": "2025-12-16 16:15:17.308938", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.301702", "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.002368", "end": "2025-12-16 16:14:52.216296", "msg": "", "rc": 0, "start": "2025-12-16 16:14:52.213928", "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.003661", "end": "2025-12-16 16:14:46.111633", "msg": "", "rc": 0, "start": "2025-12-16 16:14:46.107972", "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.011745", "end": "2025-12-16 16:15:17.934225", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.922480", "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.012942", "end": "2025-12-16 16:15:17.974980", "msg": "", "rc": 0, "start": "2025-12-16 16:15:17.962038", "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.003095", "end": "2025-12-16 16:15:18.198199", "msg": "", "rc": 0, "start": "2025-12-16 16:15:18.195104", "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.003218", "end": "2025-12-16 16:14:49.300507", "msg": "", "rc": 0, "start": "2025-12-16 16:14:49.297289", "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.004285", "end": "2025-12-16 13:15:18.441777", "msg": "", "rc": 0, "start": "2025-12-16 13:15:18.437492", "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.002990", "end": "2025-12-16 16:14:55.546192", "msg": "", "rc": 0, "start": "2025-12-16 16:14:55.543202", "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-16 16:15:18.621033", "msg": "", "rc": 0, "start": "2025-12-16 16:15:18.618052", "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.006278", "end": "2025-12-16 16:15:19.237309", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.231031", "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.028727", "end": "2025-12-16 16:15:18.651175", "msg": "", "rc": 0, "start": "2025-12-16 16:15:18.622448", "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.004211", "end": "2025-12-16 16:15:19.171603", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.167392", "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.004017", "end": "2025-12-16 16:15:19.201961", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.197944", "stderr": "", "stderr_lines": [], "stdout": "0.28", "stdout_lines": ["0.28"]}
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.004654", "end": "2025-12-16 16:15:19.211441", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.206787", "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.005842", "end": "2025-12-16 16:15:19.226466", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.220624", "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.005348", "end": "2025-12-16 16:15:19.242120", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.236772", "stderr": "", "stderr_lines": [], "stdout": "0.75", "stdout_lines": ["0.75"]}
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.004374", "end": "2025-12-16 16:14:54.185158", "msg": "", "rc": 0, "start": "2025-12-16 16:14:54.180784", "stderr": "", "stderr_lines": [], "stdout": "0.48", "stdout_lines": ["0.48"]}
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.004995", "end": "2025-12-16 16:14:48.033209", "msg": "", "rc": 0, "start": "2025-12-16 16:14:48.028214", "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.010328", "end": "2025-12-16 16:15:19.989220", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.978892", "stderr": "", "stderr_lines": [], "stdout": "0.30", "stdout_lines": ["0.30"]}
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.011223", "end": "2025-12-16 16:15:20.008085", "msg": "", "rc": 0, "start": "2025-12-16 16:15:19.996862", "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.006136", "end": "2025-12-16 16:15:20.181723", "msg": "", "rc": 0, "start": "2025-12-16 16:15:20.175587", "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.005368", "end": "2025-12-16 16:14:51.206225", "msg": "", "rc": 0, "start": "2025-12-16 16:14:51.200857", "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.006127", "end": "2025-12-16 13:15:20.472160", "msg": "", "rc": 0, "start": "2025-12-16 13:15:20.466033", "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.004430", "end": "2025-12-16 16:14:57.581105", "msg": "", "rc": 0, "start": "2025-12-16 16:14:57.576675", "stderr": "", "stderr_lines": [], "stdout": "0.00", "stdout_lines": ["0.00"]}
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.005433", "end": "2025-12-16 16:15:20.615315", "msg": "", "rc": 0, "start": "2025-12-16 16:15:20.609882", "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.009613", "end": "2025-12-16 16:15:21.211687", "msg": "", "rc": 0, "start": "2025-12-16 16:15:21.202074", "stderr": "", "stderr_lines": [], "stdout": "1.50", "stdout_lines": ["1.50"]}
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.024224", "end": "2025-12-16 16:15:20.569843", "msg": "", "rc": 0, "start": "2025-12-16 16:15:20.545619", "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: 16:15:11 up 2 days, 5:47, 1 user, load average: 0.33, 0.33, 0.35\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.28\nCPU Temp: 45.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:11 up 21 days, 3:06, 1 user, load average: 0.25, 0.23, 0.22\nDisk Usage: 23%\nMemory Usage: 84.2%\nCPU Load: 0.31\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:11 up 21 days, 3:26, 1 user, load average: 0.59, 0.60, 0.56\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.78\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:11 up 21 days, 4:39, 1 user, load average: 0.61, 0.58, 0.59\nDisk Usage: 14%\nMemory Usage: 59.0%\nCPU Load: 0.75\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:11 up 21 days, 5:25, 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: 16:15:12 up 14 days, 5:41, 1 user, load average: 0.14, 0.08, 0.08\nDisk Usage: 21%\nMemory Usage: 19.3%\nCPU Load: 0.21\nCPU Temp: 36.6°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:12 up 193 days, 7:48, 1 user, load average: 0.26, 0.22, 0.19\nDisk Usage: 6%\nMemory Usage: 13.1%\nCPU Load: 0.24\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:12 up 193 days, 7:48, 1 user, load average: 0.33, 0.18, 0.11\nDisk Usage: 3%\nMemory Usage: 6.7%\nCPU Load: 0.30\nCPU Temp: 32.1°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:14:46 up 10 days, 4:04, 0 user, load average: 0.52, 0.35, 0.19\nDisk Usage: 47%\nMemory Usage: 71.4%\nCPU Load: 0.48\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:12 up 2 days, 5:46, 1 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.08\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:14:40 up 17 days, 16 min, 0 user, load average: 0.07, 0.05, 0.01\nDisk Usage: 24%\nMemory Usage: 69.1%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:14:43 up 19 days, 19:09, 0 user, load average: 0.28, 0.44, 0.47\nDisk Usage: 28%\nMemory Usage: 26.4%\nCPU Load: 0.34\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:14:49 up 16 days, 5:30, 0 user, load average: 0.00, 0.05, 0.11\nDisk Usage: 75%\nMemory Usage: 59.6%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:15PM up 21 days, 3:05, 1 user, load averages: 0.21, 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: 16:15:12 up 2 days, 5:46, 1 user, load average: 0.11, 0.08, 0.04\nDisk Usage: 79%\nMemory Usage: 13.8%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:15:13 up 17:45, 1 user, load average: 1.24, 1.14, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.50\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-16T21:15:22.128895+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `dfb316b5c8af4f59939870ae48b6f2bf` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:20:00.002001+00:00 |
| **Fin** | 2025-12-16T21:20:22.703547+00:00 |
| **Durée** | 22.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.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: [localhost] => {"changed": false, "ping": "pong"}
ok: [hp.truenas.home] => {"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: [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.003209", "end": "2025-12-16 16:20:11.804306", "msg": "", "rc": 0, "start": "2025-12-16 16:20:11.801097", "stderr": "", "stderr_lines": [], "stdout": " 16:20:11 up 21 days, 3:11, 1 user, load average: 0.21, 0.21, 0.20", "stdout_lines": [" 16:20:11 up 21 days, 3:11, 1 user, load average: 0.21, 0.21, 0.20"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003431", "end": "2025-12-16 16:20:11.808426", "msg": "", "rc": 0, "start": "2025-12-16 16:20:11.804995", "stderr": "", "stderr_lines": [], "stdout": " 16:20:11 up 21 days, 3:31, 1 user, load average: 0.54, 0.55, 0.54", "stdout_lines": [" 16:20:11 up 21 days, 3:31, 1 user, load average: 0.54, 0.55, 0.54"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003844", "end": "2025-12-16 16:20:11.816840", "msg": "", "rc": 0, "start": "2025-12-16 16:20:11.812996", "stderr": "", "stderr_lines": [], "stdout": " 16:20:11 up 21 days, 5:30, 1 user, load average: 0.03, 0.04, 0.01", "stdout_lines": [" 16:20:11 up 21 days, 5:30, 1 user, load average: 0.03, 0.04, 0.01"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004096", "end": "2025-12-16 16:20:11.834734", "msg": "", "rc": 0, "start": "2025-12-16 16:20:11.830638", "stderr": "", "stderr_lines": [], "stdout": " 16:20:11 up 21 days, 4:44, 1 user, load average: 1.36, 1.17, 0.85", "stdout_lines": [" 16:20:11 up 21 days, 4:44, 1 user, load average: 1.36, 1.17, 0.85"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002855", "end": "2025-12-16 16:20:11.849977", "msg": "", "rc": 0, "start": "2025-12-16 16:20:11.847122", "stderr": "", "stderr_lines": [], "stdout": " 16:20:11 up 2 days, 5:52, 1 user, load average: 0.34, 0.29, 0.32", "stdout_lines": [" 16:20:11 up 2 days, 5:52, 1 user, load average: 0.34, 0.29, 0.32"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002947", "end": "2025-12-16 16:19:46.791477", "msg": "", "rc": 0, "start": "2025-12-16 16:19:46.788530", "stderr": "", "stderr_lines": [], "stdout": " 16:19:46 up 10 days, 4:09, 0 user, load average: 0.08, 0.14, 0.14", "stdout_lines": [" 16:19:46 up 10 days, 4:09, 0 user, load average: 0.08, 0.14, 0.14"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003437", "end": "2025-12-16 16:19:40.619358", "msg": "", "rc": 0, "start": "2025-12-16 16:19:40.615921", "stderr": "", "stderr_lines": [], "stdout": " 16:19:40 up 17 days, 21 min, 0 user, load average: 0.25, 0.40, 0.18", "stdout_lines": [" 16:19:40 up 17 days, 21 min, 0 user, load average: 0.25, 0.40, 0.18"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008418", "end": "2025-12-16 16:20:12.499323", "msg": "", "rc": 0, "start": "2025-12-16 16:20:12.490905", "stderr": "", "stderr_lines": [], "stdout": " 16:20:12 up 193 days, 7:53, 1 user, load average: 0.14, 0.16, 0.11", "stdout_lines": [" 16:20:12 up 193 days, 7:53, 1 user, load average: 0.14, 0.16, 0.11"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009841", "end": "2025-12-16 16:20:12.543888", "msg": "", "rc": 0, "start": "2025-12-16 16:20:12.534047", "stderr": "", "stderr_lines": [], "stdout": " 16:20:12 up 193 days, 7:53, 1 user, load average: 0.35, 0.23, 0.19", "stdout_lines": [" 16:20:12 up 193 days, 7:53, 1 user, load average: 0.35, 0.23, 0.19"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004762", "end": "2025-12-16 16:20:12.788213", "msg": "", "rc": 0, "start": "2025-12-16 16:20:12.783451", "stderr": "", "stderr_lines": [], "stdout": " 16:20:12 up 2 days, 5:51, 1 user, load average: 0.03, 0.08, 0.02", "stdout_lines": [" 16:20:12 up 2 days, 5:51, 1 user, load average: 0.03, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003407", "end": "2025-12-16 16:19:43.783280", "msg": "", "rc": 0, "start": "2025-12-16 16:19:43.779873", "stderr": "", "stderr_lines": [], "stdout": " 16:19:43 up 19 days, 19:14, 0 user, load average: 0.54, 0.49, 0.48", "stdout_lines": [" 16:19:43 up 19 days, 19:14, 0 user, load average: 0.54, 0.49, 0.48"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002922", "end": "2025-12-16 16:19:50.076785", "msg": "", "rc": 0, "start": "2025-12-16 16:19:50.073863", "stderr": "", "stderr_lines": [], "stdout": " 16:19:50 up 16 days, 5:35, 0 user, load average: 0.65, 0.32, 0.18", "stdout_lines": [" 16:19:50 up 16 days, 5:35, 0 user, load average: 0.65, 0.32, 0.18"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004393", "end": "2025-12-16 13:20:13.009075", "msg": "", "rc": 0, "start": "2025-12-16 13:20:13.004682", "stderr": "", "stderr_lines": [], "stdout": " 1:20PM up 21 days, 3:10, 1 user, load averages: 0.34, 0.22, 0.22", "stdout_lines": [" 1:20PM up 21 days, 3:10, 1 user, load averages: 0.34, 0.22, 0.22"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003707", "end": "2025-12-16 16:20:13.210747", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.207040", "stderr": "", "stderr_lines": [], "stdout": " 16:20:13 up 2 days, 5:51, 1 user, load average: 0.00, 0.03, 0.02", "stdout_lines": [" 16:20:13 up 2 days, 5:51, 1 user, load average: 0.00, 0.03, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007827", "end": "2025-12-16 16:20:13.929178", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.921351", "stderr": "", "stderr_lines": [], "stdout": " 16:20:13 up 17:51, 1 user, load average: 1.12, 1.13, 1.14", "stdout_lines": [" 16:20:13 up 17:51, 1 user, load average: 1.12, 1.13, 1.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019363", "end": "2025-12-16 16:20:13.188793", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.169430", "stderr": "", "stderr_lines": [], "stdout": " 16:20:13 up 14 days, 5:46, 1 user, load average: 0.10, 0.08, 0.09", "stdout_lines": [" 16:20:13 up 14 days, 5:46, 1 user, load average: 0.10, 0.08, 0.09"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004266", "end": "2025-12-16 16:20:13.720788", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.716522", "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.004554", "end": "2025-12-16 16:20:13.729208", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.724654", "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.004119", "end": "2025-12-16 16:20:13.757144", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.753025", "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.005026", "end": "2025-12-16 16:20:13.766295", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.761269", "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.005636", "end": "2025-12-16 16:20:13.784745", "msg": "", "rc": 0, "start": "2025-12-16 16:20:13.779109", "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.005634", "end": "2025-12-16 16:19:48.718847", "msg": "", "rc": 0, "start": "2025-12-16 16:19:48.713213", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.008077", "end": "2025-12-16 16:19:42.573434", "msg": "", "rc": 0, "start": "2025-12-16 16:19:42.565357", "stderr": "", "stderr_lines": [], "stdout": "25%", "stdout_lines": ["25%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010625", "end": "2025-12-16 16:20:14.468796", "msg": "", "rc": 0, "start": "2025-12-16 16:20:14.458171", "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.011618", "end": "2025-12-16 16:20:14.495646", "msg": "", "rc": 0, "start": "2025-12-16 16:20:14.484028", "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.005810", "end": "2025-12-16 16:20:14.707016", "msg": "", "rc": 0, "start": "2025-12-16 16:20:14.701206", "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.005320", "end": "2025-12-16 16:19:45.740580", "msg": "", "rc": 0, "start": "2025-12-16 16:19:45.735260", "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.005841", "end": "2025-12-16 13:20:14.958860", "msg": "", "rc": 0, "start": "2025-12-16 13:20:14.953019", "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.004880", "end": "2025-12-16 16:19:52.060233", "msg": "", "rc": 0, "start": "2025-12-16 16:19:52.055353", "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.005303", "end": "2025-12-16 16:20:15.139864", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.134561", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019463", "end": "2025-12-16 16:20:15.958187", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.938724", "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.025315", "end": "2025-12-16 16:20:15.106335", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.081020", "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.004418", "end": "2025-12-16 16:20:15.633510", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.629092", "stderr": "", "stderr_lines": [], "stdout": "84.0%", "stdout_lines": ["84.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.004147", "end": "2025-12-16 16:20:15.643739", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.639592", "stderr": "", "stderr_lines": [], "stdout": "22.1%", "stdout_lines": ["22.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.004919", "end": "2025-12-16 16:20:15.654017", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.649098", "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.004973", "end": "2025-12-16 16:20:15.676223", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.671250", "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.005545", "end": "2025-12-16 16:20:15.693261", "msg": "", "rc": 0, "start": "2025-12-16 16:20:15.687716", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.003808", "end": "2025-12-16 16:19:50.599645", "msg": "", "rc": 0, "start": "2025-12-16 16:19:50.595837", "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.004897", "end": "2025-12-16 16:19:44.456248", "msg": "", "rc": 0, "start": "2025-12-16 16:19:44.451351", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010933", "end": "2025-12-16 16:20:16.310261", "msg": "", "rc": 0, "start": "2025-12-16 16:20:16.299328", "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.011955", "end": "2025-12-16 16:20:16.352884", "msg": "", "rc": 0, "start": "2025-12-16 16:20:16.340929", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005788", "end": "2025-12-16 16:20:16.588843", "msg": "", "rc": 0, "start": "2025-12-16 16:20:16.583055", "stderr": "", "stderr_lines": [], "stdout": "34.7%", "stdout_lines": ["34.7%"]}
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.004078", "end": "2025-12-16 16:19:47.641265", "msg": "", "rc": 0, "start": "2025-12-16 16:19:47.637187", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003993", "end": "2025-12-16 16:19:53.889631", "msg": "", "rc": 0, "start": "2025-12-16 16:19:53.885638", "stderr": "", "stderr_lines": [], "stdout": "60.2%", "stdout_lines": ["60.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.005121", "end": "2025-12-16 13:20:16.811827", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:20:16.806706", "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.005295", "end": "2025-12-16 16:20:17.009186", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.003891", "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.011042", "end": "2025-12-16 16:20:17.917288", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.906246", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.025632", "end": "2025-12-16 16:20:17.006100", "msg": "", "rc": 0, "start": "2025-12-16 16:20:16.980468", "stderr": "", "stderr_lines": [], "stdout": "19.7%", "stdout_lines": ["19.7%"]}
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.005049", "end": "2025-12-16 16:20:17.532329", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.527280", "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.005237", "end": "2025-12-16 16:20:17.540120", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.534883", "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: [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.005431", "end": "2025-12-16 16:20:17.544701", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.539270", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.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.003192", "end": "2025-12-16 16:20:17.572581", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.569389", "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.005992", "end": "2025-12-16 16:20:17.587443", "msg": "", "rc": 0, "start": "2025-12-16 16:20:17.581451", "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.003334", "end": "2025-12-16 16:19:52.497725", "msg": "", "rc": 0, "start": "2025-12-16 16:19:52.494391", "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.003141", "end": "2025-12-16 16:19:46.342820", "msg": "", "rc": 0, "start": "2025-12-16 16:19:46.339679", "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.011758", "end": "2025-12-16 16:20:18.210972", "msg": "", "rc": 0, "start": "2025-12-16 16:20:18.199214", "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.013076", "end": "2025-12-16 16:20:18.258399", "msg": "", "rc": 0, "start": "2025-12-16 16:20:18.245323", "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.003247", "end": "2025-12-16 16:20:18.507517", "msg": "", "rc": 0, "start": "2025-12-16 16:20:18.504270", "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.002971", "end": "2025-12-16 16:19:49.511318", "msg": "", "rc": 0, "start": "2025-12-16 16:19:49.508347", "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.002504", "end": "2025-12-16 16:19:55.786802", "msg": "", "rc": 0, "start": "2025-12-16 16:19:55.784298", "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.004209", "end": "2025-12-16 13:20:18.717467", "msg": "", "rc": 0, "start": "2025-12-16 13:20:18.713258", "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.002894", "end": "2025-12-16 16:20:18.927825", "msg": "", "rc": 0, "start": "2025-12-16 16:20:18.924931", "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.005166", "end": "2025-12-16 16:20:19.836715", "msg": "", "rc": 0, "start": "2025-12-16 16:20:19.831549", "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.028014", "end": "2025-12-16 16:20:18.922753", "msg": "", "rc": 0, "start": "2025-12-16 16:20:18.894739", "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.004602", "end": "2025-12-16 16:20:19.425451", "msg": "", "rc": 0, "start": "2025-12-16 16:20:19.420849", "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.004066", "end": "2025-12-16 16:20:19.455113", "msg": "", "rc": 0, "start": "2025-12-16 16:20:19.451047", "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.004738", "end": "2025-12-16 16:20:19.463726", "msg": "", "rc": 0, "start": "2025-12-16 16:20:19.458988", "stderr": "", "stderr_lines": [], "stdout": "0.50", "stdout_lines": ["0.50"]}
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.004836", "end": "2025-12-16 16:20:19.484922", "msg": "", "rc": 0, "start": "2025-12-16 16:20:19.480086", "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.005401", "end": "2025-12-16 16:20:19.495559", "msg": "", "rc": 0, "start": "2025-12-16 16:20:19.490158", "stderr": "", "stderr_lines": [], "stdout": "1.23", "stdout_lines": ["1.23"]}
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.004190", "end": "2025-12-16 16:19:54.412529", "msg": "", "rc": 0, "start": "2025-12-16 16:19:54.408339", "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.005376", "end": "2025-12-16 16:19:48.251060", "msg": "", "rc": 0, "start": "2025-12-16 16:19:48.245684", "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.011145", "end": "2025-12-16 16:20:20.185536", "msg": "", "rc": 0, "start": "2025-12-16 16:20:20.174391", "stderr": "", "stderr_lines": [], "stdout": "0.32", "stdout_lines": ["0.32"]}
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.010804", "end": "2025-12-16 16:20:20.237067", "msg": "", "rc": 0, "start": "2025-12-16 16:20:20.226263", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.005763", "end": "2025-12-16 16:20:20.413402", "msg": "", "rc": 0, "start": "2025-12-16 16:20:20.407639", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.005037", "end": "2025-12-16 16:19:51.426200", "msg": "", "rc": 0, "start": "2025-12-16 16:19:51.421163", "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.004124", "end": "2025-12-16 16:19:57.783520", "msg": "", "rc": 0, "start": "2025-12-16 16:19:57.779396", "stderr": "", "stderr_lines": [], "stdout": "0.59", "stdout_lines": ["0.59"]}
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.006073", "end": "2025-12-16 13:20:20.695347", "msg": "", "rc": 0, "start": "2025-12-16 13:20:20.689274", "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.005273", "end": "2025-12-16 16:20:20.839527", "msg": "", "rc": 0, "start": "2025-12-16 16:20:20.834254", "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.008106", "end": "2025-12-16 16:20:21.818163", "msg": "", "rc": 0, "start": "2025-12-16 16:20:21.810057", "stderr": "", "stderr_lines": [], "stdout": "1.26", "stdout_lines": ["1.26"]}
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.024130", "end": "2025-12-16 16:20:20.799033", "msg": "", "rc": 0, "start": "2025-12-16 16:20:20.774903", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:11 up 2 days, 5:52, 1 user, load average: 0.34, 0.29, 0.32\nDisk Usage: 22%\nMemory Usage: 22.1%\nCPU Load: 0.37\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:11 up 21 days, 3:11, 1 user, load average: 0.21, 0.21, 0.20\nDisk Usage: 23%\nMemory Usage: 84.0%\nCPU Load: 0.19\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:11 up 21 days, 3:31, 1 user, load average: 0.54, 0.55, 0.54\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.50\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:11 up 21 days, 4:44, 1 user, load average: 1.36, 1.17, 0.85\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 1.23\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:11 up 21 days, 5:30, 1 user, load average: 0.03, 0.04, 0.01\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.02\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:13 up 14 days, 5:46, 1 user, load average: 0.10, 0.08, 0.09\nDisk Usage: 21%\nMemory Usage: 19.7%\nCPU Load: 0.17\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:12 up 193 days, 7:53, 1 user, load average: 0.35, 0.23, 0.19\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.32\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:12 up 193 days, 7:53, 1 user, load average: 0.14, 0.16, 0.11\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: 16:19:46 up 10 days, 4:09, 0 user, load average: 0.08, 0.14, 0.14\nDisk Usage: 47%\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: 16:19:40 up 17 days, 21 min, 0 user, load average: 0.25, 0.40, 0.18\nDisk Usage: 25%\nMemory Usage: 69.0%\nCPU Load: 0.31\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:12 up 2 days, 5:51, 1 user, load average: 0.03, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.7%\nCPU Load: 0.11\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:19:43 up 19 days, 19:14, 0 user, load average: 0.54, 0.49, 0.48\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.50\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:19:50 up 16 days, 5:35, 0 user, load average: 0.65, 0.32, 0.18\nDisk Usage: 75%\nMemory Usage: 60.2%\nCPU Load: 0.59\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:20PM up 21 days, 3:10, 1 user, load averages: 0.34, 0.22, 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: 16:20:13 up 2 days, 5:51, 1 user, load average: 0.00, 0.03, 0.02\nDisk Usage: 79%\nMemory Usage: 13.7%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:20:13 up 17:51, 1 user, load average: 1.12, 1.13, 1.14\nDisk Usage: 1%\nMemory Usage: 20.3%\nCPU Load: 1.26\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-16T21:20:22.745185+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `4867ff2614e94d69b949135973de86ba` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:25:00.001597+00:00 |
| **Fin** | 2025-12-16T21:25:21.835009+00:00 |
| **Durée** | 21.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: [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.003166", "end": "2025-12-16 16:25:11.476922", "msg": "", "rc": 0, "start": "2025-12-16 16:25:11.473756", "stderr": "", "stderr_lines": [], "stdout": " 16:25:11 up 21 days, 3:16, 1 user, load average: 0.10, 0.17, 0.17", "stdout_lines": [" 16:25:11 up 21 days, 3:16, 1 user, load average: 0.10, 0.17, 0.17"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003821", "end": "2025-12-16 16:25:11.480647", "msg": "", "rc": 0, "start": "2025-12-16 16:25:11.476826", "stderr": "", "stderr_lines": [], "stdout": " 16:25:11 up 21 days, 5:35, 1 user, load average: 0.00, 0.01, 0.00", "stdout_lines": [" 16:25:11 up 21 days, 5:35, 1 user, load average: 0.00, 0.01, 0.00"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003863", "end": "2025-12-16 16:25:11.505373", "msg": "", "rc": 0, "start": "2025-12-16 16:25:11.501510", "stderr": "", "stderr_lines": [], "stdout": " 16:25:11 up 21 days, 4:49, 1 user, load average: 0.66, 0.79, 0.77", "stdout_lines": [" 16:25:11 up 21 days, 4:49, 1 user, load average: 0.66, 0.79, 0.77"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002863", "end": "2025-12-16 16:25:11.514511", "msg": "", "rc": 0, "start": "2025-12-16 16:25:11.511648", "stderr": "", "stderr_lines": [], "stdout": " 16:25:11 up 2 days, 5:57, 1 user, load average: 0.38, 0.25, 0.28", "stdout_lines": [" 16:25:11 up 2 days, 5:57, 1 user, load average: 0.38, 0.25, 0.28"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003134", "end": "2025-12-16 16:24:46.442535", "msg": "", "rc": 0, "start": "2025-12-16 16:24:46.439401", "stderr": "", "stderr_lines": [], "stdout": " 16:24:46 up 10 days, 4:14, 0 user, load average: 0.13, 0.14, 0.13", "stdout_lines": [" 16:24:46 up 10 days, 4:14, 0 user, load average: 0.13, 0.14, 0.13"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008590", "end": "2025-12-16 16:25:12.164518", "msg": "", "rc": 0, "start": "2025-12-16 16:25:12.155928", "stderr": "", "stderr_lines": [], "stdout": " 16:25:12 up 193 days, 7:58, 1 user, load average: 0.32, 0.20, 0.12", "stdout_lines": [" 16:25:12 up 193 days, 7:58, 1 user, load average: 0.32, 0.20, 0.12"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009431", "end": "2025-12-16 16:25:12.183303", "msg": "", "rc": 0, "start": "2025-12-16 16:25:12.173872", "stderr": "", "stderr_lines": [], "stdout": " 16:25:12 up 193 days, 7:58, 1 user, load average: 0.26, 0.21, 0.19", "stdout_lines": [" 16:25:12 up 193 days, 7:58, 1 user, load average: 0.26, 0.21, 0.19"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.004601", "end": "2025-12-16 16:25:12.498549", "msg": "", "rc": 0, "start": "2025-12-16 16:25:11.493948", "stderr": "", "stderr_lines": [], "stdout": " 16:25:11 up 21 days, 3:36, 1 user, load average: 0.42, 0.43, 0.49", "stdout_lines": [" 16:25:11 up 21 days, 3:36, 1 user, load average: 0.42, 0.43, 0.49"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003533", "end": "2025-12-16 16:24:40.716061", "msg": "", "rc": 0, "start": "2025-12-16 16:24:40.712528", "stderr": "", "stderr_lines": [], "stdout": " 16:24:40 up 17 days, 26 min, 0 user, load average: 0.00, 0.14, 0.13", "stdout_lines": [" 16:24:40 up 17 days, 26 min, 0 user, load average: 0.00, 0.14, 0.13"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004714", "end": "2025-12-16 16:25:12.667704", "msg": "", "rc": 0, "start": "2025-12-16 16:25:12.662990", "stderr": "", "stderr_lines": [], "stdout": " 16:25:12 up 2 days, 5:56, 1 user, load average: 0.16, 0.09, 0.03", "stdout_lines": [" 16:25:12 up 2 days, 5:56, 1 user, load average: 0.16, 0.09, 0.03"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003521", "end": "2025-12-16 16:24:43.629748", "msg": "", "rc": 0, "start": "2025-12-16 16:24:43.626227", "stderr": "", "stderr_lines": [], "stdout": " 16:24:43 up 19 days, 19:19, 0 user, load average: 0.55, 0.48, 0.47", "stdout_lines": [" 16:24:43 up 19 days, 19:19, 0 user, load average: 0.55, 0.48, 0.47"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004330", "end": "2025-12-16 13:25:12.932480", "msg": "", "rc": 0, "start": "2025-12-16 13:25:12.928150", "stderr": "", "stderr_lines": [], "stdout": " 1:25PM up 21 days, 3:15, 1 user, load averages: 0.59, 0.37, 0.28", "stdout_lines": [" 1:25PM up 21 days, 3:15, 1 user, load averages: 0.59, 0.37, 0.28"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002636", "end": "2025-12-16 16:24:50.044501", "msg": "", "rc": 0, "start": "2025-12-16 16:24:50.041865", "stderr": "", "stderr_lines": [], "stdout": " 16:24:50 up 16 days, 5:40, 0 user, load average: 0.11, 0.16, 0.14", "stdout_lines": [" 16:24:50 up 16 days, 5:40, 0 user, load average: 0.11, 0.16, 0.14"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019569", "end": "2025-12-16 16:25:12.851278", "msg": "", "rc": 0, "start": "2025-12-16 16:25:12.831709", "stderr": "", "stderr_lines": [], "stdout": " 16:25:12 up 14 days, 5:51, 1 user, load average: 0.20, 0.09, 0.09", "stdout_lines": [" 16:25:12 up 14 days, 5:51, 1 user, load average: 0.20, 0.09, 0.09"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007164", "end": "2025-12-16 16:25:13.089860", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.082696", "stderr": "", "stderr_lines": [], "stdout": " 16:25:13 up 17:56, 1 user, load average: 1.31, 1.17, 1.15", "stdout_lines": [" 16:25:13 up 17:56, 1 user, load average: 1.31, 1.17, 1.15"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003758", "end": "2025-12-16 16:25:13.114425", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.110667", "stderr": "", "stderr_lines": [], "stdout": " 16:25:13 up 2 days, 5:56, 1 user, load average: 0.05, 0.06, 0.02", "stdout_lines": [" 16:25:13 up 2 days, 5:56, 1 user, load average: 0.05, 0.06, 0.02"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004424", "end": "2025-12-16 16:25:13.521089", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.516665", "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.004076", "end": "2025-12-16 16:25:13.536671", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.532595", "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.004774", "end": "2025-12-16 16:25:13.544655", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.539881", "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.004836", "end": "2025-12-16 16:25:13.581571", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.576735", "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.005732", "end": "2025-12-16 16:25:13.580983", "msg": "", "rc": 0, "start": "2025-12-16 16:25:13.575251", "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.004921", "end": "2025-12-16 16:24:48.554754", "msg": "", "rc": 0, "start": "2025-12-16 16:24:48.549833", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005735", "end": "2025-12-16 16:24:42.355553", "msg": "", "rc": 0, "start": "2025-12-16 16:24:42.349818", "stderr": "", "stderr_lines": [], "stdout": "25%", "stdout_lines": ["25%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010468", "end": "2025-12-16 16:25:14.282650", "msg": "", "rc": 0, "start": "2025-12-16 16:25:14.272182", "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.011629", "end": "2025-12-16 16:25:14.367450", "msg": "", "rc": 0, "start": "2025-12-16 16:25:14.355821", "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.005867", "end": "2025-12-16 16:25:14.552288", "msg": "", "rc": 0, "start": "2025-12-16 16:25:14.546421", "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.005762", "end": "2025-12-16 16:24:45.523984", "msg": "", "rc": 0, "start": "2025-12-16 16:24:45.518222", "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.005076", "end": "2025-12-16 16:24:51.868736", "msg": "", "rc": 0, "start": "2025-12-16 16:24:51.863660", "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.005705", "end": "2025-12-16 13:25:14.835363", "msg": "", "rc": 0, "start": "2025-12-16 13:25:14.829658", "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.005318", "end": "2025-12-16 16:25:14.983187", "msg": "", "rc": 0, "start": "2025-12-16 16:25:14.977869", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.023652", "end": "2025-12-16 16:25:15.094310", "msg": "", "rc": 0, "start": "2025-12-16 16:25:15.070658", "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.025514", "end": "2025-12-16 16:25:14.907375", "msg": "", "rc": 0, "start": "2025-12-16 16:25:14.881861", "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.004411", "end": "2025-12-16 16:25:15.421563", "msg": "", "rc": 0, "start": "2025-12-16 16:25:15.417152", "stderr": "", "stderr_lines": [], "stdout": "84.0%", "stdout_lines": ["84.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.004185", "end": "2025-12-16 16:25:15.431703", "msg": "", "rc": 0, "start": "2025-12-16 16:25:15.427518", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.005032", "end": "2025-12-16 16:25:15.441585", "msg": "", "rc": 0, "start": "2025-12-16 16:25:15.436553", "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.005612", "end": "2025-12-16 16:25:15.463301", "msg": "", "rc": 0, "start": "2025-12-16 16:25:15.457689", "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.005722", "end": "2025-12-16 16:25:15.488055", "msg": "", "rc": 0, "start": "2025-12-16 16:25:15.482333", "stderr": "", "stderr_lines": [], "stdout": "60.0%", "stdout_lines": ["60.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.004115", "end": "2025-12-16 16:24:50.385872", "msg": "", "rc": 0, "start": "2025-12-16 16:24:50.381757", "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.005260", "end": "2025-12-16 16:24:44.247544", "msg": "", "rc": 0, "start": "2025-12-16 16:24:44.242284", "stderr": "", "stderr_lines": [], "stdout": "69.1%", "stdout_lines": ["69.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-16 16:25:16.109475", "msg": "", "rc": 0, "start": "2025-12-16 16:25:16.098481", "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.011864", "end": "2025-12-16 16:25:16.158837", "msg": "", "rc": 0, "start": "2025-12-16 16:25:16.146973", "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.005942", "end": "2025-12-16 16:25:16.376852", "msg": "", "rc": 0, "start": "2025-12-16 16:25:16.370910", "stderr": "", "stderr_lines": [], "stdout": "34.3%", "stdout_lines": ["34.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.003946", "end": "2025-12-16 16:24:47.415499", "msg": "", "rc": 0, "start": "2025-12-16 16:24:47.411553", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.003889", "end": "2025-12-16 16:24:53.682480", "msg": "", "rc": 0, "start": "2025-12-16 16:24:53.678591", "stderr": "", "stderr_lines": [], "stdout": "59.0%", "stdout_lines": ["59.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.005396", "end": "2025-12-16 13:25:16.610634", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:25:16.605238", "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.005713", "end": "2025-12-16 16:25:16.806549", "msg": "", "rc": 0, "start": "2025-12-16 16:25:16.800836", "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.009616", "end": "2025-12-16 16:25:16.991607", "msg": "", "rc": 0, "start": "2025-12-16 16:25:16.981991", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.026493", "end": "2025-12-16 16:25:16.809397", "msg": "", "rc": 0, "start": "2025-12-16 16:25:16.782904", "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.005070", "end": "2025-12-16 16:25:17.333631", "msg": "", "rc": 0, "start": "2025-12-16 16:25:17.328561", "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.004939", "end": "2025-12-16 16:25:17.340081", "msg": "", "rc": 0, "start": "2025-12-16 16:25:17.335142", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.005533", "end": "2025-12-16 16:25:17.355443", "msg": "", "rc": 0, "start": "2025-12-16 16:25:17.349910", "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.003263", "end": "2025-12-16 16:25:17.393035", "msg": "", "rc": 0, "start": "2025-12-16 16:25:17.389772", "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.006506", "end": "2025-12-16 16:25:17.390796", "msg": "", "rc": 0, "start": "2025-12-16 16:25:17.384290", "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.002609", "end": "2025-12-16 16:24:52.317831", "msg": "", "rc": 0, "start": "2025-12-16 16:24:52.315222", "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.003012", "end": "2025-12-16 16:24:46.168942", "msg": "", "rc": 0, "start": "2025-12-16 16:24:46.165930", "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.011917", "end": "2025-12-16 16:25:18.006223", "msg": "", "rc": 0, "start": "2025-12-16 16:25:17.994306", "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.012907", "end": "2025-12-16 16:25:18.063644", "msg": "", "rc": 0, "start": "2025-12-16 16:25:18.050737", "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.003326", "end": "2025-12-16 16:25:18.318614", "msg": "", "rc": 0, "start": "2025-12-16 16:25:18.315288", "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.002853", "end": "2025-12-16 16:24:49.338607", "msg": "", "rc": 0, "start": "2025-12-16 16:24:49.335754", "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.002533", "end": "2025-12-16 16:24:55.575095", "msg": "", "rc": 0, "start": "2025-12-16 16:24:55.572562", "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.004047", "end": "2025-12-16 13:25:18.512979", "msg": "", "rc": 0, "start": "2025-12-16 13:25:18.508932", "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.003112", "end": "2025-12-16 16:25:18.750281", "msg": "", "rc": 0, "start": "2025-12-16 16:25:18.747169", "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.005234", "end": "2025-12-16 16:25:18.998377", "msg": "", "rc": 0, "start": "2025-12-16 16:25:18.993143", "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.028263", "end": "2025-12-16 16:25:18.714500", "msg": "", "rc": 0, "start": "2025-12-16 16:25:18.686237", "stderr": "", "stderr_lines": [], "stdout": "36.2°C", "stdout_lines": ["36.2°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.004220", "end": "2025-12-16 16:25:19.245838", "msg": "", "rc": 0, "start": "2025-12-16 16:25:19.241618", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.004578", "end": "2025-12-16 16:25:19.268463", "msg": "", "rc": 0, "start": "2025-12-16 16:25:19.263885", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
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.003914", "end": "2025-12-16 16:25:19.277847", "msg": "", "rc": 0, "start": "2025-12-16 16:25:19.273933", "stderr": "", "stderr_lines": [], "stdout": "0.47", "stdout_lines": ["0.47"]}
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.005485", "end": "2025-12-16 16:25:19.292258", "msg": "", "rc": 0, "start": "2025-12-16 16:25:19.286773", "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.005464", "end": "2025-12-16 16:25:19.318462", "msg": "", "rc": 0, "start": "2025-12-16 16:25:19.312998", "stderr": "", "stderr_lines": [], "stdout": "0.80", "stdout_lines": ["0.80"]}
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.004237", "end": "2025-12-16 16:24:54.216193", "msg": "", "rc": 0, "start": "2025-12-16 16:24:54.211956", "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.005208", "end": "2025-12-16 16:24:48.068011", "msg": "", "rc": 0, "start": "2025-12-16 16:24:48.062803", "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.010192", "end": "2025-12-16 16:25:20.020960", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.010768", "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.011356", "end": "2025-12-16 16:25:20.050687", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.039331", "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.005658", "end": "2025-12-16 16:25:20.225965", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.220307", "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.009857", "end": "2025-12-16 16:24:51.272026", "msg": "", "rc": 0, "start": "2025-12-16 16:24:51.262169", "stderr": "", "stderr_lines": [], "stdout": "0.51", "stdout_lines": ["0.51"]}
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.005962", "end": "2025-12-16 13:25:20.513954", "msg": "", "rc": 0, "start": "2025-12-16 13:25:20.507992", "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.005316", "end": "2025-12-16 16:24:57.623446", "msg": "", "rc": 0, "start": "2025-12-16 16:24:57.618130", "stderr": "", "stderr_lines": [], "stdout": "0.10", "stdout_lines": ["0.10"]}
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.005448", "end": "2025-12-16 16:25:20.646122", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.640674", "stderr": "", "stderr_lines": [], "stdout": "0.13", "stdout_lines": ["0.13"]}
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.007034", "end": "2025-12-16 16:25:21.006187", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.999153", "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.024113", "end": "2025-12-16 16:25:20.632411", "msg": "", "rc": 0, "start": "2025-12-16 16:25:20.608298", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:11 up 2 days, 5:57, 1 user, load average: 0.38, 0.25, 0.28\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.47\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:11 up 21 days, 3:16, 1 user, load average: 0.10, 0.17, 0.17\nDisk Usage: 23%\nMemory Usage: 84.0%\nCPU Load: 0.18\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:11 up 21 days, 3:36, 1 user, load average: 0.42, 0.43, 0.49\nDisk Usage: 14%\nMemory Usage: 49.2%\nCPU Load: 0.39\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:11 up 21 days, 4:49, 1 user, load average: 0.66, 0.79, 0.77\nDisk Usage: 14%\nMemory Usage: 60.0%\nCPU Load: 0.80\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:11 up 21 days, 5:35, 1 user, load average: 0.00, 0.01, 0.00\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: 16:25:12 up 14 days, 5:51, 1 user, load average: 0.20, 0.09, 0.09\nDisk Usage: 21%\nMemory Usage: 19.9%\nCPU Load: 0.18\nCPU Temp: 36.2°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:12 up 193 days, 7:58, 1 user, load average: 0.26, 0.21, 0.19\nDisk Usage: 6%\nMemory Usage: 12.7%\nCPU Load: 0.24\nCPU Temp: 37.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:12 up 193 days, 7:58, 1 user, load average: 0.32, 0.20, 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: 16:24:46 up 10 days, 4:14, 0 user, load average: 0.13, 0.14, 0.13\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:24:40 up 17 days, 26 min, 0 user, load average: 0.00, 0.14, 0.13\nDisk Usage: 25%\nMemory Usage: 69.1%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:12 up 2 days, 5:56, 1 user, load average: 0.16, 0.09, 0.03\nDisk Usage: 1%\nMemory Usage: 34.3%\nCPU Load: 0.14\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:24:43 up 19 days, 19:19, 0 user, load average: 0.55, 0.48, 0.47\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.51\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:24:50 up 16 days, 5:40, 0 user, load average: 0.11, 0.16, 0.14\nDisk Usage: 75%\nMemory Usage: 59.0%\nCPU Load: 0.10\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:25PM up 21 days, 3:15, 1 user, load averages: 0.59, 0.37, 0.28\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: 16:25:13 up 2 days, 5:56, 1 user, load average: 0.05, 0.06, 0.02\nDisk Usage: 79%\nMemory Usage: 13.5%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [localhost] => {
"msg": "═══════════════════════════════════════\nHost: localhost\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:25:13 up 17:56, 1 user, load average: 1.31, 1.17, 1.15\nDisk Usage: 1%\nMemory Usage: 20.3%\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-16T21:25:21.876179+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `a7ee690ef36b40279e935839718f6d5c` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:30:00.000468+00:00 |
| **Fin** | 2025-12-16T21:30:21.885080+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: [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: [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.003199", "end": "2025-12-16 16:30:11.150111", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.146912", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 21 days, 3:21, 1 user, load average: 0.21, 0.18, 0.18", "stdout_lines": [" 16:30:11 up 21 days, 3:21, 1 user, load average: 0.21, 0.18, 0.18"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003830", "end": "2025-12-16 16:30:11.158507", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.154677", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 21 days, 5:40, 1 user, load average: 0.12, 0.04, 0.01", "stdout_lines": [" 16:30:11 up 21 days, 5:40, 1 user, load average: 0.12, 0.04, 0.01"]}
ok: [hp2.i7.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003429", "end": "2025-12-16 16:30:11.167335", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.163906", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 21 days, 3:41, 1 user, load average: 0.82, 0.61, 0.55", "stdout_lines": [" 16:30:11 up 21 days, 3:41, 1 user, load average: 0.82, 0.61, 0.55"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002830", "end": "2025-12-16 16:30:11.187940", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.185110", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 2 days, 6:02, 1 user, load average: 0.34, 0.31, 0.29", "stdout_lines": [" 16:30:11 up 2 days, 6:02, 1 user, load average: 0.34, 0.31, 0.29"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002820", "end": "2025-12-16 16:29:46.109435", "msg": "", "rc": 0, "start": "2025-12-16 16:29:46.106615", "stderr": "", "stderr_lines": [], "stdout": " 16:29:46 up 10 days, 4:19, 0 user, load average: 0.31, 0.32, 0.20", "stdout_lines": [" 16:29:46 up 10 days, 4:19, 0 user, load average: 0.31, 0.32, 0.20"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008600", "end": "2025-12-16 16:30:11.828466", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.819866", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 193 days, 8:03, 1 user, load average: 0.37, 0.24, 0.15", "stdout_lines": [" 16:30:11 up 193 days, 8:03, 1 user, load average: 0.37, 0.24, 0.15"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009443", "end": "2025-12-16 16:30:11.877790", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.868347", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 193 days, 8:03, 1 user, load average: 0.25, 0.23, 0.19", "stdout_lines": [" 16:30:11 up 193 days, 8:03, 1 user, load average: 0.25, 0.23, 0.19"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003332", "end": "2025-12-16 16:29:40.386638", "msg": "", "rc": 0, "start": "2025-12-16 16:29:40.383306", "stderr": "", "stderr_lines": [], "stdout": " 16:29:40 up 17 days, 31 min, 0 user, load average: 0.15, 0.14, 0.11", "stdout_lines": [" 16:29:40 up 17 days, 31 min, 0 user, load average: 0.15, 0.14, 0.11"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005132", "end": "2025-12-16 16:30:12.196401", "msg": "", "rc": 0, "start": "2025-12-16 16:30:11.191269", "stderr": "", "stderr_lines": [], "stdout": " 16:30:11 up 21 days, 4:54, 1 user, load average: 0.73, 0.69, 0.73", "stdout_lines": [" 16:30:11 up 21 days, 4:54, 1 user, load average: 0.73, 0.69, 0.73"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004639", "end": "2025-12-16 16:30:12.328415", "msg": "", "rc": 0, "start": "2025-12-16 16:30:12.323776", "stderr": "", "stderr_lines": [], "stdout": " 16:30:12 up 2 days, 6:01, 1 user, load average: 0.00, 0.03, 0.00", "stdout_lines": [" 16:30:12 up 2 days, 6:01, 1 user, load average: 0.00, 0.03, 0.00"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003184", "end": "2025-12-16 16:29:43.320543", "msg": "", "rc": 0, "start": "2025-12-16 16:29:43.317359", "stderr": "", "stderr_lines": [], "stdout": " 16:29:43 up 19 days, 19:24, 0 user, load average: 0.59, 0.49, 0.47", "stdout_lines": [" 16:29:43 up 19 days, 19:24, 0 user, load average: 0.59, 0.49, 0.47"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004169", "end": "2025-12-16 13:30:12.610447", "msg": "", "rc": 0, "start": "2025-12-16 13:30:12.606278", "stderr": "", "stderr_lines": [], "stdout": " 1:30PM up 21 days, 3:19, 1 user, load averages: 0.07, 0.23, 0.23", "stdout_lines": [" 1:30PM up 21 days, 3:19, 1 user, load averages: 0.07, 0.23, 0.23"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004193", "end": "2025-12-16 16:29:49.712974", "msg": "", "rc": 0, "start": "2025-12-16 16:29:49.708781", "stderr": "", "stderr_lines": [], "stdout": " 16:29:49 up 16 days, 5:45, 0 user, load average: 0.04, 0.08, 0.10", "stdout_lines": [" 16:29:49 up 16 days, 5:45, 0 user, load average: 0.04, 0.08, 0.10"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019318", "end": "2025-12-16 16:30:12.546639", "msg": "", "rc": 0, "start": "2025-12-16 16:30:12.527321", "stderr": "", "stderr_lines": [], "stdout": " 16:30:12 up 14 days, 5:56, 1 user, load average: 0.19, 0.13, 0.10", "stdout_lines": [" 16:30:12 up 14 days, 5:56, 1 user, load average: 0.19, 0.13, 0.10"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003664", "end": "2025-12-16 16:30:12.752678", "msg": "", "rc": 0, "start": "2025-12-16 16:30:12.749014", "stderr": "", "stderr_lines": [], "stdout": " 16:30:12 up 2 days, 6:01, 1 user, load average: 0.04, 0.07, 0.02", "stdout_lines": [" 16:30:12 up 2 days, 6:01, 1 user, load average: 0.04, 0.07, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008186", "end": "2025-12-16 16:30:13.144787", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.136601", "stderr": "", "stderr_lines": [], "stdout": " 16:30:13 up 18:01, 1 user, load average: 1.17, 1.14, 1.14", "stdout_lines": [" 16:30:13 up 18:01, 1 user, load average: 1.17, 1.14, 1.14"]}
TASK [Get disk usage] **********************************************************
ok: [hp.nas.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004827", "end": "2025-12-16 16:30:13.179417", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.174590", "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.005077", "end": "2025-12-16 16:30:13.195051", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.189974", "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.004095", "end": "2025-12-16 16:30:13.199348", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.195253", "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.004267", "end": "2025-12-16 16:30:13.221562", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.217295", "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.005531", "end": "2025-12-16 16:30:13.235807", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.230276", "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.005159", "end": "2025-12-16 16:29:48.154967", "msg": "", "rc": 0, "start": "2025-12-16 16:29:48.149808", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.005499", "end": "2025-12-16 16:29:41.990097", "msg": "", "rc": 0, "start": "2025-12-16 16:29:41.984598", "stderr": "", "stderr_lines": [], "stdout": "25%", "stdout_lines": ["25%"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.010788", "end": "2025-12-16 16:30:13.939066", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.928278", "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.011896", "end": "2025-12-16 16:30:13.965451", "msg": "", "rc": 0, "start": "2025-12-16 16:30:13.953555", "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.005745", "end": "2025-12-16 16:30:14.148894", "msg": "", "rc": 0, "start": "2025-12-16 16:30:14.143149", "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.005424", "end": "2025-12-16 16:29:45.164423", "msg": "", "rc": 0, "start": "2025-12-16 16:29:45.158999", "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.005207", "end": "2025-12-16 16:29:51.523866", "msg": "", "rc": 0, "start": "2025-12-16 16:29:51.518659", "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.005871", "end": "2025-12-16 13:30:14.433732", "msg": "", "rc": 0, "start": "2025-12-16 13:30:14.427861", "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.006014", "end": "2025-12-16 16:30:14.573690", "msg": "", "rc": 0, "start": "2025-12-16 16:30:14.567676", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.019490", "end": "2025-12-16 16:30:15.073117", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.053627", "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.025598", "end": "2025-12-16 16:30:14.566179", "msg": "", "rc": 0, "start": "2025-12-16 16:30:14.540581", "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.004500", "end": "2025-12-16 16:30:15.101334", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.096834", "stderr": "", "stderr_lines": [], "stdout": "84.0%", "stdout_lines": ["84.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.004158", "end": "2025-12-16 16:30:15.115599", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.111441", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.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.004806", "end": "2025-12-16 16:30:15.140517", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.135711", "stderr": "", "stderr_lines": [], "stdout": "49.4%", "stdout_lines": ["49.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.005140", "end": "2025-12-16 16:30:15.157459", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.152319", "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.005793", "end": "2025-12-16 16:30:15.170637", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.164844", "stderr": "", "stderr_lines": [], "stdout": "59.9%", "stdout_lines": ["59.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.003745", "end": "2025-12-16 16:29:50.071601", "msg": "", "rc": 0, "start": "2025-12-16 16:29:50.067856", "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.004532", "end": "2025-12-16 16:29:43.927674", "msg": "", "rc": 0, "start": "2025-12-16 16:29:43.923142", "stderr": "", "stderr_lines": [], "stdout": "69.0%", "stdout_lines": ["69.0%"]}
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.010732", "end": "2025-12-16 16:30:15.801940", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.791208", "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.012192", "end": "2025-12-16 16:30:15.830627", "msg": "", "rc": 0, "start": "2025-12-16 16:30:15.818435", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.006282", "end": "2025-12-16 16:30:16.058659", "msg": "", "rc": 0, "start": "2025-12-16 16:30:16.052377", "stderr": "", "stderr_lines": [], "stdout": "34.5%", "stdout_lines": ["34.5%"]}
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.004209", "end": "2025-12-16 16:29:47.094235", "msg": "", "rc": 0, "start": "2025-12-16 16:29:47.090026", "stderr": "", "stderr_lines": [], "stdout": "27.2%", "stdout_lines": ["27.2%"]}
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.004953", "end": "2025-12-16 16:29:53.365967", "msg": "", "rc": 0, "start": "2025-12-16 16:29:53.361014", "stderr": "", "stderr_lines": [], "stdout": "61.3%", "stdout_lines": ["61.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.005657", "end": "2025-12-16 13:30:16.288168", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:30:16.282511", "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.005885", "end": "2025-12-16 16:30:16.515845", "msg": "", "rc": 0, "start": "2025-12-16 16:30:16.509960", "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.011776", "end": "2025-12-16 16:30:17.076935", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.065159", "stderr": "", "stderr_lines": [], "stdout": "20.4%", "stdout_lines": ["20.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.026206", "end": "2025-12-16 16:30:16.485150", "msg": "", "rc": 0, "start": "2025-12-16 16:30:16.458944", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.005294", "end": "2025-12-16 16:30:17.011318", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.006024", "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.004995", "end": "2025-12-16 16:30:17.025064", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.020069", "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.006208", "end": "2025-12-16 16:30:17.040242", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.034034", "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.003404", "end": "2025-12-16 16:30:17.065704", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.062300", "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.006603", "end": "2025-12-16 16:30:17.072034", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.065431", "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.002594", "end": "2025-12-16 16:29:51.974272", "msg": "", "rc": 0, "start": "2025-12-16 16:29:51.971678", "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.003153", "end": "2025-12-16 16:29:45.825403", "msg": "", "rc": 0, "start": "2025-12-16 16:29:45.822250", "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.011759", "end": "2025-12-16 16:30:17.686642", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.674883", "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.013062", "end": "2025-12-16 16:30:17.732790", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.719728", "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.003216", "end": "2025-12-16 16:30:17.969205", "msg": "", "rc": 0, "start": "2025-12-16 16:30:17.965989", "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.003512", "end": "2025-12-16 16:29:48.991288", "msg": "", "rc": 0, "start": "2025-12-16 16:29:48.987776", "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.002805", "end": "2025-12-16 16:29:55.265229", "msg": "", "rc": 0, "start": "2025-12-16 16:29:55.262424", "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.003943", "end": "2025-12-16 13:30:18.184046", "msg": "", "rc": 0, "start": "2025-12-16 13:30:18.180103", "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.003196", "end": "2025-12-16 16:30:18.430614", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.427418", "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.004219", "end": "2025-12-16 16:30:19.058667", "msg": "", "rc": 0, "start": "2025-12-16 16:30:19.054448", "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.028846", "end": "2025-12-16 16:30:18.401601", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.372755", "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-16 16:30:18.914379", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.910119", "stderr": "", "stderr_lines": [], "stdout": "0.33", "stdout_lines": ["0.33"]}
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.003994", "end": "2025-12-16 16:30:18.939574", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.935580", "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.005152", "end": "2025-12-16 16:30:18.960865", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.955713", "stderr": "", "stderr_lines": [], "stdout": "0.76", "stdout_lines": ["0.76"]}
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.005238", "end": "2025-12-16 16:30:18.973736", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.968498", "stderr": "", "stderr_lines": [], "stdout": "0.25", "stdout_lines": ["0.25"]}
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.005385", "end": "2025-12-16 16:30:18.984342", "msg": "", "rc": 0, "start": "2025-12-16 16:30:18.978957", "stderr": "", "stderr_lines": [], "stdout": "0.69", "stdout_lines": ["0.69"]}
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.004119", "end": "2025-12-16 16:29:53.900757", "msg": "", "rc": 0, "start": "2025-12-16 16:29:53.896638", "stderr": "", "stderr_lines": [], "stdout": "0.26", "stdout_lines": ["0.26"]}
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.004884", "end": "2025-12-16 16:29:47.743185", "msg": "", "rc": 0, "start": "2025-12-16 16:29:47.738301", "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.010059", "end": "2025-12-16 16:30:19.714233", "msg": "", "rc": 0, "start": "2025-12-16 16:30:19.704174", "stderr": "", "stderr_lines": [], "stdout": "0.39", "stdout_lines": ["0.39"]}
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.011212", "end": "2025-12-16 16:30:19.727373", "msg": "", "rc": 0, "start": "2025-12-16 16:30:19.716161", "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.005679", "end": "2025-12-16 16:30:19.917735", "msg": "", "rc": 0, "start": "2025-12-16 16:30:19.912056", "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.005266", "end": "2025-12-16 16:29:50.923079", "msg": "", "rc": 0, "start": "2025-12-16 16:29:50.917813", "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.005933", "end": "2025-12-16 13:30:20.190720", "msg": "", "rc": 0, "start": "2025-12-16 13:30:20.184787", "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.004404", "end": "2025-12-16 16:29:57.301685", "msg": "", "rc": 0, "start": "2025-12-16 16:29:57.297281", "stderr": "", "stderr_lines": [], "stdout": "0.04", "stdout_lines": ["0.04"]}
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.005380", "end": "2025-12-16 16:30:20.343719", "msg": "", "rc": 0, "start": "2025-12-16 16:30:20.338339", "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.009297", "end": "2025-12-16 16:30:21.035000", "msg": "", "rc": 0, "start": "2025-12-16 16:30:21.025703", "stderr": "", "stderr_lines": [], "stdout": "1.29", "stdout_lines": ["1.29"]}
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.024293", "end": "2025-12-16 16:30:20.295680", "msg": "", "rc": 0, "start": "2025-12-16 16:30:20.271387", "stderr": "", "stderr_lines": [], "stdout": "0.17", "stdout_lines": ["0.17"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 2 days, 6:02, 1 user, load average: 0.34, 0.31, 0.29\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.39\nCPU Temp: 46.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 21 days, 3:21, 1 user, load average: 0.21, 0.18, 0.18\nDisk Usage: 23%\nMemory Usage: 84.0%\nCPU Load: 0.33\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 21 days, 3:41, 1 user, load average: 0.82, 0.61, 0.55\nDisk Usage: 14%\nMemory Usage: 49.4%\nCPU Load: 0.76\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 21 days, 4:54, 1 user, load average: 0.73, 0.69, 0.73\nDisk Usage: 14%\nMemory Usage: 59.9%\nCPU Load: 0.69\nCPU Temp: 52.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 21 days, 5:40, 1 user, load average: 0.12, 0.04, 0.01\nDisk Usage: 9%\nMemory Usage: 8.9%\nCPU Load: 0.25\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:12 up 14 days, 5:56, 1 user, load average: 0.19, 0.13, 0.10\nDisk Usage: 21%\nMemory Usage: 20.2%\nCPU Load: 0.17\nCPU Temp: 35.7°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 193 days, 8:03, 1 user, load average: 0.25, 0.23, 0.19\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.21\nCPU Temp: 36.0°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:11 up 193 days, 8:03, 1 user, load average: 0.37, 0.24, 0.15\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.39\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:29:46 up 10 days, 4:19, 0 user, load average: 0.31, 0.32, 0.20\nDisk Usage: 47%\nMemory Usage: 70.9%\nCPU Load: 0.26\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:29:40 up 17 days, 31 min, 0 user, load average: 0.15, 0.14, 0.11\nDisk Usage: 25%\nMemory Usage: 69.0%\nCPU Load: 0.13\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:30:12 up 2 days, 6:01, 1 user, load average: 0.00, 0.03, 0.00\nDisk Usage: 1%\nMemory Usage: 34.5%\nCPU Load: 0.00\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:29:43 up 19 days, 19:24, 0 user, load average: 0.59, 0.49, 0.47\nDisk Usage: 28%\nMemory Usage: 27.2%\nCPU Load: 0.54\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:29:49 up 16 days, 5:45, 0 user, load average: 0.04, 0.08, 0.10\nDisk Usage: 75%\nMemory Usage: 61.3%\nCPU Load: 0.04\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:30PM up 21 days, 3:19, 1 user, load averages: 0.07, 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: 16:30:12 up 2 days, 6:01, 1 user, load average: 0.04, 0.07, 0.02\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: 16:30:13 up 18:01, 1 user, load average: 1.17, 1.14, 1.14\nDisk Usage: 1%\nMemory Usage: 20.4%\nCPU Load: 1.29\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-16T21:30:21.935327+00:00*
@@ -0,0 +1,224 @@
# ✅ [Planifié] Health-check-5min
## Informations
| Propriété | Valeur |
|-----------|--------|
| **ID** | `9ad87f49436c47cfa34805446859e1a3` |
| **Nom** | [Planifié] Health-check-5min |
| **Cible** | `all` |
| **Statut** | completed |
| **Type** | Planifié |
| **Progression** | 100% |
| **Début** | 2025-12-16T21:35:00.002345+00:00 |
| **Fin** | 2025-12-16T21:35:22.095959+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: [ali2v.truenas.home] => {"changed": false, "ping": "pong"}
ok: [automate.prod.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: [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.003401", "end": "2025-12-16 16:35:11.802365", "msg": "", "rc": 0, "start": "2025-12-16 16:35:11.798964", "stderr": "", "stderr_lines": [], "stdout": " 16:35:11 up 21 days, 3:46, 1 user, load average: 0.60, 0.57, 0.55", "stdout_lines": [" 16:35:11 up 21 days, 3:46, 1 user, load average: 0.60, 0.57, 0.55"]}
ok: [mimi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003879", "end": "2025-12-16 16:35:11.805680", "msg": "", "rc": 0, "start": "2025-12-16 16:35:11.801801", "stderr": "", "stderr_lines": [], "stdout": " 16:35:11 up 21 days, 5:45, 1 user, load average: 0.11, 0.10, 0.03", "stdout_lines": [" 16:35:11 up 21 days, 5:45, 1 user, load average: 0.11, 0.10, 0.03"]}
ok: [hp.nas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003667", "end": "2025-12-16 16:35:11.826452", "msg": "", "rc": 0, "start": "2025-12-16 16:35:11.822785", "stderr": "", "stderr_lines": [], "stdout": " 16:35:11 up 21 days, 3:26, 1 user, load average: 0.71, 0.58, 0.34", "stdout_lines": [" 16:35:11 up 21 days, 3:26, 1 user, load average: 0.71, 0.58, 0.34"]}
ok: [ali2v.xeon.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.002819", "end": "2025-12-16 16:35:11.833710", "msg": "", "rc": 0, "start": "2025-12-16 16:35:11.830891", "stderr": "", "stderr_lines": [], "stdout": " 16:35:11 up 2 days, 6:07, 1 user, load average: 0.32, 0.28, 0.28", "stdout_lines": [" 16:35:11 up 2 days, 6:07, 1 user, load average: 0.32, 0.28, 0.28"]}
ok: [dev.lab.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003130", "end": "2025-12-16 16:34:46.781325", "msg": "", "rc": 0, "start": "2025-12-16 16:34:46.778195", "stderr": "", "stderr_lines": [], "stdout": " 16:34:46 up 10 days, 4:24, 0 user, load average: 0.17, 0.25, 0.19", "stdout_lines": [" 16:34:46 up 10 days, 4:24, 0 user, load average: 0.17, 0.25, 0.19"]}
ok: [raspi.8gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.008439", "end": "2025-12-16 16:35:12.460693", "msg": "", "rc": 0, "start": "2025-12-16 16:35:12.452254", "stderr": "", "stderr_lines": [], "stdout": " 16:35:12 up 193 days, 8:08, 1 user, load average: 0.27, 0.22, 0.16", "stdout_lines": [" 16:35:12 up 193 days, 8:08, 1 user, load average: 0.27, 0.22, 0.16"]}
ok: [raspi.4gb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.009661", "end": "2025-12-16 16:35:12.510855", "msg": "", "rc": 0, "start": "2025-12-16 16:35:12.501194", "stderr": "", "stderr_lines": [], "stdout": " 16:35:12 up 193 days, 8:08, 1 user, load average: 0.29, 0.21, 0.19", "stdout_lines": [" 16:35:12 up 193 days, 8:08, 1 user, load average: 0.29, 0.21, 0.19"]}
ok: [hp3.i5.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:01.005416", "end": "2025-12-16 16:35:12.867365", "msg": "", "rc": 0, "start": "2025-12-16 16:35:11.861949", "stderr": "", "stderr_lines": [], "stdout": " 16:35:11 up 21 days, 4:59, 1 user, load average: 2.85, 1.46, 1.00", "stdout_lines": [" 16:35:11 up 21 days, 4:59, 1 user, load average: 2.85, 1.46, 1.00"]}
ok: [media.labb.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.005528", "end": "2025-12-16 16:34:41.078451", "msg": "", "rc": 0, "start": "2025-12-16 16:34:41.072923", "stderr": "", "stderr_lines": [], "stdout": " 16:34:41 up 17 days, 36 min, 0 user, load average: 4.78, 2.16, 0.86", "stdout_lines": [" 16:34:41 up 17 days, 36 min, 0 user, load average: 4.78, 2.16, 0.86"]}
ok: [ali2v.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.004715", "end": "2025-12-16 16:35:12.959480", "msg": "", "rc": 0, "start": "2025-12-16 16:35:12.954765", "stderr": "", "stderr_lines": [], "stdout": " 16:35:12 up 2 days, 6:06, 1 user, load average: 0.15, 0.08, 0.02", "stdout_lines": [" 16:35:12 up 2 days, 6:06, 1 user, load average: 0.15, 0.08, 0.02"]}
ok: [automate.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003717", "end": "2025-12-16 16:34:44.011061", "msg": "", "rc": 0, "start": "2025-12-16 16:34:44.007344", "stderr": "", "stderr_lines": [], "stdout": " 16:34:44 up 19 days, 19:29, 0 user, load average: 2.14, 1.14, 0.72", "stdout_lines": [" 16:34:44 up 19 days, 19:29, 0 user, load average: 2.14, 1.14, 0.72"]}
ok: [orangepi.pc.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.019372", "end": "2025-12-16 16:35:13.164968", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.145596", "stderr": "", "stderr_lines": [], "stdout": " 16:35:13 up 14 days, 6:01, 1 user, load average: 0.22, 0.11, 0.10", "stdout_lines": [" 16:35:13 up 14 days, 6:01, 1 user, load average: 0.22, 0.11, 0.10"]}
ok: [hp.truenas.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.007333", "end": "2025-12-16 13:35:13.361781", "msg": "", "rc": 0, "start": "2025-12-16 13:35:13.354448", "stderr": "", "stderr_lines": [], "stdout": " 1:35PM up 21 days, 3:25, 1 user, load averages: 0.80, 0.49, 0.33", "stdout_lines": [" 1:35PM up 21 days, 3:25, 1 user, load averages: 0.80, 0.49, 0.33"]}
ok: [dev.prod.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003853", "end": "2025-12-16 16:34:50.454501", "msg": "", "rc": 0, "start": "2025-12-16 16:34:50.450648", "stderr": "", "stderr_lines": [], "stdout": " 16:34:50 up 16 days, 5:50, 0 user, load average: 0.19, 0.07, 0.08", "stdout_lines": [" 16:34:50 up 16 days, 5:50, 0 user, load average: 0.19, 0.07, 0.08"]}
ok: [jump.point.home] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.003746", "end": "2025-12-16 16:35:13.391091", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.387345", "stderr": "", "stderr_lines": [], "stdout": " 16:35:13 up 2 days, 6:06, 1 user, load average: 0.12, 0.07, 0.02", "stdout_lines": [" 16:35:13 up 2 days, 6:06, 1 user, load average: 0.12, 0.07, 0.02"]}
ok: [localhost] => {"changed": false, "cmd": ["uptime"], "delta": "0:00:00.006851", "end": "2025-12-16 16:35:14.264223", "msg": "", "rc": 0, "start": "2025-12-16 16:35:14.257372", "stderr": "", "stderr_lines": [], "stdout": " 16:35:14 up 18:06, 1 user, load average: 1.26, 1.15, 1.13", "stdout_lines": [" 16:35:14 up 18:06, 1 user, load average: 1.26, 1.15, 1.13"]}
TASK [Get disk usage] **********************************************************
ok: [ali2v.xeon.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.004088", "end": "2025-12-16 16:35:13.872837", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.868749", "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.004676", "end": "2025-12-16 16:35:13.877939", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.873263", "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.005355", "end": "2025-12-16 16:35:13.897099", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.891744", "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.004893", "end": "2025-12-16 16:35:13.909244", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.904351", "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.005789", "end": "2025-12-16 16:35:13.967448", "msg": "", "rc": 0, "start": "2025-12-16 16:35:13.961659", "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.005744", "end": "2025-12-16 16:34:48.848685", "msg": "", "rc": 0, "start": "2025-12-16 16:34:48.842941", "stderr": "", "stderr_lines": [], "stdout": "47%", "stdout_lines": ["47%"]}
ok: [media.labb.home] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.009212", "end": "2025-12-16 16:34:42.752326", "msg": "", "rc": 0, "start": "2025-12-16 16:34:42.743114", "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.010556", "end": "2025-12-16 16:35:14.626723", "msg": "", "rc": 0, "start": "2025-12-16 16:35:14.616167", "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.011650", "end": "2025-12-16 16:35:14.649884", "msg": "", "rc": 0, "start": "2025-12-16 16:35:14.638234", "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.005838", "end": "2025-12-16 16:35:14.845786", "msg": "", "rc": 0, "start": "2025-12-16 16:35:14.839948", "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.005754", "end": "2025-12-16 16:34:45.953397", "msg": "", "rc": 0, "start": "2025-12-16 16:34:45.947643", "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.006127", "end": "2025-12-16 13:35:15.141039", "msg": "", "rc": 0, "start": "2025-12-16 13:35:15.134912", "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.004597", "end": "2025-12-16 16:34:52.227079", "msg": "", "rc": 0, "start": "2025-12-16 16:34:52.222482", "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.006279", "end": "2025-12-16 16:35:15.288330", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.282051", "stderr": "", "stderr_lines": [], "stdout": "79%", "stdout_lines": ["79%"]}
ok: [localhost] => {"changed": false, "cmd": "df -h / | tail -1 | awk '{print $5}'", "delta": "0:00:00.018777", "end": "2025-12-16 16:35:16.257716", "msg": "", "rc": 0, "start": "2025-12-16 16:35:16.238939", "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.025047", "end": "2025-12-16 16:35:15.264877", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.239830", "stderr": "", "stderr_lines": [], "stdout": "21%", "stdout_lines": ["21%"]}
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.004142", "end": "2025-12-16 16:35:15.804165", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.800023", "stderr": "", "stderr_lines": [], "stdout": "22.0%", "stdout_lines": ["22.0%"]}
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.005141", "end": "2025-12-16 16:35:15.800459", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.795318", "stderr": "", "stderr_lines": [], "stdout": "84.0%", "stdout_lines": ["84.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.004823", "end": "2025-12-16 16:35:15.827240", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.822417", "stderr": "", "stderr_lines": [], "stdout": "49.4%", "stdout_lines": ["49.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.005201", "end": "2025-12-16 16:35:15.841580", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.836379", "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.006510", "end": "2025-12-16 16:35:15.868447", "msg": "", "rc": 0, "start": "2025-12-16 16:35:15.861937", "stderr": "", "stderr_lines": [], "stdout": "60.5%", "stdout_lines": ["60.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.003554", "end": "2025-12-16 16:34:50.779982", "msg": "", "rc": 0, "start": "2025-12-16 16:34:50.776428", "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.005062", "end": "2025-12-16 16:34:44.665211", "msg": "", "rc": 0, "start": "2025-12-16 16:34:44.660149", "stderr": "", "stderr_lines": [], "stdout": "79.3%", "stdout_lines": ["79.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.011096", "end": "2025-12-16 16:35:16.501252", "msg": "", "rc": 0, "start": "2025-12-16 16:35:16.490156", "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.011955", "end": "2025-12-16 16:35:16.536296", "msg": "", "rc": 0, "start": "2025-12-16 16:35:16.524341", "stderr": "", "stderr_lines": [], "stdout": "13.0%", "stdout_lines": ["13.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.005895", "end": "2025-12-16 16:35:16.761970", "msg": "", "rc": 0, "start": "2025-12-16 16:35:16.756075", "stderr": "", "stderr_lines": [], "stdout": "34.6%", "stdout_lines": ["34.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.005895", "end": "2025-12-16 13:35:17.006353", "msg": "non-zero return code", "rc": 2, "start": "2025-12-16 13:35:17.000458", "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.003944", "end": "2025-12-16 16:34:54.119578", "msg": "", "rc": 0, "start": "2025-12-16 16:34:54.115634", "stderr": "", "stderr_lines": [], "stdout": "63.6%", "stdout_lines": ["63.6%"]}
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.033035", "end": "2025-12-16 16:34:47.933233", "msg": "", "rc": 0, "start": "2025-12-16 16:34:47.900198", "stderr": "", "stderr_lines": [], "stdout": "25.5%", "stdout_lines": ["25.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.005492", "end": "2025-12-16 16:35:17.180250", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.174758", "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.025757", "end": "2025-12-16 16:35:17.204553", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.178796", "stderr": "", "stderr_lines": [], "stdout": "20.3%", "stdout_lines": ["20.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.009291", "end": "2025-12-16 16:35:18.288122", "msg": "", "rc": 0, "start": "2025-12-16 16:35:18.278831", "stderr": "", "stderr_lines": [], "stdout": "20.2%", "stdout_lines": ["20.2%"]}
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.004954", "end": "2025-12-16 16:35:17.751303", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.746349", "stderr": "", "stderr_lines": [], "stdout": "47.0°C", "stdout_lines": ["47.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.006008", "end": "2025-12-16 16:35:17.764182", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.758174", "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: [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.005782", "end": "2025-12-16 16:35:17.773512", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.767730", "stderr": "", "stderr_lines": [], "stdout": "30.0°C", "stdout_lines": ["30.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.002890", "end": "2025-12-16 16:35:17.789976", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.787086", "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.008657", "end": "2025-12-16 16:35:17.861739", "msg": "", "rc": 0, "start": "2025-12-16 16:35:17.853082", "stderr": "", "stderr_lines": [], "stdout": "54.5°C", "stdout_lines": ["54.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.002400", "end": "2025-12-16 16:34:52.696636", "msg": "", "rc": 0, "start": "2025-12-16 16:34:52.694236", "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.003074", "end": "2025-12-16 16:34:46.641991", "msg": "", "rc": 0, "start": "2025-12-16 16:34:46.638917", "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.011839", "end": "2025-12-16 16:35:18.434741", "msg": "", "rc": 0, "start": "2025-12-16 16:35:18.422902", "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.012906", "end": "2025-12-16 16:35:18.484670", "msg": "", "rc": 0, "start": "2025-12-16 16:35:18.471764", "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.003215", "end": "2025-12-16 16:35:18.684795", "msg": "", "rc": 0, "start": "2025-12-16 16:35:18.681580", "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.002610", "end": "2025-12-16 16:34:56.011891", "msg": "", "rc": 0, "start": "2025-12-16 16:34:56.009281", "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.004813", "end": "2025-12-16 13:35:18.960649", "msg": "", "rc": 0, "start": "2025-12-16 13:35:18.955836", "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.004199", "end": "2025-12-16 16:34:49.878326", "msg": "", "rc": 0, "start": "2025-12-16 16:34:49.874127", "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.003182", "end": "2025-12-16 16:35:19.098096", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.094914", "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.004280", "end": "2025-12-16 16:35:20.231479", "msg": "", "rc": 0, "start": "2025-12-16 16:35:20.227199", "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.028861", "end": "2025-12-16 16:35:19.139141", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.110280", "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.004586", "end": "2025-12-16 16:35:19.685560", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.680974", "stderr": "", "stderr_lines": [], "stdout": "0.65", "stdout_lines": ["0.65"]}
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.004583", "end": "2025-12-16 16:35:19.700099", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.695516", "stderr": "", "stderr_lines": [], "stdout": "0.81", "stdout_lines": ["0.81"]}
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.004146", "end": "2025-12-16 16:35:19.705326", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.701180", "stderr": "", "stderr_lines": [], "stdout": "0.43", "stdout_lines": ["0.43"]}
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.004764", "end": "2025-12-16 16:35:19.737849", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.733085", "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.006245", "end": "2025-12-16 16:35:19.770029", "msg": "", "rc": 0, "start": "2025-12-16 16:35:19.763784", "stderr": "", "stderr_lines": [], "stdout": "2.79", "stdout_lines": ["2.79"]}
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.004888", "end": "2025-12-16 16:34:54.666098", "msg": "", "rc": 0, "start": "2025-12-16 16:34:54.661210", "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.006022", "end": "2025-12-16 16:34:48.584324", "msg": "", "rc": 0, "start": "2025-12-16 16:34:48.578302", "stderr": "", "stderr_lines": [], "stdout": "4.56", "stdout_lines": ["4.56"]}
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.010070", "end": "2025-12-16 16:35:20.439523", "msg": "", "rc": 0, "start": "2025-12-16 16:35:20.429453", "stderr": "", "stderr_lines": [], "stdout": "0.23", "stdout_lines": ["0.23"]}
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.011237", "end": "2025-12-16 16:35:20.517962", "msg": "", "rc": 0, "start": "2025-12-16 16:35:20.506725", "stderr": "", "stderr_lines": [], "stdout": "0.35", "stdout_lines": ["0.35"]}
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-16 16:35:20.656930", "msg": "", "rc": 0, "start": "2025-12-16 16:35:20.651319", "stderr": "", "stderr_lines": [], "stdout": "0.12", "stdout_lines": ["0.12"]}
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.004457", "end": "2025-12-16 16:34:58.022877", "msg": "", "rc": 0, "start": "2025-12-16 16:34:58.018420", "stderr": "", "stderr_lines": [], "stdout": "0.18", "stdout_lines": ["0.18"]}
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.007062", "end": "2025-12-16 16:34:51.826667", "msg": "", "rc": 0, "start": "2025-12-16 16:34:51.819605", "stderr": "", "stderr_lines": [], "stdout": "1.97", "stdout_lines": ["1.97"]}
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.006569", "end": "2025-12-16 13:35:20.997446", "msg": "", "rc": 0, "start": "2025-12-16 13:35:20.990877", "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.005296", "end": "2025-12-16 16:35:21.084221", "msg": "", "rc": 0, "start": "2025-12-16 16:35:21.078925", "stderr": "", "stderr_lines": [], "stdout": "0.11", "stdout_lines": ["0.11"]}
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.024006", "end": "2025-12-16 16:35:21.073619", "msg": "", "rc": 0, "start": "2025-12-16 16:35:21.049613", "stderr": "", "stderr_lines": [], "stdout": "0.20", "stdout_lines": ["0.20"]}
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.008046", "end": "2025-12-16 16:35:21.266964", "msg": "", "rc": 0, "start": "2025-12-16 16:35:21.258918", "stderr": "", "stderr_lines": [], "stdout": "1.37", "stdout_lines": ["1.37"]}
TASK [Display health status] ***************************************************
ok: [ali2v.xeon.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.xeon.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:11 up 2 days, 6:07, 1 user, load average: 0.32, 0.28, 0.28\nDisk Usage: 22%\nMemory Usage: 22.0%\nCPU Load: 0.43\nCPU Temp: 47.0°C\n═══════════════════════════════════════\n"
}
ok: [hp.nas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.nas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:11 up 21 days, 3:26, 1 user, load average: 0.71, 0.58, 0.34\nDisk Usage: 23%\nMemory Usage: 84.0%\nCPU Load: 0.65\nCPU Temp: 30.0°C\n═══════════════════════════════════════\n"
}
ok: [hp2.i7.home] => {
"msg": "═══════════════════════════════════════\nHost: hp2.i7.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:11 up 21 days, 3:46, 1 user, load average: 0.60, 0.57, 0.55\nDisk Usage: 14%\nMemory Usage: 49.4%\nCPU Load: 0.81\nCPU Temp: 0.0°C\n═══════════════════════════════════════\n"
}
ok: [hp3.i5.home] => {
"msg": "═══════════════════════════════════════\nHost: hp3.i5.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:11 up 21 days, 4:59, 1 user, load average: 2.85, 1.46, 1.00\nDisk Usage: 14%\nMemory Usage: 60.5%\nCPU Load: 2.79\nCPU Temp: 54.5°C\n═══════════════════════════════════════\n"
}
ok: [mimi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: mimi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:11 up 21 days, 5:45, 1 user, load average: 0.11, 0.10, 0.03\nDisk Usage: 9%\nMemory Usage: 9.0%\nCPU Load: 0.09\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [orangepi.pc.home] => {
"msg": "═══════════════════════════════════════\nHost: orangepi.pc.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:13 up 14 days, 6:01, 1 user, load average: 0.22, 0.11, 0.10\nDisk Usage: 21%\nMemory Usage: 20.3%\nCPU Load: 0.20\nCPU Temp: 35.4°C\n═══════════════════════════════════════\n"
}
ok: [raspi.4gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.4gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:12 up 193 days, 8:08, 1 user, load average: 0.29, 0.21, 0.19\nDisk Usage: 6%\nMemory Usage: 13.0%\nCPU Load: 0.35\nCPU Temp: 36.5°C\n═══════════════════════════════════════\n"
}
ok: [raspi.8gb.home] => {
"msg": "═══════════════════════════════════════\nHost: raspi.8gb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:12 up 193 days, 8:08, 1 user, load average: 0.27, 0.22, 0.16\nDisk Usage: 3%\nMemory Usage: 6.9%\nCPU Load: 0.23\nCPU Temp: 31.6°C\n═══════════════════════════════════════\n"
}
ok: [dev.lab.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.lab.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:34:46 up 10 days, 4:24, 0 user, load average: 0.17, 0.25, 0.19\nDisk Usage: 47%\nMemory Usage: 70.7%\nCPU Load: 0.22\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [media.labb.home] => {
"msg": "═══════════════════════════════════════\nHost: media.labb.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:34:41 up 17 days, 36 min, 0 user, load average: 4.78, 2.16, 0.86\nDisk Usage: 24%\nMemory Usage: 79.3%\nCPU Load: 4.56\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [ali2v.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: ali2v.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:35:12 up 2 days, 6:06, 1 user, load average: 0.15, 0.08, 0.02\nDisk Usage: 1%\nMemory Usage: 34.6%\nCPU Load: 0.12\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [automate.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: automate.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:34:44 up 19 days, 19:29, 0 user, load average: 2.14, 1.14, 0.72\nDisk Usage: 28%\nMemory Usage: 25.5%\nCPU Load: 1.97\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [dev.prod.home] => {
"msg": "═══════════════════════════════════════\nHost: dev.prod.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 16:34:50 up 16 days, 5:50, 0 user, load average: 0.19, 0.07, 0.08\nDisk Usage: 75%\nMemory Usage: 63.6%\nCPU Load: 0.18\nCPU Temp: N/A\n═══════════════════════════════════════\n"
}
ok: [hp.truenas.home] => {
"msg": "═══════════════════════════════════════\nHost: hp.truenas.home\nStatus: OK\n═══════════════════════════════════════\nUptime: 1:35PM up 21 days, 3:25, 1 user, load averages: 0.80, 0.49, 0.33\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: 16:35:13 up 2 days, 6:06, 1 user, load average: 0.12, 0.07, 0.02\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: 16:35:14 up 18:06, 1 user, load average: 1.26, 1.15, 1.13\nDisk Usage: 1%\nMemory Usage: 20.2%\nCPU Load: 1.37\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-16T21:35:22.142079+00:00*

Some files were not shown because too many files have changed in this diff Show More