Gestionando servidores con Puppet

download Gestionando servidores con Puppet

If you can't read please download the document

description

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.

Transcript of Gestionando servidores con Puppet

  • 1. Gestionando servidores con Puppet Javier Turgano Molina Cursos GUL Universidad Carlos III 09 Nov 2010

2. ndice El problema Posibles soluciones Puppet Dudas y preguntas 3. Qu es eso de administrar? Todas las redes/sistemas se administran igual? 4. Y an nos faltaba... La nube 5. Pero entonces... Se trata slo de una cuestin de tamao? 6. Gestin Homognea de Servidores Heterogneos 7. Evitar errores humanos 8. Reproducibilidad Vuelta atrs 9. Estandarizar Compartir 10. Posibles Soluciones 11. Posibles Soluciones PXE/Kickstar Plantillas (Virtualizacin/Cloud) Red Hat Satelite/Network/Spacewalk Ubuntu Landscape Cobbler 12. Posibles Soluciones (II) CfEngine Puppet Chef Capistrano ControlTier 13. Comparativa En Wikipedia: http://en.wikipedia.org/wiki/Comparison_of_o pen_source_configuration_management_soft ware 14. Framework libre para la gestin de configuracin y automatizacin de centros de datos. Puppet 15. Lenguaje declarativo (qu y no cmo) Arquitectura cliente/servidor (SSL) Escrito en ruby (extensible) Mdulos (forja) Sistema de plantillas Facter Dashboard Componentes 16. Quin usa Puppet? 17. Instalacin En el servidor: apt-get install puppetmaster En los clientes: apt-get install puppet Por defecto intentarn conectarse al maestro en el nombre de host puppet 18. Configuracin Cliente Los clientes buscan al maestro en: Puppet Podemos indicar dnde se encuentra editando /etc/puppet/puppet.conf [puppetd] server=maestro.midominio.es 19. 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 20. 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 21. 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 22. 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 23. Definiendo un recurso file { "/etc/passwd": owner => "root", group => "root", mode => 644, } 24. 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 Ejecucin: scripts: exec OSX: macauthorization, mcx, computer 25. 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 } } 26. Formato de un mdulo /etc/puppet/modules/ /files /conf-file1 /conf-file2 /manifests /init.pp /templates /template1.erb /template2.erb 27. Formato de un mdulo /etc/puppet/modules/ /files /conf-file1 /conf-file2 /manifests /init.pp /templates /template1.erb /template2.erb 28. Los nodos La configuracin de los nodos la encontramos en /etc/puppet/manifests/ site.pp Conf genrica nodes/servidor1.midominio.com nodes/servidor2.midominio.com 29. Nodo por defecto node default { include sudo include vim } 30. Un nodo tipo servidor node basicserver inherits default { include ntp::client include amanda::client include nagios::nrpe package { ["rsync", "debconf-utils", "less", "pciutils"]: ensure => present } case $os { "Debian": { include aptconf } } } 31. Nodo concreto node servidor1.midominio.es inherits basicserver { include ssh file { /etc/passwd: source => puppet://private/etc/passwd } } 32. Plantillas define jboss::configrun( $xms=512 , $xmx=1024 , $maxpermsize=128 ) { file { "/opt/jboss/bin/run.conf": content => template("jboss/run.conf.erb"), owner => "jboss", group => "jboss"; } } 33. Plantillas Contenido de la plantilla tempaltes/run.conf.erb: JAVA_OPTS="-server -Xmsm -Xmxm -XX:MaxPermSize=m 34. Facter Con facter podemos obtener datos del equipo que se est configurando y usarlo en plantillas o cmo 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 35. Dashboard 36. www.turegano.net www.twitter.com/setoide Licencia Creative Commons Reconocimiento 2.5 de Espaa Contacto 37. Titulo Autor Licencia IMG_0696 Jemimus Reconocimiento-NoComercial-CompartirIgual 2.0 Genrica The main cast Tim Dorr Reconocimiento-NoComercial-CompartirIgual 2.0 Genrica The Planet Data Center The Planet Reconocimiento-CompartirIgual 2.0 Genrica Dead Admin Arthur40A Reconocimiento-CompartirIgual 2.0 Genrica DataCenter Work stars6 / Leonardo Rizzi Reconocimiento-CompartirIgual 2.0 Genrica dsc_9120_v2 Francesco Crippa Reconocimiento 2.0 Genrica Colourful army maistora Reconocimiento-NoComercial-SinObraDerivada 2.0 Genrica Head in Hands Alex E. Proimos Reconocimiento 2.0 Genrica Crisp, Apple, Strudel, Schnitzel and Noodles Caro's Lines Reconocimiento-NoComercial-CompartirIgual 2.0 Genrica Potion Bottles MrBobDobolina Reconocimiento-NoComercial-CompartirIgual 2.0 Genrica Tekenen Inferis Attribution-NonCommercial-ShareAlike 2.0 Generic Listado de ilustraciones