PDF de programación - Orquestación de la configuración con Puppet

Imágen de pdf Orquestación de la configuración con Puppet

Orquestación de la configuración con Puppetgráfica de visualizaciones

Publicado el 25 de Junio del 2017
857 visualizaciones desde el 25 de Junio del 2017
559,1 KB
61 paginas
Creado hace 10a (21/06/2013)
Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

Orquestación de la Configuración

con Puppet

Por:
José Luis Jaime Gonzalez
Junio de 2013

Página 1

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

Índice de contenido

1 - Introducción ............................................................................................................3
2 - ¿Que es Puppet?.......................................................................................................4
3 - Componentes y Características................................................................................5
4 - Como Funciona........................................................................................................8
5 - Instalación y Configuración básica de Puppet.........................................................9
5 .1 - Instalación en el Servidor...............................................................................9
5.2 - Instalación en el Cliente.................................................................................10
6 - Creación de los Módulos.......................................................................................12
6.1 - Estructura de los módulos..............................................................................12
6.2 - Recursos.........................................................................................................14
6.3 - Modulo Apache..............................................................................................17
6.4 - Subclases........................................................................................................21
6.5 - Variables.........................................................................................................24
7 - Modulo LAMP......................................................................................................29
7.1 - Modulo Aplicación TinytinyRSS...................................................................37
8 - Modulo Haproxy....................................................................................................43
8.1 - Automatización de un nodo con Haproxy......................................................50
9 - Puppet Dashboard..................................................................................................57
10 - Webgrafia.............................................................................................................61

Página 2

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

1 - Introducción

El proyecto tiene como objetivo aprender a utilizar puppet como
herramienta para administrar la configuración de varios servidores de
forma sencilla y automatizada.

Veremos como instalar y configurar puppet tanto en el lado del servidor
como en el cliente.

Crearemos varios módulos para automatizar la instalación y
configuración de apache, php y mysql y una aplicación php.

También veremos como instalar de forma automática un balanceador de
carga (http), en este caso haproxy y mediante un sistemas de scripts
automatizaremos el proceso de añadir un nuevo nodo al balanceador de
forma automática cuando se llegue a un numero de peticiones
concurrentes.

Por ultimo vemos como instalar y configurar un dashboard o herramienta
web para monitorizar puppet de forma gráfica pudiendo comprobar el
estado de los nodos, los cambios realizados, fallos etc..

Todo el código de este proyecto esta alojado en mi github:
https://github.com/joseluisjaime/puppet-project

Para ver el código mas claro se recomienda verlo en el repositorio.

Página 3

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

2 - ¿Que es Puppet?

Puppet es una herramienta desarrollada por Puppetlabs para administrar
la configuración de sistemas Unix y windows de forma declarativa, esto
quiere decir, que que no le decimos a la maquina lo que tiene que
ejecutar, si no, el estado final en el que queremos que se encuentre.

Para entenderlo de una forma clara:

package {'apache2': 
  ensure => installed,
}

Con esta simple declaración, puppet es capaz de instalar apache2, en
ningún caso nosotros hemos indicado si tiene que usar apt en caso de
debian, yum en caso de centos, solo indicamos que este seguro de que
el paquete apache2 este instalado.

En resumen, puppet nos permite realizar la configuración de forma
abstracta, especificando el estado en el que queremos que se encuentre
la maquina y no las ordenes que tiene que ejecutar, esto nos permite que
con la declaración anterior, instalar el paquete independientemente del
gestor de paquetes que tenga el sistema.

Página 4

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

3 - Componentes y Características

Puppet esta desarrollado en ruby, actualmente existen dos versiones una
libre y otra enterprise :

Puppet open source, bajo licencia Apache 2.0 para las versiones 2.7 en
adelante y GNU GPL para las anteriores.

Puppet enterprise, es la solución de pago que ofrece PuppetLabs,
aunque puedes probar el producto con un limite de 10 nodos.

En el siguiente imagen podemos ver las diferencias:

Página 5

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

En este proyecto se usa Puppet open source.

Los requisitos básicos para Puppet 3 son:

Ruby: 1.8.7 o 1.9.3

Facter: Que es una herramienta que nos permite recolectar información
de los nodos tales como ip, hostname, nombre del sistema, versión etc.

Hiera: Es una herramienta que nos permite organizar y externalizar las
variables de nuestros módulos, haciéndolos muchos mas eficientes y
permitiéndonos tener un mayor control de la configuración.

Mas adelante veremos algunos ejemplos de hiera y facter para entender
su funcionamiento,

Puppet soporta una gran cantidad de sistemas lo que lo hace aun mas
potente:

Linux:

– Debian, versión 5 o superior.
– Ubuntu 8.04 o superior.
– Red Hat Enterprise, versión 5 o superior.
– Fedora, version 15 o superior.
– SUSE Enterprise Server, versión 11 o supeior.
– Gentoo Linux
– Mandriva Corporate Server 4
– ArchLinux

Página 6

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

Unix:

– Mac OS X, versión 10.5 o supeior.
– Oracle Solaris, versión 10 o superior.
– AIX, versión 5.3 o superior.
– FreeBSD 4.7 o superior.
– OpenBSD 4.1 o superior.
– HP-UX

Windows:

– Windows Server 2003 y 2008
– Windows 7

¿Que nos permite hacer puppet?

– Gestión de paquetes.
– Gestión de configuraciones/ficheros
– Gestión de scripts, cron, mount ...
– Gestión de servicios
– Gestión de usuarios, grupos

Página 7

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

4 - Como Funciona.

Puppet tiene una estructura de Cliente-Servidor, por lo tanto debemos
instalar software tanto en la parte de servidor, como en los clientes.

En el servidor estará configurado con Puppetmaster, que sera el que
administre los demás nodos y un cliente puppet en los nodos.

La comunicación entre el cliente y el servidor es cifrada mediante SSL y
uso de certificados, puppetmaster incluye una pequeña entidad autoridad
certificadora que maneja certificados X509.

El proceso de comunicación básica seria el siguiente:

Los clientes, periódicamente solicitan al servidor el estado en el que
tienen que estar.
El servidor coge todos los recursos* que están asignados al nodo que ha
hecho la petición y compila un catalogo* que envía al nodo.
El cliente lee el catalogo y aplica las configuraciones necesarias para
replicar el estado con el que se ha configurado previamente.

Recurso: Un recursos puede ser un fichero, la instalación de un paquete,
el estado de un servicio, etc..

Catalogo: Se trata del estado exacto en el que tiene que estar la
maquina. ( paquete instalado, fichero con la configuración, servicio
corriendo etc..)

Página 8

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

5 - Instalación y Configuración básica de Puppet.

5 .1 - Instalación en el Servidor

En este proyecto vamos a trabajar con la versión 3.2 de puppet sobre
debian wheezy.
En el lado del servidor el paquete principal que vamos a instalar se llama
Puppetmaster.

Actualmente en los repositorios de debian esta puppet pero en su versión
2.7, en este caso como vamos a usar una mayor, vamos a instalar los
repositorios de PuppetLabs, para ello:

Instalamos los repositorios:

wget http://apt.puppetlabs.com/puppetlabs­release­wheezy.deb
dpkg ­i puppetlabs­release­wheezy.deb

Actualizamos los repositorios:

apt­get update

Ahora instalamos el paquete puppetmaster, también se nos instalara por
dependencia, los demás paquetes necesarios como ruby, facter, hiera
etc..

apt­get install puppetmaster

Ya tendríamos Puppetmaster funcionando correctamente.

Página 9

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

5.2 - Instalación en el Cliente.

Para los clientes no es necesario tener la ultima versión por lo que
podemos usar directamente los repositorios para instalar puppet.

En el caso del cliente el paquete que tenemos que instalar es puppet.

apt­get install puppet

Esto nos resolverá todas las dependencias necesarias.

Una vez instalado tenemos que realizar unas pequeñas configuraciones.

Cambiamos el siguiente parámetro a yes en “/etc/default/puppet” para
que se inicie el servicio cuando se inicie el sistema:

START=yes

Agregamos las siguientes lineas a “/etc/puppet/puppet.conf” y reiniciamos
el servicio.

[agent]
server=master.example.com

En mi caso tengo definido en el “/etc/hosts” de los clientes una entrada
con el master:

192.168.122.2 master.example.com master

Página 10

Orquestación de la configuración con Puppet

I.E.S Gonzalo Nazareno

Para que el cliente pueda comunicarse con el servidor, debemos firmar
su certificado, para ver la lista de nodos que tenemo
  • Links de descarga
http://lwp-l.com/pdf4643

Comentarios de: Orquestación de la configuración con Puppet (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad