puppet: Instalación del servidor

Después de que algunas personas me hayan pedido que haga una breve guía de cómo instalar y usar puppet por fin he sacado tiempo para hacerla. En una serie de entradas vamos a ir viendo desde cómo instalar puppet a cómo hacer algo más complejo con nuestro servidor, pasando lógicamente por la conexión del primer cliente.
Como sistema operativo para el servidor vamos a emplear Debian Squeeze (actual estable). Para las pruebas vamos a emplear una máquina llamada test, que hará de servidor. La idea es dejar un servidor puppet al que se puedan conectar los clientes y lógicamente, un servidor de certificados para que todas las comunicaciones vayan también cifradas.
En la versión estable de Debian, ahora mismo tenemos la versión 2.6.2 de puppet, tanto para servidor como para agente.
shell> apt-cache search puppet
puppet-common - Centralized configuration management
puppet        - Centralized configuration management - agent
puppetmaster  - Centralized configuration management - master
shell> apt-cache show puppetmaster 
Package:        puppetmaster
Priority:       optional
Section:        admin
Installed-Size: 384
Maintainer:     Puppet Package Maintainers
Architecture:   all
Source:         puppet
Version:        2.6.2-5+squeeze6
...
shell> apt-cache show puppet
Package:        puppet
Priority:       optional
Section:        admin
Installed-Size: 336
Maintainer:     Puppet Package Maintainers
Architecture:   all
Version:        2.6.2-5+squeeze6
...
Puesto que empleamos paquetes del repositorio oficial, la instalación es muy sencilla,
shell> apt-get install puppetmaster
Esto instalará todos los paquetes necesarios para que nuestro servidor funcione correctamente y nos lo dejará como un servidor del sistema. Servicio que únicamente nos quedará por configurar para que todo trabaje a la perfección. Cuando termine la instalación, dependerá del número de paquetes que necesites descargar y de la velocidad de tu línea, pasaremos a la parte de configuración.
En el fichero /etc/default/puppetmaster tenemos que cerciorarnos de que se permita el arranque del servicio. Puesto que vamos a emplear la instalación para un número pequeño de equipos, no vamos a configurar las opciones de alto rendimiento con proxy's de puppet.
...
START=yes
...
A continuación vamos a permitir el acceso a ficheros a los equipos y dominios que se van a conectar a nuestro equipo. Puppet por defecto contiene todos los ficheros de los módulos en /etc/puppet/files, por lo que vamos a permitir el acceso al contenido de dicha carpeta a los clientes. Para ello editamos el fichero /etc/puppet/fileserver.conf y permitimos las IP's y dominios que nos interesen. El mismo acceso habilitaremos para los plugins, por si fuese necesario sincronizar alguno desde el master.
# This file consists of arbitrarily named sections/modules
# defining where files are served from and to whom
[files]
   path  /etc/puppet/files
   allow 192.168.1.0/24
   allow *.domain_1.es
   allow *.domain_2.com

[plugins]
   path  /var/lib/puppet/plugins
   allow 192.168.1.0/24
   allow *.domain_1.es
   allow *.domain_2.com
Y finalmente sólo queda configurar el servicio propiamente dicho. En versiones anteriores existían varios ficheros de configuración, uno para el servidor y otro para el cliente, sin embargo en las últimas versiones dichos ficheros se han unificado, dejando un único fichero de configuración, /etc/puppet/puppet.conf, con varias secciones.
Vamos por lo tanto a realizar una configuración básica para poder comenzar a trabajar con puppet. Aunque existen muchas configuraciones posibles, prácticamente las opciones por defecto permiten ya emplear el servicio desde un primer momento. Un ejemplo de configuración válida es,
[main]
   logdir           = /var/log/puppet
   vardir           = /var/lib/puppet
   ssldir           = /var/lib/puppet/ssl
   rundir           = /var/run/puppet
   confdir          = /etc/puppet
   factpath         = $vardir/lib/facter
   templatedir      = $confdir/templates
   reportdir        = /var/lib/puppet/reports
   modulepath       = $confdir/modules

   config           = $confdir/puppet.conf
   manifestdir      = $confdir/manifests
   manifest         = $confdir/manifests/site.pp
   fileserverconfig = $confdir/fileserver.conf
Tras finalizar la configuración arrancamos el servicio y comprobamos que todo se inicia correctamente.
shell> /etc/init.d/puppetmaster start
Starting puppet master.

shell> tail -f /var/log/daemon.log
Nov 01 17:35:44 test puppet-master[6650]: Starting Puppet master version 2.6.2
Si todo está correcto tendremos un mensaje similar al que apareció en mis log's, diciendo que todo está correcto y que el servicio se arrancó correctamente.
Ahora lo único que queda es configurar el fichero site.pp para indicarle que cargue los módulos y manifiestos que nos interese a nosotros. Puesto que este arranque es muy sencillo, únicamente vamos a configurar lo siguiente en /etc/puppet/manifests/site.pp
import "nodes/*.pp"
Y creamos la carpeta nodes y dentro el fichero default.pp que contendrá la definición a aplicar por defecto a los hosts. En nuestro caso, la creación de un simple fichero.
node default {
 file { "/tmp/prueba":
  owner  => root,
  group  => root,
  mode  => 755,
  ensure => present;
 }
}
Llegados a este punto, ya estamos listos para recibir las conexiones de los clientes, que veremos en el siguiente post.
Si este artículo te ha interesado, quizás te puedan interesar también:


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios