Sunteți pe pagina 1din 10

Servicio y administracin de redes

Puppetmaster

Jorge Isaac Zavaleta Escalante

Por: Villa Rivera Daniel Lujan lvarez Audelio De Dios Fonseca Vidrio Luis Alfonso

INTROUDCCION Por medio de este documento, explicaremos y resaltaremos los puntos importantes al trabajar con un servicio que sirve para la administracin centralizada de equipos. El cual es llamado Puppetmaster y con ayuda de un servicio para el cliente puppetd facilitan el trabajo al administrador de la red, de los cuales veremos sus configuraciones y capacidades a lo largo de este.

PUPPET es una herramienta que facilita el trabajo de un administrador de sistemas permitindole hacer instalaciones, actualizaciones, cambios de configuraciones, etc. En equipos remotos. Lo que evita tener que desplazar un tcnico para realizar dichas modificaciones. Puppet se compone de varios elementos:

Un servidor -> puppetmaster. Un servicio para los clientes -> puppetd. Un lenguaje declarativo para definir lo que se quiere hacer en los clientes. Un sistema para obtener datos de los clientes -> facter.

Un detalle importante para entender puppet es tener en cuenta que el servidor define, mediante el lenguaje declarativo de puppet, los estados que se desea tener en los clientes. Y no es necesario definir las instrucciones que hay que ejecutar para lograr esos estados. Adems hay un principio fundamental en puppet: el principio de idempotencia. No importa el nmero de veces que se ejecute una regla. El efecto debe ser como si slo se hubiera ejecutado una vez. Adems, puppet se encargar de no ejecutar una regla si el objetivo final se ha conseguido. Comunicacin entre el cliente y el servidor puppet. La comunicacin entre el cliente y el servidor es cifrada mediante SSL. Para garantizar que esta comunicacin sea cifrada, el servidor puppet tiene una pequea autoridad certificada que maneja certificados X509. Instalacin de puppet. Para instalar puppet, tendremos que hacer varias cosas:

Instalar un servidor puppet. Configurar el servidor puppet. Instalar el cliente puppet en todas las mquinas que queramos administrar. Configurar el cliente puppet.

Instalar un servidor puppet. Instalar un servidor puppet es tan sencillo como instalar el paquete puppetmaster: # apt-get install puppetmaster Se resolvern todas las dependencias y se instalarn todos los paquetes necesarios. Configurar el servidor puppet. Primer paso.- Configurar el servidor de ficheros. Para poder servir ficheros a los clientes puppet, lo primero que tenemos que hacer es modificar el fichero/etc/puppet/fileserver.conf. En este fichero especificaremos a qu rango de mquinas de la red queremos servirles ficheros.

En este fichero tambin se puede usar deny para denegar el acceso a ciertas mquinas. Y da igual el orden que coloquemos el allow y el deny. El allow prevalece sobre el deny. Adems, tanto en el allow como en el deny, se puede especificar tanto un rango de red como un nombre de dominio. Segundo paso.- Modificar el el fichero /etc/puppet/puppet.conf Por defecto, este fichero contiene la localizacin de los directorios de logs, de datos, de certificados ssl, etc. Como los valores por defecto nos sirven para hacer una configuracin bsica, tan slo le aadimos las dos lneas arriba de [agent].

En la primera lnea aadida (certname=puppetdptos) estamos indicando que el servidor de certificacin se llamapuppetdptos (es el nombre de la mquina en la que hemos instalado puppetmaster). En la segunda (autosign=false) estamos indicando al servidor que no debe firmar las peticiones de certificados que le lleguen de forma automtica. Qu es un manifiesto? Manifiesto: Puppet es un sistema declarativo, en donde las operaciones son aplicadas y no ejecutadas, estas operaciones son definidas en lenguage puppet dentro de archivos de texto denominados manifiestos. Por cada servidor puppet existe un manifiesto central, definido en /etc/puppet/manifests/site.pp, donde se configuran todos los sitios (clientes), mediante un nodo para cada uno de ellos.

Tercer paso.- Crear el esqueleto manifests. Si no estuviera creado el directorio de clases y/o el directorio manifests, lo creamos: # mkdir -p /etc/puppet/manifests/clases Cuarto paso.- Crear el fichero site.pp Este es un fichero de control fundamental del servidor puppet. Podramos crearlo con: # touch /etc/puppet/manifests/site.pp Mdulo: Un mdulo es una coleccin de recursos, clases, archivos, definiciones y plantillas fcilmente redistribuible usado para configurar Dnsmasq o Apache o un sitio de reportes o una aplicacin en Python determinada. Cada uno de estos se escribe en lenguaje Puppet, un lenguaje declarativo bastante sencillo basado en Ruby en el cul podemos definir toda la implementacin para nuestros clientes Los mdulos se encuentran dentro de /etc/puppet/modules, y como mdulos tenemos:

apache dhcpd networking nfs sendmail vsftpd de las cuales, estn administradas en carpetas y dentro de estas se encuentra la carpeta de manifests o manifiestos /etc/puppet/modules/apache/manifests Que a su vez cuenta con el archivo init.pp para configurar el servicio Ejemplo de apache: /etc/puppet/modules/apache/manifests/init.pp class apache::services { package {"httpd": ensure => installed } service {"httpd": ensure => running } } Con installed verifica si est instalado, si no lo est pues lo instala y con service corre dicho servicio o hace andarlo, esto se presenta en los 5 servicios que utilizamos y configuramos en nuestro trabajo.

Despus configuramos nodos y templates : classes nodes.pp site.pp templates.pp En /etc/puppet/manifests/nodes.pp se pone el nodo y los servicios que administras Ejemplo: Nodo-> node 'basenode' { clase-> include baseclass } node 'daniel.com' inherits basenode { include apache::services include vsftpd::services include nfs::services include sendmail::services } En /etc/puppet/manifests/templates.pp Creas una clase para todos los nodos y tambien pones el networking para resolv class baseclass { include networking::resolver }

node default { include baseclass }

Importar nodos y templates En el directorio /etc/puppet/manifests/site.pp es donde importas nodes.pp y el templates.pp import "nodes" import "templates" #import "classes/*.pp" filebucket { main: server => puppet } En el siguiente directorio para que esa sea la configuracin del cliente del resolv.conf, cambiamos permisos /etc/puppet/modules/networking/manifests/init.pp configuramos class networking::resolver{ file { "/etc/resolv.conf": ensure=>present, source=> "puppet:///modules/networking/resolv.conf", group=> "root", owner=> "root", mode => "0755" } }

Una vez terminada la configuracin del servidor puppet, si no est iniciado, lo iniciamos: # /etc/init.d/puppetmaster start

Instalar un cliente puppet. Instalar un cliente puppet es tan sencillo como instalar el paquete puppet: # apt-get install puppet Se resolvern todas las dependencias y se instalarn todos los paquetes necesarios. Configurar el cliente puppet. Configurar el cliente puppet es ms sencillo an. Lo nico que tendremos que hacer es editar el fichero/etc/puppet/puppet.conf y aadir una lnea server=servidorpuppet. En la lnea server=XXXXXXXXXXXXX podemos indicar:

La direccin ip del servidor puppet. O el nombre de dicho servidor, si tenemos un servidor de dns en la red.

El contenido bsico del fichero /etc/puppet/puppet.conf en el cliente podra ser el siguiente: [main] server=puppetdptos logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter # pluginsync=true Funcionamiento de puppet y comprobaciones. No olvidemos que para que el sistema funcione, deben estar iniciados puppetmaster en el servidor y puppet en el cliente. Si no lo estn, los iniciamos: # /etc/init.d/puppetmaster start (en el servidor) # /etc/init.d/puppet start (en el cliente) Si hubiera algn problema en el funcionamiento, lo mejor es echar un vistazo a los logs, que se encuentran almacenados en /var/log/puppet

El tiempo predeterminado de contacto del cliente con el servidor es de 30 minutos, cosa que podemos cambiar (Se define en segundos). Para probar si una tarea se ejecuta correctamente en un cliente, paramos puppet y ejecutamos puppetd -t: # /etc/init.d/puppet stop # puppetd -t Una vez comprobado que las tareas se han ejecutado, volvemos a iniciar el servicio: # /etc/init.d/puppet start

Surgieron vario problemas en el desarrollo de las configuraciones, al parecer el proxy de la red no nos dejaba utilizar algunas caractersticas o las bloqueaba, ya que el puppetmaster apareca como dying en su status y al reiniciarlo funcionaba, pero volva a dicho estado.

Bibliografa Material de Recurso proporcionado en el taller de Administracin de redes impartido por Gorilla Nation http://enavas.blogspot.com/2009/06/administracion-centralizada-de-equipos.html http://www.cadiidxa.lunasexta.org/?p=970

S-ar putea să vă placă și