La clave de licencia se almacena en una tabla de la BIOS del equipo y se puede mostrar con el comando:
~# hexdump -s 56 -e '"MSDM key: " /29 "%s\n"' /sys/firmware/acpi/tables/MSDM
Con un facter de puppet tendremos el sistema ideal para recoger el dato de forma automatizada:~# cat /usr/lib/ruby/vendor_ruby/facter/windows_key.rb
# Archivo /usr/lib/ruby/vendor_ruby/facter/windows_key.rb
# Se utiliza para obtener, si es posible, la licencia del windows de la máquina donde se ejecuta.
#
if File.exist?('/sys/firmware/acpi/tables/MSDM') and key = Facter::Util::Resolution.exec(%Q(hexdump -s 56 -e '/29 "%s"' /sys/firmware/acpi/tables/MSDM))
Facter.add("WINDOWSKEY") do
setcode { key }
end
end
####
Para distribuirlo a todos los clientes usamos esta regla puppet desde una clase que llamaremos "nombre_clase":.....
#Facter puppet para sacar la clave de Windows OEM de siatics/infolabs y (por probar) portatiles HP
file {"/usr/lib/ruby/vendor_ruby/facter/windows_key.rb":
owner => root, group => root, mode => 644,
source => "puppet:///modules/nombre_clase/windows_key.rb",
}
.....
Una vez distribuida a todos los clientes, obtendremos en cada cliente la clave con: ~# facter windowskey
7WNG2-PXY6F-XXXXX-YYYYY-ZZZZZ
Y, lo mas importante, todos los facter se guardan en el servidor puppet, en los ficheros de facts con formato yaml. De esta forma tendremos centralizado en un sitio todas las claves de licencia recopiladas:~# grep -ir windowskey /var/lib/puppet/yaml/facts/*
pc-o23.vguadalupe.yaml: windowskey: "7WNG2-PXY6F-XXXXX-YYYYY-ZZZZZ"
..........................
Como guinda al pastel solo falta desvelar como recopilar las licencias de nuestros Linux:
Qué ca..... eres, por lo de la guinda¡¡¡¡
ResponderEliminar