Kleine Systeminformation mit Puppet-Facts

Mit Puppet kann man recht einfach Systeminformationen sammeln.

Hierfür gibt es das Puppet-Programm facter, mit dessen Hilfe man sich durch eine hierarchische Struktur von Systeminformationen arbeiten kann.

facter

Die Ausgabe ist so lang, wie unübersichtlich. Diese lässt sich, wie gesagt, einschränken.

facter disks

{ sda => { model => “SAMSUNG XXX”, size => “476.94 GiB”, size_bytes => 512110190592, vendor => “ATA” }, sr0 => { model => “CDDVDW XXX”, size => “1.00 GiB”, size_bytes => 1073741312, vendor => “TESTcorp” } }

Wollte ich nun die Größe der ersten Festplatte erfragen, würde das eben wie folgt aussehen:

facter disks.sda.size

476.94 GiB

Mit diesem Wissen kann nun eine kleine Datei, die Systeminformationen enthält, erstellt werden. Einzig die Notation ist etwas abweichend. Denn facter ist bei Puppet eine vordefinierte Variable, die ihrerseits die Informationen enthält.

file { 'SysInfo':
  ensure  => file,
  path    => '/tmp/sysinfo',
  owner   => 'root',
  group   => 'root',
  mode    => '0644',
  content => "SystemInfo

  CPU: ${facts['processors']['count']}
  MODEL: ${facts['processors']['models'][0]}
  RAM: ${facts['memory']['system']['available']}
  UPTIME: ${facts['system_uptime']['uptime']}
  ",
}