Ueber die Weihnachtsvorlesungsfreiezeit ausprobiert, wie man Maschinen automatisch
runterfahren und ueber Wake-on-LAN morgens wieder aufwecken kann. Dabei ein paar
Maschinen gefunden, die kein korrektes BIOS Setup dafuer hatten.
Ok, wir wollen wissen, ob auf allen Maschinen die BIOS Passwoerter gesetzt sind (minimale
physikalische Sicherheit und so). Ok, dmidecode -t 24 (na logisch, 24!) liefert die
Daten, muss aber als root laufen. Also kann zabbix das nicht (zum Glueck). Weil puppet
eh als root laeuft, ein kleines Fact-Plugin gebaut, dass jetzt auch diese Info aus
dmidecode zum Fact macht. Aber zabbix kann die facts wieder nicht sehen, weil man dafuer
facter -p als root laufen lassen muss. Aber puppet zieht auf dem master die client facts
in YAML files. Also kann man auf dem puppetmaster die YAML factfiles durchgreppen. Aber
das Directory, wo die drinliegen, gehoert puppet und zabbix kann da nicht reinschaun. Also
einen cronjob gebaut, der die YAMLfiles durchgreppt und Namen von Rechnern ohne BIOS Passwd
in eine Datei in /var/tmp ausgibt. Danach einen UserParameter fuer zabbix gebaut, der
diese Datei liest, daraus ein Zabbix Item fuer den puppetmaster gemacht, und darauf einen
Trigger mit Level "Disaster" gesetzt, wenn der String nicht leer ist. Tut. Dabei rausgefunden,
dass /etc/zabbix/zabbix_agentd.d/ vollkommen ignoriert wird, und auf wie viele Arten man
ein ZBX_NOTSUPPORTED erzeugen kann.