"Después del juego es antes del juego"
Sepp Herberger

sábado, 23 de abril de 2016

Recopilar mediante puppet de forma masiva las claves de licencia de Windows 7/8/10.

Si en nuestra base de equipos instalados tenemos un buen número de instalaciones duales de Ubuntu+Windows no viene mal poder recopilar las claves de licencia de todos ellos. Es importante tener un inventario de licencias actualizado, así que vamos a ver como hacerlo de forma automática usando un facter de puppet.

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:



1 comentario: