Nuevo módulo puppet para usar como nombre de host el UUID en lugar del FQDN | Algo de Linux

jueves, 7 de julio de 2016

Nuevo módulo puppet para usar como nombre de host el UUID en lugar del FQDN

Como ya comenté en un post anterior, cuando propuse utilizar mi script sinc_puppet en todos los centros, en lugar del que se utiliza actualmente, para hacer un uso menos agresivo de puppet, me comentó Ismael que el motivo por el que se forzaba tanto puppet era lograr actualizar las máquinas, sobre todo teniendo en cuenta que en muchas ocasiones tienen el mismo nombre porque el administrador aún no lo ha cambiado y se desea pasar tareas cuanto antes.

En este caso, mi propuesta fue cambiar la forma de identificar las máquinas, utilizando el UUID en lugar del nombre FQDN. Ésto es algo muy sencillo de lograr mediante un módulo que suministre una plantilla para cambiar el fichero /etc/puppet/puppet.conf, de manera que defina un certname diferente para cada host basado en su uuid.

He estado utilizando este módulo puppet con todas las máquinas y cuando se lo he aplicado a los miniportátiles APD, me he dado cuenta de que ¡todos tienen el mismo uuid! Así que, tendremos que utilizar otro método que consiste en generar un uuid mediante uuidgen:

/etc/puppet/modules/puppet/manifests/init.pp
class puppet {

  package { "uuid-runtime":
     ensure => installed
  }

  $uuidhost = inline_template("<%= `test -x /usr/bin/uuidgen && /usr/bin/uuidgen -t` %>")

  exec { "add_certname":
     command => "sed -i '/server=puppetinstituto/a certname=$uuidhost' /etc/puppet/puppet.conf",
     unless => 'grep "certname=..*$" /etc/puppet/puppet.conf',
     require => Package ["uuid-runtime"]
  }

}
La herramienta uuidgen puede generar un uuid:
  • aleatorio: uuidgen -r
  • basado en tiempo: uuidgen -t
Por defecto, genera un uuid aleatorio.

 https://mega.nz/#!1kEhzQzD!-jaiFOEkjiZZ7jxHyR6U_8xsj1qrJAgrYqOyqPnk6gY

Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: