Charla sobre gestión de servidores con Puppet realizada en los cursos del GUL de la Universidad Carlos III de Madrid por Javier Turégano.
La charla se divide principalmente en 3 partes: describir el problema que encaramos cuando intentamos administrar el creciente número de servidores que requiere cualquier entidad que consuma servicios de IT, algunas de las posibles soluciones que podemos encontrar y qué características debe tener una solución a este problema y por último cómo Puppet puede ser esta solución y una pequeña introducción a cómo funciona.
24. Instalación
En el servidor:
apt-get install puppetmaster
En los clientes:
apt-get install puppet
Por defecto intentarán conectarse al maestro
en el nombre de host puppet
25. Configuración Cliente
Los clientes buscan al maestro en:
Puppet
Podemos indicar dónde se encuentra
editando /etc/puppet/puppet.conf
[puppetd]
server=maestro.midominio.es
26. Firmamos el certificado de
cliente
En el puppetmaster ejecutamos:
puppetca –list
servidor1.midominio.com
puppetca --sign servidor1.midominio.com
notice: Signed certificate request for
servidor1.midominio.com
27. Configurando el servidor de
ficheros
En el puppetmaster editamos
/etc/puppet/fileserver.conf
[files]
path /etc/puppet/files
# allow *.example.com
# deny *.evil.example.com
allow 192.168.0.0/16
28. Firmamos el certificado de
cliente
En el puppetmaster ejecutamos:
puppetca –list
servidor1.midominio.com
puppetca --sign servidor1.midominio.com
notice: Signed certificate request for
servidor1.midominio.com
29. Firmamos el certificado de
cliente
En el puppetmaster ejecutamos:
puppetca –list
servidor1.midominio.com
puppetca --sign servidor1.midominio.com
notice: Signed certificate request for
servidor1.midominio.com
32. Tipos de recursos
Acceso y permisos: file, group, user, ssh
Paquetes: package, yumrepo
Servicios: service, cron
Sistema de ficheros: file, mount, zfs, zone, zpool
Equipos: host
Correo: mailalias, maillist
Ejecución: scripts: exec
OSX: macauthorization, mcx, computer
33. Nuestra primera clase
class ssh {
package { ssh:ensure => installed }
file { sshd_config:
name => “/etc/ssh/sshd_config”,
source => “puppet://ssh/sshd_config”
}
service { sshd: ensure => running }
}
34. Formato de un módulo
/etc/puppet/modules/<nombre-modulo>
/files
/conf-file1
/conf-file2
/manifests
/init.pp
/templates
/template1.erb
/template2.erb
35. Formato de un módulo
/etc/puppet/modules/<nombre-modulo>
/files
/conf-file1
/conf-file2
/manifests
/init.pp
/templates
/template1.erb
/template2.erb
36. Los nodos
La configuración de los nodos la
encontramos en /etc/puppet/manifests/
site.pp → Conf genérica
nodes/servidor1.midominio.com
nodes/servidor2.midominio.com
41. Plantillas
Contenido de la plantilla tempaltes/run.conf.erb:
JAVA_OPTS="-server -Xms<%= xms %>m -Xmx<%= xmx
%>m -XX:MaxPermSize=<%= maxpermsize %>m
42. Facter
Con facter podemos obtener datos del equipo que se está
configurando y usarlo en plantillas o cómo variables:
architecture => amd64
domain => midominio.es
facterversion => 1.5.1
fqdn => servidor1.midominio.es
hardwareisa => unknown
hardwaremodel => x86_64
hostname => servidor1
id => root
interfaces => eth0
45. Titulo Autor Licencia
IMG_0696 Jemimus Reconocimiento-NoComercial-CompartirIgual 2.0 Genérica
The main cast Tim Dorr Reconocimiento-NoComercial-CompartirIgual 2.0 Genérica
The Planet Data Center The Planet Reconocimiento-CompartirIgual 2.0 Genérica
Dead Admin Arthur40A Reconocimiento-CompartirIgual 2.0 Genérica
DataCenter Work stars6 / Leonardo Rizzi Reconocimiento-CompartirIgual 2.0 Genérica
dsc_9120_v2 Francesco Crippa Reconocimiento 2.0 Genérica
Colourful army maistora Reconocimiento-NoComercial-SinObraDerivada 2.0
Genérica
Head in Hands Alex E. Proimos Reconocimiento 2.0 Genérica
Crisp, Apple, Strudel,
Schnitzel and Noodles
Caro's Lines Reconocimiento-NoComercial-CompartirIgual 2.0 Genérica
Potion Bottles MrBobDobolina Reconocimiento-NoComercial-CompartirIgual 2.0 Genérica
Tekenen Inferis Attribution-NonCommercial-ShareAlike 2.0 Generic
Listado de ilustraciones