From e02a1ef28d8be503072187e931bea54bb6d7a214 Mon Sep 17 00:00:00 2001 From: Raphael Dannecker Date: Thu, 3 Apr 2025 09:57:01 +0200 Subject: [PATCH] Activate reporter by setting `misc_reporter_serv` to server name --- roles/lmn_misc/defaults/main.yml | 2 +- roles/lmn_misc/tasks/main.yml | 9 ++++---- roles/lmn_misc/templates/reporter.j2 | 33 ++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 5 deletions(-) create mode 100755 roles/lmn_misc/templates/reporter.j2 diff --git a/roles/lmn_misc/defaults/main.yml b/roles/lmn_misc/defaults/main.yml index 35fb229..67eb203 100644 --- a/roles/lmn_misc/defaults/main.yml +++ b/roles/lmn_misc/defaults/main.yml @@ -3,6 +3,6 @@ misc_avoid_suspend: true misc_pwroff: true misc_pwroff_idle: true misc_pxe_first: false -misc_reporter: false +misc_reporter_serv: "" misc_clonescreen: false misc_clonescreen_mode: "1920x1080@60" diff --git a/roles/lmn_misc/tasks/main.yml b/roles/lmn_misc/tasks/main.yml index 05ad1fd..0fb9c7c 100644 --- a/roles/lmn_misc/tasks/main.yml +++ b/roles/lmn_misc/tasks/main.yml @@ -162,10 +162,11 @@ # Install reporter - name: Copy reporter - ansible.builtin.copy: - src: reporter + ansible.builtin.template: + src: reporter.j2 dest: /usr/local/sbin/ mode: '0755' + when: misc_reporter_serv | length > 0 - name: Provide services and timers for reporter ansible.builtin.copy: @@ -175,13 +176,13 @@ loop: - reporter.service - reporter.timer - when: misc_reporter + when: misc_reporter_serv | length > 0 - name: Enable reporter.timer ansible.builtin.systemd: name: reporter.timer enabled: true - when: misc_reporter + when: misc_reporter_serv | length > 0 # Prepare CloneScreen on Presenter PCs diff --git a/roles/lmn_misc/templates/reporter.j2 b/roles/lmn_misc/templates/reporter.j2 new file mode 100755 index 0000000..6a19bec --- /dev/null +++ b/roles/lmn_misc/templates/reporter.j2 @@ -0,0 +1,33 @@ +#!/usr/bin/bash +# +# Send stdout of some commands to monitoring server. +# Collect the reports with 'nc -u -k -l 1234' on 'sendto'. +# Use /bin/nc.openbsd, /bin/nc.traditional seems not to work. +# +set -eu + +sendto="{{ misc_reporter_serv }} 1234" +n=0 + +cmds=( + 'uname -a' + 'tail -1 /var/local/ansible-stamps' + 'ip route list default' + 'ip link show | \ + sed -nE -e "s/^[2-9]: (\S+): .+/\1/p" -e "s/.+ether ([0-9a-f:]+) .+/\1/p" | \ + paste - -' +) +# 'w' +# 'uptime' +# 'ls -d --full-time /home/ansible/.ansible/tmp/' +# 'ip addr show' +# 'apt list --upgradeable -o Apt::Cmd::Disable-Script-Warning=true' + +r="$HOSTNAME ------- $(date --rfc-3339=seconds) ------- +$(for c in "${cmds[@]}" ; do + n=$(( n + 1 )) + echo -n "$n" + eval "$c" | sed 's/^/\t/' +done | sed "s/^/$HOSTNAME /") +## -------------------------------------------------" +echo "$r" | nc -w 1 -u $sendto