Instalacion y configuracion de Puppet 3.6 en modo MASTER/AGENT RHEL/CentOS/SL 5/6/7

Instalacion y configuracion de Puppet en modo MASTER/AGENT RHEL/CentOS/SL 5/6/7

En caso de necesitar usar Puppet en modo MASTER/AGENT es necesario tener un servidor dedicado para la tarea de "Puppet Master", basicamente es el encargado de publicar y asignar los modulos puppet para cada equipo que los solicite.

La arquitectura del modo MASTER/AGENT o MASTE/SLAVE de puppet es la siguente:

Cada equipo se conecta al Puppet MASTER a traves de un agente llamado "puppet-agent". Dicha conexion se realiza sobre HTTPS a traves del puerto 8140/tcp.

Instalacion del Puppet MASTER

Para proceder con la instalacion y configuracion del puppet master es necesario configurar los repositorios oficiales de puppetlabs.

La configuracion del repositorio varia segun la version del S.O.

  • Para RHEL/CentOS/SL 5.x
    sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-5.noarch.rpm
  • Para RHEL/CentOS/SL 6.x
    sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm     ##> En caso de ser RHEL 6
  • Para RHEL/CentOS/SL 7.x
    sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm     ##> En caso de ser RHEL 7

Instalacion de paquetes

Una vez configurado el repositorio procedemos a instalar los paquetes necesarios con el comando yum

yum install -y puppet-server

Creacion de certificado para el Master

Para crear el certificado es necesario especificar todos los nombres DNS a los que debe responder el mismo, en la mayoria de los casos dicho nombre es el FQDN de nuestro Master

Para dicha configuracion es necesario editar el archivo /etc/puppet/puppet.conf en la seccion [ main ] se debe de agregar los nombres DNS para los cuales respondera el certificado

[main]
dns_alt_names = puppet,puppet.example.com,puppetmaster01

Configuracion del servicio puppetmaster

Una vez instalados los paquetes necesarios se debe editar el archivo /etc/sysconfig/puppet

vim /etc/sysconfig/puppet

Dicho archivo debe quedar de la siguiente manera

# The puppetmaster server
#PUPPET_SERVER=puppet
 
# If you wish to specify the port to connect to do so here
PUPPET_PORT=8140
 
# Where to log to. Specify syslog to send log messages to the system log.
PUPPET_LOG=/var/log/puppet/puppet.log
 
# You may specify other parameters to the puppet client here
PUPPET_EXTRA_OPTS=--waitforcert=500

Iniciar y habilitar el servicio Puppet Master

Una vez configurado nuestro puppet master procedemos a iniciar el servicio y luego habilitar el mismo

Iniciar el servicio

service puppetmaster start

Habilitar el inicio automatico del servicio

chkconfig puppetmaster on

Creacion de modulos

Para crear los modulos es necesaria la siguiente estructura de directorio, cambiando el "modulo" por el nombre que tendra el modulo a crear

mkdir -p /etc/puppet/modules/"modulo"
 
mkdir -p /etc/puppet/modules/"modulo"/files
 
mkdir -p /etc/puppet/modules/"modulo"/manifests

Asignar modulos a clientes

Para asignar los modulos a los clientes es necesario modificar el archivo /etc/puppet/manifests/site.pp:

vim /etc/puppet/manifests/site.pp

Agregando los siguiente por cada cliente

hostnamedelcliente{
  include nombredelmodulo1
  include nombredelmodulo2
}

Instalacion y configuracion del puppet-agent en los equipos Clientes/Slave/Agentes

Una vez que se configuro el master se pasa a configurar los clientes donde correra el puppet-agent

Instalacion del puppet-agent

Para instalar el puppet-agent tambien es necesario configurar los repositorios oficiales de puppetlabs. Se puede realizar dicha tarea siguiendo los pasos descriptos para la instalacion del puppet-master

Luego se procede a instalar el paquete con el comando yum

yum install -y puppet

Configuracion del agente

Una vez que se instalo el paquete se debe modificar el archivo /etc/puppet/puppet.conf en la seccion [ agent ] agregar lo siguiente:

vim /etc/puppet/puppet.conf

server = puppet.example.com   ## (Esto se debe cambiar por el nombre DNS del servidor puppetmaster)
report = true
pluginsync = true

Iniciar y habilitar el servicio puppet-agent

Se debe tener cuenta que el cliente debe poder llegar al Master al puerto 8140/tcp

Inicio del puppet-agent

service puppet start

Habilitamos el servicio para que se levante cada vez que el equipo inicia

chkconfig puppet on

Firmar los certificados del cliente para que pueda establecer conexion con el Master

Una vez que se inicio el servicio en el cliente deberia de haber creado un certificado el mismo es enviado al puppet master, para que el cliente pueda consultar al Master es necesario firmar dicho certificado.

Dento del puppet-master ejecutamos podemos consultar la lista de certificados pendientes de firma

puppet cert list

Los certificados tienen como nombre el FQDN del cliente.
Finalmente se procede a firmar el certificado del cliente

puppet cert sign nombredelcertificado

Deja un comentario