Chef o Puppet

123 views
Skip to first unread message

yaco

unread,
Apr 16, 2012, 9:50:11 AM4/16/12
to Dev/Ops
Que tal, buenos días. Estoy estudiando Chef y Puppet para decidir bien
en cual meterme a full.

Comencé leyendo sobre Chef (el "Test-Driven Infrastructure with Chef"
de OReilly), y ahora estoy con un par de libros de Puppet.

Algo que estoy considerando mientras sigo aprendiendo sobre Chef: leí
en varios artículos que Chef no maneja dependencias, como sí lo hace
Puppet. Lo poco que leí, me indica que esto puede ser una
característica clave al momento de elegir cual usar.

Al contrario, el manejo de inventario, parece ser una fortaleza de
Chef, aunque Puppet puede usar Foreman (http://theforeman.org/projects/
foreman/wiki/Features ), sigo investigando sobre esto al momento.

Estoy interesado en ver criterios técnicos puntuales de por qué una
herramienta puede funcionar mejor que la otra (inclusive bajo ciertos
escenarios), ya que no paro de encontrar posteos de blogs con
evaluaciones subjetivas ("se siente mejor X", "elegí lo que te sienta
mejor", etc.), sobre Chef especialmente.

¿Que tal sus experiencias?

Sldos.

yaco

yaco

unread,
Apr 16, 2012, 5:26:13 PM4/16/12
to Dev/Ops
Distribuí mi duda en posteos por varias listas y en la lista de Madrid-
Devops, obtuve excelentes respuestas.

https://groups.google.com/group/madrid-devops?hl=es

Abajo las pueden leer:
--------
Yo estoy con chef, por chef-server. Utilizo una instancia virtual
pequeña
para chef server, que configuro con chef-solo. Luego, hago bootstrap
en el
resto de las máquinas. Poco más. Fine tuning de algunas recetas, y a
correr.
No tengo experiencia con puppet, por lo que no puedo decirte.

---------
Es posible hacer manejo de inventario con Puppet,
http://docs.puppetlabs.com/guides/inventory_service.html
ah dice que est en desarrollo pero yo lo llevo usando un tiempo en el
dashboard (sin necesidad de usar la funcionalidad de ENC).
> Estoy interesado en ver criterios t cnicos puntuales de por qu una
> herramienta puede funcionar mejor que la otra (inclusive bajo ciertos
> escenarios), ya que no paro de encontrar posteos de blogs con
> evaluaciones subjetivas ("se siente mejor X", "eleg lo que te sienta
> mejor", etc.), sobre Chef especialmente.
> Que tal sus experiencias?

No puedo compararlos porque no conozco Chef. Simplemente empec con
puppet y me ha ido bien.
El nico dato comparativo que podr a aportar es que las recetas de
chef
son c digo ruby mientras que los manifiestos de puppet usan un
lenguaje
descriptivo propio. Depende de para quien esto es bueno o malo.

-------------
Esta es una aclaración que hice:

Muchas gracias por las respuestas, me son de utilidad.
Añado aquí detalles sobre las "dependencias" que mencioné en relación
con Puppet:

<charla de novato sobre Puppet, tomar con pinzas>
Tengo entendido que un manifiesto puede requerir como dependencia,
otro manifiesto, así por ejemplo, podríamos anidar requerimientos en
Puppet . Luego esos requerimientos son administrados por Puppet (por
ejemplo, luego de reiniciar un servicio, Puppet podría reiniciar
automáticamente otros por los requerimientos.
Voy a leer más y clarificar este tema con más precisión en otro
correo.
</ charla de novato sobre Puppet, tomar con pinzas>

Sldos.
yaco

--------------
Te iba a preguntar a qué te referías con las dependencias...
Chef tiene dependencias entre Cookbooks y puedes establecer que otras
recetas se llamen antes o después de hacer algo.
Más o menos lo que describes arriba se puede hacer con Chef.
No sé tanto de Puppet como para dar muchas diferencias técnicas, pero
por lo que he podido ver de ambos sistemas, son bastante similares en
cosas que se pueden hacer y depende más de si prefieres el estilo
declarativo de Puppet o algo más imperativo de Chef.
Casi todas las cosas que se pueden hacer con uno se pueden hacer con
el otro.
A mí las dos cosas que más me gustan de Chef (aparte de la
flexibilidad de extender cosas con Ruby) son los 'data_bags'[1] y
'knife'[2]. Knife es una herramienta muy potente de línea de comandos
con la que puedes hacer bootstraoping de máquinas, modificar la
configuración de los nodos, hacer búsquedas muy avanzadas sobre
atributos de nodos y ejecutar comandos en los nodos encontrados, etc.

---------------
Las dependencias no son entre manifiestos sino entre recursos
(paquetes,
servicios, ficheros, clases..). Por lo tanto si cambia un fichero
puedes
notificar a un servicio (se reinicia), o lo mismo se puede expresar a
la
inversa, un servicio puede requerir de un fichero (y si este cambia,
se
reinicia).

Yo uso require / notify. Se puede expresar de otra manera, con
flechas,
aqu se describen todas las opciones: Ref:

http://docs.puppetlabs.com/guides/language_guide.html#chaining-resources

Otro ejemplo de uso de dependencias es por ejemplo que tras a adir un
fichero de virtual host en apache, se notifique a un "exec" que hace
un
reload del servicio.

Adem s de las dependencias entre recursos se pueden definir "stages".
Sirven para establecer prioridades de ejecuci n. Los recursos se
pueden
asociar a stages y quedan aislados de otros recursos. Un ejemplo
pr ctico que uso:
stage { 'apt': before => Stage['main'] }
stage { 'puppet': before => Stage['apt'] }

El stage "main" es al que se asocian todos los recursos por defecto.
Con
estas l neas establezco que se ejecute el stage puppet, luego el
stage
apt y luego el stage main.

En el stage puppet se actualizan los paquetes de puppet y se
reinician
los demonios, en el stage apt se hace un apt-get update (si han
cambiado
los sources.list), en el stage main se hace todo lo dem s.

-------

Sldos.

yaco

Santiago Borrazás

unread,
Apr 16, 2012, 11:01:08 PM4/16/12
to dev...@googlegroups.com
Muy interesante, gracias por compartir Yaco!

MatiVillagra

unread,
Apr 18, 2012, 6:47:52 PM4/18/12
to dev...@googlegroups.com
En mi opinion cualquier es interesante de aprender, tanto puppet como chef.

Buenas dando vueltas en la red me encontre con esta web

http://www.devops.com.ar

Ahi hay un post de Chef ---- > http://www.devops.com.ar/blog/2012/02/03/empezando-con-chef/

Saludos!

yaco

unread,
Apr 21, 2012, 9:50:35 PM4/21/12
to dev...@googlegroups.com
Muy buen site Mati, ya estoy leyendolo, buena onda che,


Más links para leer:


abrazo,

yaco
Reply all
Reply to author
Forward
0 new messages