Verzamel snel systeeminformatie met Facter

Met het programma Facter vraag je allerlei systeeminformatie op een consistente manier op, onafhankelijk van het onderliggende besturingssysteem, of dat nu Linux, Windows, FreeBSD of Solaris is.

Facter is een onderdeel van het configuratiebeheersysteem Puppet, maar kan ook los hiervan gebruikt worden om systeeminformatie op een consistente manier op te vragen. Facter is geschreven in de programmeertaal Ruby en werkt dan ook op alle platforms waarop Ruby (en Puppet) beschikbaar is. De installatie gaat het eenvoudigst met Ruby's pakketbeheerder RubyGems:


$ sudo gem install facter



Feiten
Als je de opdracht facter eenvoudig zonder parameters aanroept, krijg je alle 'feiten' ('facts') te zien die Facter kent, in de vorm van paren sleutel => waarde, zoals architecture => x86_64 of kernel => Linux. Als je parameters aan de opdracht facter doorgeeft, worden die parameters als sleutels geļnterpreteerd en krijg je alleen de feiten te zien die met die sleutels overeenkomen. Bijvoorbeeld:


facter memoryfree memorysize swapfree swapsize
memoryfree => 2.65 GB
memorysize => 3.78 GB
swapfree => 4.78 GB
swapsize => 4.78 GB



Naast de processorarchitectuur, de kernel en het geheugenverbruik kun je ook de netwerkinterfaces en toegekende ip-adressen opvragen, de hostnaam, mac-adressen, het kernelversienummer, het besturingssysteem, het aantal processoren, de tijdzone, de uptime, of je SELinux draait (als het om een Linux-distributie gaat), of het om een virtuele of fysieke computer gaat, enzovoort.

En of je nu Windows, Linux, FreeBSD of Solaris draait, je geeft op alle platforms dezelfde sleutel in om de gezochte informatie op te vragen. Je kunt ook zelf feiten toevoegen aan Facter. Hiervoor moet je wat Ruby-code schrijven, waarin je dan specificeert hoe je dat nieuwe feit op verschillende besturingssystemen opvraagt.