# tasks

id: 15b1d316ed6f4d828356561ed543b79d
action: health-check
target: ali2v.xeon.home
status: completed
playbook: health-check.yml
started_at: 2025-12-05 13:17:25.136158
completed_at: 2025-12-05 13:17:32.055567
created_at: 2025-12-05 13:17:25
result_data:
  {"output": "Using /ansible/ansible.cfg as config file\n\nPLAY [Health check on target host] *********************************************\n\nTASK [Check if host is reachable (ping)] ***************************************\nok: [ali2v.xeon.home] => {\"changed\": false, \"ping\": \"pong\"}\n\nTASK [Gather minimal facts] ****************************************************\nok: [ali2v.xeon.home]\n\nTASK [Get system uptime] *******************************************************\nok: [ali2v.xeon.home] => {\"changed\": false, \"cmd\": [\"uptime\"], \"delta\": \"0:00:00.003266\", \"end\": \"2025-12-05 08:17:27.994780\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 08:17:27.991514\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \" 08:17:27 up 8 days, 23:10,  1 user,  load average: 2.36, 2.12, 1.60\", \"stdout_lines\": [\" 08:17:27 up 8 days, 23:10,  1 user,  load average: 2.36, 2.12, 1.60\"]}\n\nTASK [Get disk usage] **********************************************************\nok: [ali2v.xeon.home] => {\"changed\": false, \"cmd\": \"df -h / | tail -1 | awk '{print $5}'\", \"delta\": \"0:00:00.004465\", \"end\": \"2025-12-05 08:17:28.639943\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 08:17:28.635478\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"22%\", \"stdout_lines\": [\"22%\"]}\n\nTASK [Get memory usage (Linux)] ************************************************\nok: [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.004464\", \"end\": \"2025-12-05 08:17:29.156759\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 08:17:29.152295\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"27.4%\", \"stdout_lines\": [\"27.4%\"]}\n\nTASK [Get CPU temperature (ARM/SBC)] *******************************************\nok: [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\u00b0C\\\", $1/1000}'\\nelse\\n  echo \\\"N/A\\\"\\nfi\\n\", \"delta\": \"0:00:00.005282\", \"end\": \"2025-12-05 08:17:29.666535\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 08:17:29.661253\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"54.0\u00b0C\", \"stdout_lines\": [\"54.0\u00b0C\"]}\n\nTASK [Get CPU load] ************************************************************\nok: [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.004489\", \"end\": \"2025-12-05 08:17:30.187016\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 08:17:30.182527\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"2.36\", \"stdout_lines\": [\"2.36\"]}\n\nTASK [Display health status] ***************************************************\nok: [ali2v.xeon.home] => {\n    \"msg\": \"\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nHost: ali2v.xeon.home\\nStatus: OK\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nUptime:  08:17:27 up 8 days, 23:10,  1 user,  load average: 2.36, 2.12, 1.60\\nDisk Usage: 22%\\nMemory Usage: 27.4%\\nCPU Load: 2.36\\nCPU Temp: 54.0\u00b0C\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\n\"\n}\n\nPLAY RECAP *********************************************************************\nali2v.xeon.home            : ok=8    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


id: adhoc_61de30af2fef
action: adhoc:shell
target: ali2v.xeon.home
status: completed
started_at: 2025-12-05 13:18:10.629653
completed_at: 2025-12-05 13:18:12.395693
created_at: 2025-12-05 13:18:10
result_data:
  {"output": "ali2v.xeon.home | CHANGED | rc=0 >>\ntotal 996\n-rw-r--r-- 1 root root      3981 May  6  2025 adduser.conf\n-rw-r--r-- 1 root root        73 Apr  9  2025 aliases\n-rw-r--r-- 1 root root     12288 May 30  2025 aliases.db\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 alternatives\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 apparmor\ndrwxr-xr-x 9 root root      4096 Nov 25 13:19 apparmor.d\ndrwxr-xr-x 9 root root      4096 Nov 25 13:18 apt\n-rw-r--r-- 1 root root      1997 Jul 30 15:28 bash.bashrc\n-rw-r--r-- 1 root root        45 Jan 24  2020 bash_completion\ndrwxr-xr-x 2 root root      4096 Nov 25 13:19 bash_completion.d\n-rw-r--r-- 1 root root       367 Mar  6  2025 bindresvport.blacklist\ndrwxr-xr-x 2 root root      4096 Mar  6  2025 binfmt.d\ndrwxr-xr-x 3 root root      4096 May 30  2025 ca-certificates\n-rw-r--r-- 1 root root      6977 Nov 25 13:17 ca-certificates.conf\n-rw-r--r-- 1 root root      6105 Jun 21 23:47 ca-certificates.conf.dpkg-old\ndrwxr-xr-x 2 root root      4096 Nov 25 13:19 ceph\ndrwxr-xr-x 4 root root      4096 Apr  9  2025 chrony\ndrwxr-xr-x 2 root root      4096 May 30  2025 cifs-utils\ndrwxr-xr-x 2 root root      4096 Nov 25 13:18 console-setup\ndrwxr-xr-x 3 root root      4096 Nov 25 13:17 containers\ndrwxr-xr-x 3 root root      4096 May 30  2025 corosync\ndrwx------ 2 root root      4096 Sep  3 14:38 credstore\ndrwx------ 2 root root      4096 Sep  3 14:38 credstore.encrypted\ndrwxr-xr-x 2 root root      4096 Nov 25 13:18 cron.d\ndrwxr-xr-x 2 root root      4096 Nov 25 13:18 cron.daily\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 cron.hourly\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 cron.monthly\n-rw-r--r-- 1 root root      1042 Jun 13 04:30 crontab\ndrwxr-xr-x 2 root root      4096 Nov 25 13:18 cron.weekly\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 cron.yearly\ndrwxr-xr-x 4 root root      4096 May 30  2025 dbus-1\ndrwxr-xr-x 3 root root      4096 Nov 25 13:14 dconf\n-rw-r--r-- 1 root root      2967 Mar 10  2025 debconf.conf\n-rw-r--r-- 1 root root         5 Nov  7 12:40 debian_version\ndrwxr-xr-x 3 root root      4096 Nov 25 13:19 default\n-rw-r--r-- 1 root root      1706 May 25  2023 deluser.conf\ndrwxr-xr-x 2 root root      4096 Apr 25  2025 depmod.d\ndrwxr-xr-x 4 root root      4096 Nov 25 13:18 dhcp\ndrwxr-xr-x 4 root root      4096 Nov 25 13:15 dpkg\n-rw-r--r-- 1 root root       685 Mar  4  2023 e2scrub.conf\n-rw-r--r-- 1 root root         0 Apr  9  2025 environment\n-rw-r--r-- 1 root root      1936 Mar 15  2025 ethertypes\n-rw-r--r-- 1 root root       354 Feb 27  2023 fdmount.conf\ndrwxr-xr-x 4 root root      4096 Nov 25 13:17 fonts\ndrwxr-x--- 2 frr  frr       4096 Nov 25 13:18 frr\n-rw-r--r-- 1 root root       164 May 30  2025 fstab\n-rw-r--r-- 1 root root       725 Jul 16 13:27 fuse.conf\n-rw-r--r-- 1 root root      2584 Jul 29  2022 gai.conf\ndrwxr-xr-x 4 root root      4096 Jul 18 09:30 ghostscript\n-rw-r--r-- 1 root root      3986 Mar  3  2025 gprofng.rc\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 groff\n-rw-r--r-- 1 root root       796 Nov 28 16:30 group\n-rw-r--r-- 1 root root       777 Nov 28 16:30 group-\ndrwxr-xr-x 2 root root      4096 Nov 25 13:19 grub.d\n-rw-r----- 1 root shadow     653 Nov 28 16:30 gshadow\n-rw-r----- 1 root shadow     638 Nov 28 16:30 gshadow-\ndrwxr-xr-x 3 root root      4096 Apr  9  2025 gss\n-rw-r--r-- 1 root root      4448 Apr 16  2024 hdparm.conf\n-rw-r--r-- 1 root root         9 Aug  7  2006 host.conf\n-rw-r--r-- 1 root root         4 May 30  2025 hostid\n-rw-r--r-- 1 root root         6 May 30  2025 hostname\n-rw-r--r-- 1 root root       284 May 30  2025 hosts\n-rw-r--r-- 1 root root       411 May 30  2025 hosts.allow\n-rw-r--r-- 1 root root       711 May 30  2025 hosts.deny\n-rw-r--r-- 1 root root       171 Dec 11  2024 idmapd.conf\ndrwxr-xr-x 2 root root      4096 Nov 28 15:40 init.d\ndrwxr-xr-x 3 root root      4096 May 30  2025 initramfs\ndrwxr-xr-x 5 root root      4096 Nov 25 13:18 initramfs-tools\n-rw-r--r-- 1 root root      1875 Jan  3  2023 inputrc\ndrwxr-xr-x 2 root root      4096 Nov 25 13:18 insserv.conf.d\ndrwxr-xr-x 4 root root      4096 Nov 25 13:18 iproute2\ndrwxr-xr-x 2 root root      4096 Nov 25 13:18 iscsi\n-rw-r--r-- 1 root root       305 Nov 26 09:07 issue\n-rw-r--r-- 1 root root        27 Nov  7 12:40 issue.dpkg-dist\n-rw-r--r-- 1 root root        20 Nov  7 12:40 issue.net\ndrwxr-xr-x 5 root root      4096 May 30  2025 kernel\ndrwxr-xr-x 2 root root      4096 Dec 18  2022 keyutils\n-rw-r--r-- 1 root root       652 Apr  8  2024 ksmtuned.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 13:19 kvm\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 ldap\n-rw-r--r-- 1 root root     33575 Nov 28 15:40 ld.so.cache\n-rw-r--r-- 1 root root        34 Mar  6  2025 ld.so.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 13:14 ld.so.conf.d\n-rw-r--r-- 1 root root       191 Feb  9  2023 libaudit.conf\n-rw-r--r-- 1 root root       371 Mar  6  2023 libguestfs-tools.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 13:17 libnl-3\ndrwxr-xr-x 2 root root      4096 Mar 17  2023 libpaper.d\ndrwxr-xr-x 2 root root      4"}


id: adhoc_571e7fe68ce6
action: adhoc:shell
target: ali2v.xeon.home
status: completed
started_at: 2025-12-05 13:18:26.117285
completed_at: 2025-12-05 13:18:28.242237
created_at: 2025-12-05 13:18:26
result_data:
  {"output": "ali2v.xeon.home | CHANGED | rc=0 >>\nuid=1000(automation) gid=1000(automation) groups=1000(automation)\n"}


id: adhoc_dbb2a2584982
action: adhoc:shell
target: hp.nas.home
status: completed
started_at: 2025-12-05 13:44:58.444559
completed_at: 2025-12-05 13:45:00.431685
created_at: 2025-12-05 13:44:58
result_data:
  {"output": "hp.nas.home | CHANGED | rc=0 >>\ntotal 968\n-rw-r--r-- 1 root root      3981 May  6  2025 adduser.conf\n-rw-r--r-- 1 root root        73 Feb  5  2024 aliases\n-rw-r--r-- 1 root root     12288 Mar 22  2024 aliases.db\ndrwxr-xr-x 2 root root      4096 Nov 25 12:59 alternatives\ndrwxr-xr-x 2 root root      4096 Nov 25 12:59 apparmor\ndrwxr-xr-x 9 root root      4096 Nov 25 13:02 apparmor.d\ndrwxr-xr-x 9 root root      4096 Nov 25 13:01 apt\n-rw-r--r-- 1 root root      1997 Jul 30 15:28 bash.bashrc\n-rw-r--r-- 1 root root        45 Jan 24  2020 bash_completion\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 bash_completion.d\n-rw-r--r-- 1 root root       367 Sep 22  2022 bindresvport.blacklist\ndrwxr-xr-x 2 root root      4096 Nov  9  2023 binfmt.d\ndrwxr-xr-x 3 root root      4096 Mar 22  2024 ca-certificates\n-rw-r--r-- 1 root root      6977 Nov 25 13:00 ca-certificates.conf\n-rw-r--r-- 1 root root      6105 Jun 21 23:48 ca-certificates.conf.dpkg-old\ndrwxr-xr-x 2 ceph ceph      4096 Nov 25 13:01 ceph\ndrwxr-xr-x 4 root root      4096 Feb  5  2024 chrony\ndrwxr-xr-x 2 root root      4096 Mar 22  2024 cifs-utils\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 console-setup\ndrwxr-xr-x 3 root root      4096 Nov 25 13:00 containers\ndrwxr-xr-x 3 root root      4096 May 30  2025 corosync\ndrwx------ 2 root root      4096 Sep  3 14:38 credstore\ndrwx------ 2 root root      4096 Sep  3 14:38 credstore.encrypted\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 cron.d\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 cron.daily\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 cron.hourly\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 cron.monthly\n-rw-r--r-- 1 root root      1042 Jun 13 04:30 crontab\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 cron.weekly\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 cron.yearly\ndrwxr-xr-x 4 root root      4096 Mar 22  2024 dbus-1\n-rw-r--r-- 1 root root      2967 Mar 10  2025 debconf.conf\n-rw-r--r-- 1 root root         5 Nov  7 12:40 debian_version\ndrwxr-xr-x 3 root root      4096 Nov 25 13:01 default\n-rw-r--r-- 1 root root      1706 May 25  2023 deluser.conf\ndrwxr-xr-x 2 root root      4096 Apr 25  2025 depmod.d\ndrwxr-xr-x 4 root root      4096 Nov 25 13:00 dhcp\ndrwxr-xr-x 4 root root      4096 Nov 25 12:58 dpkg\n-rw-r--r-- 1 root root       685 Mar  4  2023 e2scrub.conf\n-rw-r--r-- 1 root root         0 Feb  5  2024 environment\n-rw-r--r-- 1 root root      1936 Mar 15  2025 ethertypes\n-rw-r--r-- 1 root root       354 Feb 27  2023 fdmount.conf\ndrwxr-xr-x 5 root root      4096 Nov 25 13:00 fish\ndrwxr-xr-x 4 root root      4096 Nov 25 13:00 fonts\ndrwxr-x--- 2 frr  frr       4096 Nov 25 13:01 frr\n-rw-r--r-- 1 root root       704 Feb 21  2025 fstab\n-rw-r--r-- 1 root root       725 Jul 16 13:27 fuse.conf\n-rw-r--r-- 1 root root      2584 Jul 29  2022 gai.conf\n-rw-r--r-- 1 root root      3986 Mar  3  2025 gprofng.rc\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 groff\n-rw-r--r-- 1 root root       838 Nov 28 17:28 group\n-rw-r--r-- 1 root root       819 Nov 25 13:01 group-\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 grub.d\n-rw-r----- 1 root shadow     687 Nov 28 17:28 gshadow\n-rw-r----- 1 root shadow     672 Nov 25 13:01 gshadow-\ndrwxr-xr-x 3 root root      4096 Feb  5  2024 gss\n-rw-r--r-- 1 root root      4448 Apr 16  2024 hdparm.conf\n-rw-r--r-- 1 root root         9 Aug  7  2006 host.conf\n-rw-r--r-- 1 root root         4 Mar 22  2024 hostid\n-rw-r--r-- 1 root root         7 Mar 22  2024 hostname\n-rw-r--r-- 1 root root       289 Mar 22  2024 hosts\n-rw-r--r-- 1 root root       411 Mar 22  2024 hosts.allow\n-rw-r--r-- 1 root root       711 Mar 22  2024 hosts.deny\n-rw-r--r-- 1 root root       171 Jan 11  2023 idmapd.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 init.d\ndrwxr-xr-x 3 root root      4096 Mar 22  2024 initramfs\ndrwxr-xr-x 5 root root      4096 Nov 25 13:00 initramfs-tools\n-rw-r--r-- 1 root root      1875 Jan  3  2023 inputrc\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 insserv.conf.d\ndrwxr-xr-x 4 root root      4096 Nov 25 13:01 iproute2\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 iscsi\n-rw-r--r-- 1 root root       305 Nov 25 13:08 issue\n-rw-r--r-- 1 root root        27 Nov  7 12:40 issue.dpkg-dist\n-rw-r--r-- 1 root root        20 Nov  7 12:40 issue.net\ndrwxr-xr-x 5 root root      4096 Nov 25 13:00 kernel\ndrwxr-xr-x 2 root root      4096 Dec 18  2022 keyutils\n-rw-r--r-- 1 root root       652 Apr  8  2024 ksmtuned.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 13:01 kvm\ndrwxr-xr-x 2 root root      4096 Nov 25 12:59 ldap\n-rw-r--r-- 1 root root     30915 Nov 25 13:08 ld.so.cache\n-rw-r--r-- 1 root root        34 Sep 22  2022 ld.so.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 12:57 ld.so.conf.d\n-rw-r--r-- 1 root root       191 Feb  9  2023 libaudit.conf\ndrwxr-xr-x 2 root root      4096 Nov 25 13:00 libnl-3\n-rw-r--r-- 1 root root      2996 Aug  5 13:34 locale.alias\n-rw-r--r-- 1 root root        52 Mar 22  2024 locale.conf\n-rw-r--r-- 1 root root      9581 Nov 25 12:59 locale.gen\nlrwxrwxrwx 1 root root        35 Mar 22  20"}


id: adhoc_0864004eb512
action: adhoc:shell
target: raspi.4gb.home
status: completed
started_at: 2025-12-05 13:46:56.218731
completed_at: 2025-12-05 13:46:58.508832
created_at: 2025-12-05 13:46:56
result_data:
  {"output": "raspi.4gb.home | CHANGED | rc=0 >>\nuid=1002(automation) gid=1002(automation) groups=1002(automation)\n"}


id: adhoc_c6f0d03bfc89
action: adhoc:raw
target: raspi.4gb.home
status: completed
started_at: 2025-12-05 13:47:38.316433
completed_at: 2025-12-05 13:47:38.910044
created_at: 2025-12-05 13:47:38
result_data:
  {"output": "raspi.4gb.home | CHANGED | rc=0 >>\nuid=1002(automation) gid=1002(automation) groups=1002(automation)\nShared connection to raspi.4gb.home closed.\n\n"}


id: adhoc_6b83174cbb10
action: adhoc:shell
target: role_proxmox
status: completed
started_at: 2025-12-05 14:43:46.982968
completed_at: 2025-12-05 14:43:48.984107
created_at: 2025-12-05 14:43:46
result_data:
  {"output": "hp.nas.home | CHANGED | rc=0 >>\nFilesystem                                          Size  Used Avail Use% Mounted on\nudev                                                 16G     0   16G   0% /dev\ntmpfs                                               3.2G  2.6M  3.2G   1% /run\n/dev/mapper/pve-root                                 68G   15G   51G  23% /\ntmpfs                                                16G   57M   16G   1% /dev/shm\nefivarfs                                            150K   80K   66K  55% /sys/firmware/efi/efivars\ntmpfs                                               5.0M     0  5.0M   0% /run/lock\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/systemd-journald.service\ntmpfs                                                16G  256K   16G   1% /tmp\n/dev/sda2                                          1022M  138M  885M  14% /boot/efi\nhp-nas-nvme-1tb                                     879G  128K  879G   1% /hp-nas-nvme-1tb\n/dev/fuse                                           128M   60K  128M   1% /etc/pve\nali2v.truenas.home:/mnt/ali2v-pool-1/SHARE_PROXMOX   11T  346G   11T   4% /mnt/pve/SHARE_PROXMOX\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/getty@tty1.service\ntmpfs                                               3.2G  8.0K  3.2G   1% /run/user/1003\nmimi.pc.home | CHANGED | rc=0 >>\nFilesystem                                          Size  Used Avail Use% Mounted on\nudev                                                7.8G     0  7.8G   0% /dev\ntmpfs                                               1.6G  1.5M  1.6G   1% /run\n/dev/mapper/pve-root                                 94G  7.2G   83G   8% /\ntmpfs                                               7.8G   54M  7.8G   1% /dev/shm\ntmpfs                                               5.0M     0  5.0M   0% /run/lock\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/systemd-journald.service\ntmpfs                                               7.8G  256K  7.8G   1% /tmp\n/dev/fuse                                           128M   60K  128M   1% /etc/pve\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/getty@tty1.service\nali2v.truenas.home:/mnt/ali2v-pool-1/SHARE_PROXMOX   11T  346G   11T   4% /mnt/pve/SHARE_PROXMOX\ntmpfs                                               1.6G  8.0K  1.6G   1% /run/user/1000\nali2v.xeon.home | CHANGED | rc=0 >>\nFilesystem                                          Size  Used Avail Use% Mounted on\nudev                                                 32G     0   32G   0% /dev\ntmpfs                                               6.3G  5.3M  6.3G   1% /run\nefivarfs                                            256K   52K  200K  21% /sys/firmware/efi/efivars\n/dev/mapper/pve-root                                 94G   20G   70G  22% /\ntmpfs                                                32G   57M   32G   1% /dev/shm\ntmpfs                                               5.0M     0  5.0M   0% /run/lock\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/systemd-journald.service\ntmpfs                                                32G  256K   32G   1% /tmp\n/dev/fuse                                           128M   60K  128M   1% /etc/pve\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/getty@tty1.service\nali2v.truenas.home:/mnt/ali2v-pool-1/SHARE_PROXMOX   11T  346G   11T   4% /mnt/pve/SHARE_PROXMOX\ntmpfs                                               6.3G  8.0K  6.3G   1% /run/user/1000\nhp3.i5.home | CHANGED | rc=0 >>\nFilesystem                                          Size  Used Avail Use% Mounted on\nudev                                                 16G     0   16G   0% /dev\ntmpfs                                               3.2G  2.7M  3.2G   1% /run\n/dev/mapper/pve-root                                 68G  8.6G   56G  14% /\ntmpfs                                                16G   57M   16G   1% /dev/shm\nefivarfs                                            118K   54K   60K  48% /sys/firmware/efi/efivars\ntmpfs                                               5.0M     0  5.0M   0% /run/lock\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/systemd-journald.service\ntmpfs                                                16G  256K   16G   1% /tmp\n/dev/nvme0n1p2                                     1022M   95M  928M  10% /boot/efi\nhp3-i5-ssd-256gb                                    231G  128K  231G   1% /hp3-i5-ssd-256gb\n/dev/fuse                                           128M   60K  128M   1% /etc/pve\ntmpfs                                               1.0M     0  1.0M   0% /run/credentials/getty@tty1.service\nali2v.truenas.home:/mnt/ali2v-pool-1/SHARE_PROXMOX   11T  346G   11T   4% /mnt/pve/SHARE_PROXMOX\ntmpfs                                               3.2G  8.0K  3"}


id: adhoc_284db04e4b3e
action: adhoc:shell
target: role_proxmox
status: completed
started_at: 2025-12-05 14:44:27.147994
completed_at: 2025-12-05 14:44:28.438900
created_at: 2025-12-05 14:44:27
result_data:
  {"output": "hp.nas.home | CHANGED | rc=0 >>\ntotal 512068\ndrwxrwxr-x+ 4 root 4000        21 Sep  3 02:02 dump\n-rwxrwxr-x+ 1 root 4000 524288000 Jun 17  2024 fio-tempfile.dat\ndrwxrwxr-x+ 9 root 4000        11 Aug 12 15:27 images\ndrwxrwxr-x+ 2 root 4000         2 Jul 17 15:52 import\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 private\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 snippets\ndrwxrwxr-x+ 4 root 4000         4 May 30  2025 template\nhp2.i7.home | CHANGED | rc=0 >>\ntotal 512068\ndrwxrwxr-x+ 4 root 4000        21 Sep  3 02:02 dump\n-rwxrwxr-x+ 1 root 4000 524288000 Jun 17  2024 fio-tempfile.dat\ndrwxrwxr-x+ 9 root 4000        11 Aug 12 15:27 images\ndrwxrwxr-x+ 2 root 4000         2 Jul 17 15:52 import\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 private\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 snippets\ndrwxrwxr-x+ 4 root 4000         4 May 30  2025 template\nmimi.pc.home | CHANGED | rc=0 >>\ntotal 512068\ndrwxrwxr-x+ 4 root 4000        21 Sep  3 02:02 dump\n-rwxrwxr-x+ 1 root 4000 524288000 Jun 17  2024 fio-tempfile.dat\ndrwxrwxr-x+ 9 root 4000        11 Aug 12 15:27 images\ndrwxrwxr-x+ 2 root 4000         2 Jul 17 15:52 import\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 private\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 snippets\ndrwxrwxr-x+ 4 root 4000         4 May 30  2025 template\nali2v.xeon.home | CHANGED | rc=0 >>\ntotal 512068\ndrwxrwxr-x+ 4 root famille        21 Sep  3 02:02 dump\n-rwxrwxr-x+ 1 root famille 524288000 Jun 17  2024 fio-tempfile.dat\ndrwxrwxr-x+ 9 root famille        11 Aug 12 15:27 images\ndrwxrwxr-x+ 2 root famille         2 Jul 17 15:52 import\ndrwxrwxr-x+ 2 root famille         2 Mar 24  2024 private\ndrwxrwxr-x+ 2 root famille         2 Mar 24  2024 snippets\ndrwxrwxr-x+ 4 root famille         4 May 30  2025 template\nhp3.i5.home | CHANGED | rc=0 >>\ntotal 512068\ndrwxrwxr-x+ 4 root 4000        21 Sep  3 02:02 dump\n-rwxrwxr-x+ 1 root 4000 524288000 Jun 17  2024 fio-tempfile.dat\ndrwxrwxr-x+ 9 root 4000        11 Aug 12 15:27 images\ndrwxrwxr-x+ 2 root 4000         2 Jul 17 15:52 import\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 private\ndrwxrwxr-x+ 2 root 4000         2 Mar 24  2024 snippets\ndrwxrwxr-x+ 4 root 4000         4 May 30  2025 template\n"}


id: adhoc_a0d052f1cbba
action: adhoc:shell
target: role_proxmox
status: failed
started_at: 2025-12-05 14:48:00.280187
completed_at: 2025-12-05 14:48:02.150183
created_at: 2025-12-05 14:48:00
result_data:
  {"output": "[ERROR]: Task failed: Module failed: non-zero return code\nOrigin: <adhoc 'shell' task>\n\n{'action': 'shell', 'args': {'_raw_params': 'touch /mnt/pve/SHARE_PROXMOX/backup/test.txt'}, 'timeout': 0, [...]\n\nhp.nas.home | FAILED | rc=1 >>\ntouch: cannot touch '/mnt/pve/SHARE_PROXMOX/backup/test.txt': Permission deniednon-zero return code\nhp2.i7.home | FAILED | rc=1 >>\ntouch: cannot touch '/mnt/pve/SHARE_PROXMOX/backup/test.txt': Permission deniednon-zero return code\nmimi.pc.home | FAILED | rc=1 >>\ntouch: cannot touch '/mnt/pve/SHARE_PROXMOX/backup/test.txt': Permission deniednon-zero return code\nali2v.xeon.home | FAILED | rc=1 >>\ntouch: cannot touch '/mnt/pve/SHARE_PROXMOX/backup/test.txt': Permission deniednon-zero return code\nhp3.i5.home | FAILED | rc=1 >>\ntouch: cannot touch '/mnt/pve/SHARE_PROXMOX/backup/test.txt': Permission deniednon-zero return code\n"}


id: ee4eac0dc9bd46979d817b9d0d274ccf
action: health-check
target: ali2v.xeon.home
status: completed
playbook: health-check.yml
started_at: 2025-12-05 19:54:33.555934
completed_at: 2025-12-05 19:54:39.099143
created_at: 2025-12-05 19:54:33
result_data:
  {"output": "Using /ansible/ansible.cfg as config file\n\nPLAY [Health check on target host] *********************************************\n\nTASK [Check if host is reachable (ping)] ***************************************\nok: [ali2v.xeon.home] => {\"changed\": false, \"ping\": \"pong\"}\n\nTASK [Gather minimal facts] ****************************************************\nok: [ali2v.xeon.home]\n\nTASK [Get system uptime] *******************************************************\nok: [ali2v.xeon.home] => {\"changed\": false, \"cmd\": [\"uptime\"], \"delta\": \"0:00:00.003251\", \"end\": \"2025-12-05 14:54:35.237551\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 14:54:35.234300\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \" 14:54:35 up 9 days,  5:47,  2 users,  load average: 1.05, 1.12, 1.04\", \"stdout_lines\": [\" 14:54:35 up 9 days,  5:47,  2 users,  load average: 1.05, 1.12, 1.04\"]}\n\nTASK [Get disk usage] **********************************************************\nok: [ali2v.xeon.home] => {\"changed\": false, \"cmd\": \"df -h / | tail -1 | awk '{print $5}'\", \"delta\": \"0:00:00.004507\", \"end\": \"2025-12-05 14:54:35.701062\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 14:54:35.696555\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"22%\", \"stdout_lines\": [\"22%\"]}\n\nTASK [Get memory usage (Linux)] ************************************************\nok: [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.004487\", \"end\": \"2025-12-05 14:54:36.374533\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 14:54:36.370046\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"27.6%\", \"stdout_lines\": [\"27.6%\"]}\n\nTASK [Get CPU temperature (ARM/SBC)] *******************************************\nok: [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\u00b0C\\\", $1/1000}'\\nelse\\n  echo \\\"N/A\\\"\\nfi\\n\", \"delta\": \"0:00:00.005383\", \"end\": \"2025-12-05 14:54:36.842079\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 14:54:36.836696\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"50.0\u00b0C\", \"stdout_lines\": [\"50.0\u00b0C\"]}\n\nTASK [Get CPU load] ************************************************************\nok: [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.004378\", \"end\": \"2025-12-05 14:54:37.314441\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-05 14:54:37.310063\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"1.04\", \"stdout_lines\": [\"1.04\"]}\n\nTASK [Display health status] ***************************************************\nok: [ali2v.xeon.home] => {\n    \"msg\": \"\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nHost: ali2v.xeon.home\\nStatus: OK\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nUptime:  14:54:35 up 9 days,  5:47,  2 users,  load average: 1.05, 1.12, 1.04\\nDisk Usage: 22%\\nMemory Usage: 27.6%\\nCPU Load: 1.04\\nCPU Temp: 50.0\u00b0C\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\n\"\n}\n\nPLAY RECAP *********************************************************************\nali2v.xeon.home            : ok=8    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


id: pb_bb758c83d426
action: playbook:health-check
target: dev.lab.home
status: completed
playbook: health-check
started_at: 2025-12-05 20:32:09.824090
completed_at: 2025-12-05 20:32:15.503861
created_at: 2025-12-05 20:32:09
result_data:
  {"output": "\nPLAY [Health check on target host] *********************************************\n\nTASK [Check if host is reachable (ping)] ***************************************\nok: [dev.lab.home]\n\nTASK [Gather minimal facts] ****************************************************\nok: [dev.lab.home]\n\nTASK [Get system uptime] *******************************************************\nok: [dev.lab.home]\n\nTASK [Get disk usage] **********************************************************\nok: [dev.lab.home]\n\nTASK [Get memory usage (Linux)] ************************************************\nok: [dev.lab.home]\n\nTASK [Get CPU temperature (ARM/SBC)] *******************************************\nok: [dev.lab.home]\n\nTASK [Get CPU load] ************************************************************\nok: [dev.lab.home]\n\nTASK [Display health status] ***************************************************\nok: [dev.lab.home] => {\n    \"msg\": \"\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nHost: dev.lab.home\\nStatus: OK\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nUptime:  15:31:58 up 1 day,  1:36,  0 users,  load average: 0.05, 0.08, 0.08\\nDisk Usage: 79%\\nMemory Usage: 72.3%\\nCPU Load: 0.06\\nCPU Temp: N/A\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\n\"\n}\n\nPLAY RECAP *********************************************************************\ndev.lab.home               : ok=8    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


id: pb_e4f542d8b3f4
action: playbook:ntfy-test-success
target: ali2v.xeon.home
status: completed
playbook: ntfy-test-success
started_at: 2025-12-05 20:42:46.125924
completed_at: 2025-12-05 20:42:48.335072
created_at: 2025-12-05 20:42:46
result_data:
  {"output": "\nPLAY [NTFY test playbook (success)] ********************************************\n\nTASK [Simulate a successful operation] *****************************************\nok: [ali2v.xeon.home] => {\n    \"msg\": \"NTFY test playbook: success on host ali2v.xeon.home\"\n}\n\nTASK [Ensure playbook ends successfully] ***************************************\nok: [ali2v.xeon.home]\n\nPLAY RECAP *********************************************************************\nali2v.xeon.home            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


id: pb_e2d726a85b4c
action: playbook:ntfy-test-error
target: ali2v.xeon.home
status: failed
playbook: ntfy-test-error
started_at: 2025-12-05 20:48:32.331223
completed_at: 2025-12-05 20:48:34.605563
created_at: 2025-12-05 20:48:32
result_data:
  {"output": "\nPLAY [NTFY test playbook (error)] **********************************************\n\nTASK [Simulate a failing operation] ********************************************\n[ERROR]: Task failed: Module failed: non-zero return code\nOrigin: /ansible/playbooks/ntfy-test-error.yml:12:7\n\n10\n11   tasks:\n12     - name: Simulate a failing operation\n         ^ column 7\n\nfatal: [ali2v.xeon.home]: FAILED! => {\"changed\": true, \"cmd\": [\"/bin/false\"], \"delta\": \"0:00:00.002670\", \"end\": \"2025-12-05 15:48:32.878948\", \"msg\": \"non-zero return code\", \"rc\": 1, \"start\": \"2025-12-05 15:48:32.876278\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"\", \"stdout_lines\": []}\n\nPLAY RECAP *********************************************************************\nali2v.xeon.home            : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   \n\n"}


id: pb_9c9de16c4945
action: playbook:ntfy-test-error
target: hp3.i5.home
status: failed
playbook: ntfy-test-error
started_at: 2025-12-06 01:26:44.428540
completed_at: 2025-12-06 01:26:45.855260
created_at: 2025-12-06 01:26:44
result_data:
  {"output": "\nPLAY [NTFY test playbook (error)] **********************************************\n\nTASK [Simulate a failing operation (for NTFY error notifications)] *************\n[ERROR]: Task failed: Action failed: NTFY test playbook: simulated error on host hp3.i5.home\nOrigin: /ansible/playbooks/ntfy-test-error.yml:12:7\n\n10\n11   tasks:\n12     - name: Simulate a failing operation (for NTFY error notifications)\n         ^ column 7\n\nfatal: [hp3.i5.home]: FAILED! => {\"changed\": false, \"msg\": \"NTFY test playbook: simulated error on host hp3.i5.home\"}\n\nPLAY RECAP *********************************************************************\nhp3.i5.home                : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   \n\n"}


id: pb_2d0f537507ec
action: playbook:health-check
target: hp.nas.home
status: completed
playbook: health-check
started_at: 2025-12-06 01:44:30.305395
completed_at: 2025-12-06 01:44:38.341165
created_at: 2025-12-06 01:44:30
result_data:
  {"output": "\nPLAY [Health check on target host] *********************************************\n\nTASK [Check if host is reachable (ping)] ***************************************\nok: [hp.nas.home]\n\nTASK [Gather minimal facts] ****************************************************\nok: [hp.nas.home]\n\nTASK [Get system uptime] *******************************************************\nok: [hp.nas.home]\n\nTASK [Get disk usage] **********************************************************\nok: [hp.nas.home]\n\nTASK [Get memory usage (Linux)] ************************************************\nok: [hp.nas.home]\n\nTASK [Get CPU temperature (ARM/SBC)] *******************************************\nok: [hp.nas.home]\n\nTASK [Get CPU load] ************************************************************\nok: [hp.nas.home]\n\nTASK [Display health status] ***************************************************\nok: [hp.nas.home] => {\n    \"msg\": \"\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nHost: hp.nas.home\\nStatus: OK\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nUptime:  20:44:35 up 10 days,  7:35,  1 user,  load average: 0.22, 0.18, 0.15\\nDisk Usage: 23%\\nMemory Usage: 79.0%\\nCPU Load: 0.22\\nCPU Temp: 30.0\u00b0C\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\n\"\n}\n\nPLAY RECAP *********************************************************************\nhp.nas.home                : ok=8    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


id: f7ee3ec985914649b62cbb7a0bf3ba36
action: health-check
target: dev.prod.home
status: completed
playbook: health-check.yml
started_at: 2025-12-06 17:04:55.480464
completed_at: 2025-12-06 17:06:14.527603
created_at: 2025-12-06 17:04:55
result_data:
  {"output": "Using /ansible/ansible.cfg as config file\n\nPLAY [Health check on target host] *********************************************\n\nTASK [Check if host is reachable (ping)] ***************************************\nok: [dev.prod.home] => {\"changed\": false, \"ping\": \"pong\"}\n\nTASK [Gather minimal facts] ****************************************************\nok: [dev.prod.home]\n\nTASK [Get system uptime] *******************************************************\nok: [dev.prod.home] => {\"changed\": false, \"cmd\": [\"uptime\"], \"delta\": \"0:00:00.005717\", \"end\": \"2025-12-06 12:04:57.400020\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-06 12:04:57.394303\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \" 12:04:57 up 6 days,  1:20,  0 users,  load average: 0.60, 0.25, 0.20\", \"stdout_lines\": [\" 12:04:57 up 6 days,  1:20,  0 users,  load average: 0.60, 0.25, 0.20\"]}\n\nTASK [Get disk usage] **********************************************************\nok: [dev.prod.home] => {\"changed\": false, \"cmd\": \"df -h / | tail -1 | awk '{print $5}'\", \"delta\": \"0:00:00.005490\", \"end\": \"2025-12-06 12:04:58.665493\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-06 12:04:58.660003\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"72%\", \"stdout_lines\": [\"72%\"]}\n\nTASK [Get memory usage (Linux)] ************************************************\nok: [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.005469\", \"end\": \"2025-12-06 12:04:59.949675\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-06 12:04:59.944206\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"51.5%\", \"stdout_lines\": [\"51.5%\"]}\n\nTASK [Get CPU temperature (ARM/SBC)] *******************************************\nok: [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\u00b0C\\\", $1/1000}'\\nelse\\n  echo \\\"N/A\\\"\\nfi\\n\", \"delta\": \"0:00:00.003358\", \"end\": \"2025-12-06 12:05:01.280708\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-06 12:05:01.277350\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"N/A\", \"stdout_lines\": [\"N/A\"]}\n\nTASK [Get CPU load] ************************************************************\nok: [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.003659\", \"end\": \"2025-12-06 12:05:02.498599\", \"msg\": \"\", \"rc\": 0, \"start\": \"2025-12-06 12:05:02.494940\", \"stderr\": \"\", \"stderr_lines\": [], \"stdout\": \"0.64\", \"stdout_lines\": [\"0.64\"]}\n\nTASK [Display health status] ***************************************************\nok: [dev.prod.home] => {\n    \"msg\": \"\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nHost: dev.prod.home\\nStatus: OK\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\nUptime:  12:04:57 up 6 days,  1:20,  0 users,  load average: 0.60, 0.25, 0.20\\nDisk Usage: 72%\\nMemory Usage: 51.5%\\nCPU Load: 0.64\\nCPU Temp: N/A\\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\\n\"\n}\n\nPLAY RECAP *********************************************************************\ndev.prod.home              : ok=8    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


id: 3d5798c3be2a4357998214acebee47a4
action: health-check
target: dev.lab.home
status: failed
playbook: health-check.yml
started_at: 2025-12-06 17:07:26.610426
completed_at: 2025-12-06 17:07:53.389071
created_at: 2025-12-06 17:07:26
result_data:
  {"output": "Using /ansible/ansible.cfg as config file\n\nPLAY [Health check on target host] *********************************************\n\nTASK [Check if host is reachable (ping)] ***************************************\n[ERROR]: Task failed: Failed to connect to the host via ssh: ssh: connect to host dev.lab.home port 22: Connection refused\nOrigin: /ansible/playbooks/health-check.yml:10:7\n\n 8     subcategory: health\n 9   tasks:\n10     - name: Check if host is reachable (ping)\n         ^ column 7\n\nfatal: [dev.lab.home]: UNREACHABLE! => {\"changed\": false, \"msg\": \"Task failed: Failed to connect to the host via ssh: ssh: connect to host dev.lab.home port 22: Connection refused\", \"unreachable\": true}\n\nPLAY RECAP *********************************************************************\ndev.lab.home               : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0   \n\n"}


# logs

level: INFO
source: adhoc_category
message: default
created_at: 2025-12-05 13:44:41
details:
  {"name": "default", "description": "Commandes g\u00e9n\u00e9rales", "color": "#7c3aed", "icon": "fa-terminal"}


level: INFO
source: adhoc_category
message: diagnostic
created_at: 2025-12-05 13:44:41
details:
  {"name": "diagnostic", "description": "Commandes de diagnostic", "color": "#10b981", "icon": "fa-stethoscope"}


level: INFO
source: adhoc_category
message: maintenance
created_at: 2025-12-05 13:44:41
details:
  {"name": "maintenance", "description": "Commandes de maintenance", "color": "#f59e0b", "icon": "fa-wrench"}


level: INFO
source: adhoc_category
message: deployment
created_at: 2025-12-05 13:44:41
details:
  {"name": "deployment", "description": "Commandes de d\u00e9ploiement", "color": "#3b82f6", "icon": "fa-rocket"}


level: INFO
source: adhoc_history
message: ls -l /etc
created_at: 2025-12-05 13:45:00
details:
  {"id": "adhoc_84d0a1e8", "command": "ls -l /etc", "target": "hp.nas.home", "module": "shell", "become": false, "category": "diagnostic", "description": null, "created_at": "2025-12-05T13:45:00.466287+00:00", "last_used": "2025-12-05T13:45:00.466287+00:00", "use_count": 1}


level: INFO
source: adhoc_history
message: id
created_at: 2025-12-05 13:46:58
details:
  {"id": "adhoc_6859894b", "command": "id", "target": "raspi.4gb.home", "module": "shell", "become": false, "category": "Tests", "description": null, "created_at": "2025-12-05T13:46:58.521762+00:00", "last_used": "2025-12-05T13:46:58.521762+00:00", "use_count": 1}


level: INFO
source: adhoc_history
message: df -h
created_at: 2025-12-05 14:43:49
details:
  {"id": "adhoc_5ddd1177", "command": "df -h", "target": "role_proxmox", "module": "shell", "become": false, "category": "maintenance", "description": null, "created_at": "2025-12-05T14:43:49.669048+00:00", "last_used": "2025-12-05T14:43:49.669048+00:00", "use_count": 1}


level: INFO
source: adhoc_history
message: ls -l /mnt/pve/SHARE_PROXMOX
created_at: 2025-12-05 14:44:28
details:
  {"id": "adhoc_d0ee2af6", "command": "ls -l /mnt/pve/SHARE_PROXMOX", "target": "role_proxmox", "module": "shell", "become": false, "category": "maintenance", "description": null, "created_at": "2025-12-05T14:44:28.455131+00:00", "last_used": "2025-12-05T14:44:28.455131+00:00", "use_count": 1}


level: INFO
source: adhoc_history
message: touch /mnt/pve/SHARE_PROXMOX/backup/test.txt
created_at: 2025-12-05 14:48:02
details:
  {"id": "adhoc_14d46589", "command": "touch /mnt/pve/SHARE_PROXMOX/backup/test.txt", "target": "role_proxmox", "module": "shell", "become": false, "category": "default", "description": null, "created_at": "2025-12-05T14:48:02.163865+00:00", "last_used": "2025-12-05T14:48:02.163865+00:00", "use_count": 1}


