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
907 visualizaciones desde el 25 de Junio del 2017
165,0 KB
27 paginas
Creado hace 10a (21/06/2013)
Orquestación de la Configuración

con Puppet



Por: José Luis Jaime Gonzalez

Índice

● - Problemas comunes de un sys admin.
● - ¿Que es puppet?
● - ¿Como funciona?
● - Recursos
● - Creación de un modulo
● - Demo
● - Preguntas



Problemas comunes de un sys admin.

● Tareas repetitivas tiende a provocar errores.
● Poca portabilidad entre instalaciones (distintos

sistemas operativos, distintas versiones etc.)

● Esfuerzo directamente proporcional al numero

de servidores.

● ¿Que servicios están activos?, ¿Que usuarios

están habilitados etc..?



¿Que es puppet?

● Puppet es una herramienta desarrollada por
PuppetLabs para administrar la configuración
de sistemas Linux/Unix y Windows.

● Basado en Ruby
● Utiliza un lenguaje declarativo



¿Que es un lenguaje declarativo?

● En puppet se describe el estado en el que
quieres que este una maquina, y no como
lograr ese estado.
Ejemplo:
package {'apache2': service {'apache2':
ensure => installed,
}

}

ensure => running,



¿Como funciona?

● Puppet tiene una estructura de Cliente-Servidor.

– Puppetmaster Servidor
– Puppet Clientes

● La comunicación va cifrada mediante SSL,

certificados.

● Funcionamiento de tipo “pull”.



¿Como funciona?



¿Como funciona?

Facter: ¿Cuales son
mis datos?
Ip: 192.168...
Hostname: client1
Osfamily: Debian



¿Como funciona?

Hola, Master, necesito
un catalogo. Aquí están
mis datos.



¿Como funciona?

¿Esta este nodo en mi
Lista?



¿Como funciona?

Si, es un servidor Web.
Compilando un catalogo
a medida.



¿Como funciona?

Aquí esta tu catalogo
Envíame un reporte de
Como te ha ido.



¿Como funciona?

He terminado, te mando
Los resultados.



¿Como funciona?

● ¿Que es un catalogo?

– Un catalogo es un conjunto de recursos que

definen el estado en el que tiene que estar un
sistema.

● ¿Que es un recurso?

– Un recurso puede ser la instalación de un

paquete, un servicio, un fichero etc..



Recursos

● Paquetes, usuarios:

package { 'apache package':
ensure => installed,
name => "apache2",
}
user {'www-data':
ensure => present,
}



Recursos

● Ficheros:

file {'index.html apache':
ensure => file,
owner => www-data,
group => www-data,
mode => 0640,
source => “puppet:///modules/apache/index.html”
path => "/var/www/index.html",
}



Recursos

● Servicios, Comandos genericos:

service {'apache service':
ensure => running/stopped,
name => "apache2",
}
exec { "Extract tar.":
path => "/bin:/usr/bin",
unless => "find /tmp/prueba",
command => "tar -xzf /tmp/prueba.tar.gz",
}



Creación de un modulo.

● Estructura Módulos

– /etc/puppet/modules/

● Apache

– Files : Ficheros estáticos
– Templates : Ficheros dinámicos
– Tests : Nos sirve para testear el modulo.
– Manifests: init.pp, declaración de los recursos..



Creación de un modulo.

● Estructura Nodos

– /etc/puppet/manifests/

● nodes.pp : Fichero donde se definen los nodos

node 'prueba.example.com' {
include apache_simple
}

● site.pp : En este fichero importamos nodes.pp

import “nodes.pp”



Creación de un modulo.

● Problema de hacer los módulos de esta

manera:

– Claridad. 10 paquetes, 12 ficheros, 5 servicios.
– Flexibilidad, ¿puedo reutilizar el modulo con

distinta configuración?

– Compatibilidad, ¿es mi modulo compatible con

varios sistemas?



Creación de un modulo.

● Claridad

-Dividir el modulo en subclases

● Init.pp

– install.pp : Instalación de paquetes
– config.pp : Ficheros de configuración
– service.pp: Servicios



Creación de un modulo.

● Compatibilidad, Flexibilidad

- Uso de variables:

● Directorio index.html => /var/www/index.html
● Directorio index.html => ${directorio_index}

- Externalizar las variables:

● Uso de HIERA



Creación de un modulo.

● ¿Que es Hiera?

– Es un componente que viene de forma nativa a

partir de la versión 3 de puppet.

– Nos proporciona la posibilidad de externalizar

las variables de los módulos.

– Nos proporciona una estructura jerárquica.
– Podemos usar ficheros .yaml, json, mysql etc.



Creación de un modulo.

Ejemplo: SNMP

● Centos => net-snmp

$snmp_package = hiera('snmp_package')

● Debian => snmp

package {'snmp package':

:hierarchy:

- %{::osfamily}

- common

● hieradata/

ensure => installed,

name => ${snmp::snmp_package}

}

– Debian.yaml : snmp_package: 'snmp'
– Centos.yaml: snmp_package: 'net-snmp'



Demo

● Modulo Lamp

– Apache
– Php
– Mysql

● Modulo Tinyrss sobre Lamp
● Modulo Haproxy
● Scripts Automatización haproxy
● Puppet Dashboard



Preguntas

● Aclaración de Conceptos, dudas, consultas etc.



FIN
  • Links de descarga
http://lwp-l.com/pdf4644

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