¿Cuál es la mejor manera de aprender Puppet?

“Mejores Prácticas para el Aprendizaje de Títeres”. Aunque hay varias formas en las que puede dominar el DSL de Puppet, elegí hablar específicamente de nuestra VM de Learning Puppet porque me parece que es la forma más rápida y sencilla de aprender Puppet. Para aquellos de ustedes que no saben, el Learning Puppet VM es una máquina virtual gratuita con una serie de tutoriales sobre el lenguaje y las herramientas de Puppet. ¡Compruébalo aquí!

Aunque principalmente aprendí cómo instalar el Learning Puppet VM durante el seminario web, recibí una serie de preguntas interesantes sobre una amplia gama de temas que se extendieron más allá del alcance del seminario web. Desafortunadamente, no tuve tiempo de responderlas todas, pero me gustaría compartir algunas de las preguntas que me parecieron particularmente interesantes y relevantes para aprender Títere y dominar conceptos básicos:

¿Cómo se distribuyen las configuraciones sobre los otros nodos? En un nivel alto, ¿cómo funciona?
Entonces aplicaste el .pp al Puppet Master, ¿sí? ¿Hay un nodo ya configurado como parte del tutorial?

En un entorno maestro / agente títere, el agente envía datos de hechos al maestro, que luego se utilizan para compilar un catálogo único de recursos para ser administrados específicamente para el agente solicitante. Esto garantiza que el agente solo reciba una lista de recursos y los estados en los que debe estar. Al escribir manifiestos, le está describiendo al maestro títere cómo quiere que se vean los recursos, luego utiliza esos manifiestos para compilar un catálogo único de recursos. para el agente, que luego se distribuyen de nuevo al agente. Toda esta comunicación ocurre en un túnel SSL con autenticación de certificado en ambas direcciones, por seguridad.

En el Learning Puppet VM, el nodo también es un agente de sí mismo. La segunda mitad de los Documentos de aprendizaje profundiza más a partir de la relación y comunicación entre el maestro y el agente.

¿Es la mejor práctica nombrar a la máquina títere-maestro “títere” para facilitar la administración (codificada en los clientes)?

Puppet intentará comunicarse con un maestro en “puppet”, la mayoría de los sistemas operativos de configuración de resolución agregarán el componente del dominio automáticamente (es decir, http://puppet.mycompany.com), pero Puppet no lo hace internamente. En el momento de la instalación, Puppet Enterprise sí incluye este nombre DNS alternativo en el certificado para el maestro, por lo que siempre que haya una entrada de DNS creada para apuntar a esto, permitiría una configuración mínima de los clientes para hablar con el maestro. El instalador de Puppet Enterprise Agent también le permite pasarle un archivo de respuestas que contiene el nombre del maestro, por lo que aún puede usar otros nombres de host que puedan ser más apropiados para el esquema de nombres de su organización.

Si hay una condición de error, en medio de la secuencia de comandos, ¿cómo recomendaría revertir lo que realmente se completó?

Puppet no envía ‘scripts’ a los agentes, sino que envía una lista de recursos y los estados en los que deben estar. El agente títere actúa sobre esa información para hacer que los recursos coincidan con el estado deseado. En ese sentido, si una ejecución de títere falla en el agente, informará cómo (no se pudo instalar un paquete, por lo que tampoco se aplicaron los recursos dependientes de ese paquete) falló, por lo que uno puede remediarlo. Dado que el resto de la ejecución de Puppet continuará administrando los recursos que no fallaron, se podría revertir y aplicar la versión anterior de los archivos de manifiesto (recomendamos almacenar todo el código de Puppet en un sistema de control de versión como Git o Subversión en parte por este motivo), o simplemente determine qué causó la falla (falta de acceso a un repositorio de Yum para instalar el paquete necesario), y una vez resuelto, simplemente realice la ejecución de Puppet nuevamente. Dado que Puppet incluye un modo NoOp, también puede simular todas sus carreras de títeres sin realizar cambios en su sistema. El uso del modo NoOp para simular cambios, junto con el hecho de que Puppet es idempotente y solo cambia las cosas en el sistema que necesita, y que puede modelar las dependencias explícitas entre los recursos, significa que si tiene una ejecución fallida de Puppet, puede Solucione fácilmente el fallo y una vez solucionado, podría realizar otro para solucionar el problema.

¡Espero que hayas encontrado útiles las preguntas y mis respuestas anteriores! Hemos recibido una gran cantidad de solicitudes para obtener más información de nivel de entrada y recursos sobre el universo de Puppet Enterprise, así que permanezca atento a más seminarios web similares a nuestras Mejores Prácticas de Aprender Puppet. Si tiene preguntas adicionales, no dude en escribirlas en los comentarios a continuación.

Puppet es una herramienta de administración de configuración que se utiliza para implementar, configurar y administrar servidores. Realiza las siguientes funciones:

  • Definir configuraciones distintas para cada host, y verificar y confirmar continuamente si la configuración requerida está en su lugar y no está alterada (si se modifica, Puppet volverá a la configuración requerida) en el host.
  • Escalado dinámico y escalado de máquinas.
  • Proporcionando control sobre todas sus máquinas configuradas, para que un cambio centralizado (maestro-servidor o basado en repo) se propague a todos, automáticamente.

Arquitectura de marionetas:

Títere utiliza una arquitectura maestro-esclavo. El siguiente diagrama muestra lo mismo:

Las siguientes funciones se realizan en la imagen de arriba:

  • El agente títere envía los hechos al maestro títere. Los datos son básicamente un par de datos clave / valor que representa algún aspecto del estado de esclavo, como su dirección IP, tiempo de actividad, sistema operativo o si se trata de una máquina virtual. Explicaré Hechos en detalle más adelante en el blog.
  • Puppet Master usa los hechos para compilar un catálogo que define cómo debe configurarse el esclavo. Catálogo es un documento que describe el estado deseado para cada recurso que Puppet Master administra en un Esclavo. Explicaré en detalle los catálogos y recursos más adelante.
  • Puppet Slave informa al maestro indicando que la configuración está completa, lo que se puede ver en el panel de control de Puppet.

Caso de uso de marionetas:

Entendamos las aplicaciones de Puppet utilizando un estudio de caso. Si eres un entusiasta del póquer o si alguna vez has jugado a juegos en línea, entonces debes haber oído hablar de Zynga. Es el desarrollador de juegos sociales más grande del mundo. La infraestructura de Zynga utiliza decenas de miles de servidores tanto en la nube pública como en los centros de datos privados. Al principio, estaban usando un proceso manual, que incluía kickstarters y postinstalaciones para obtener cientos de servidores en línea.

Ahora, veremos a qué problemas se enfrentaron con este proceso:

  • Escalabilidad y consistencia : Zynga estaba experimentando un crecimiento fenomenal y su infraestructura necesaria para mantenerse a la par con la industria. Las soluciones basadas en scripts y los enfoques manuales no eran suficientes para sus necesidades.
  • Infraestructura portátil : Zynga necesitaba una forma de aprovechar un enfoque de administración de configuración consistente tanto en su infraestructura de nube pública como en sus propios centros de datos.
  • Flexibilidad : dada la diversidad de las diversas propiedades de los juegos de Zynga, era importante que el equipo pudiera coincidir rápidamente con la configuración correcta para la máquina correcta.
  • Información sobre la infraestructura : a medida que la organización maduraba, era más importante contar con un método automatizado para visualizar las propiedades de cada máquina.

La empresa era lo suficientemente inteligente como para darse cuenta rápidamente de la necesidad de un proceso automatizado, incluso antes de que alcanzaran el escalamiento rápido, que es cuando Puppet entró en escena. Entendamos cómo el títere contribuye a su organización.

  • Velocidad de recuperación : el equipo de operaciones de producción puede implementar rápidamente la configuración correcta en el cuadro correcto. Si un sistema se reconfigura de forma inapropiada, Puppet lo revertirá automáticamente a un último estado estable, o proporcionará los detalles necesarios para remediar manualmente un sistema rápidamente.
  • Velocidad de implementación : Puppet ha brindado importantes ahorros de tiempo en la forma en que el equipo de operaciones brinda servicios para los estudios de juegos.
  • Consistencia de los servidores : el marco guiado por modelos de Puppet asegura implementaciones consistentes. Según Mark Stockford, Vicepresidente de Operaciones de Producción , Zynga, “es evidente que hemos ahorrado tiempo. La belleza de usar Puppet es que nos permite entregar configuraciones consistentes en todos nuestros servidores en un corto período de tiempo cada vez “.
  • Colaboración : tener un enfoque basado en modelos facilita compartir configuraciones en toda la organización, lo que permite que los desarrolladores y los equipos de operaciones trabajen juntos para garantizar que la entrega de nuevos servicios sea de una calidad extremadamente alta. Más de una docena de personas del equipo de Zynga se entrenaron en Puppet. Este conocimiento se ha difundido en todo el equipo y en los equipos de operaciones dentro de cada estudio de juego individual.

Para profundizar en el conocimiento de Puppet, puede consultar el video a continuación. También incluye prácticas.

Sugeriría usar los recursos de aprendizaje que Puppet Labs proporciona en
Entrenamiento de Puppet Labs.

Este recurso incluso incluye una máquina virtual con todo lo que se puede instalar cuando se analizan ejemplos. También tienen eventos de capacitación en línea y en vivo que es posible que desee considerar.

Si está deseando ir a la ruta de bricolaje, diría que use la máquina virtual o un proveedor en la nube con documentación (como @Linode) que lo guiará a través de la configuración de un maestro y agentes como se describe en la siguiente guía:

– Cómo instalar un Puppet Master y un agente de nodos

¡Espero que esto ayude!

Los títeres básicos son simples.

  1. Pon tu mano recta en el aire.
  2. Dobla tu muñeca 90 °, manteniendo la mano plana.
  3. Mueva el pulgar hacia el centro de la palma de la mano, una vez más manteniendo la mano plana. NO pliegue su mano en los nudillos.
  4. Ahora cuenta hasta diez, dejando caer el pulgar con cada sílaba. Siete tiene dos sílabas …
  5. Si los dedos superiores se movieron, no lo estás haciendo bien … cuando hablas, solo cae tu mandíbula …
  6. Una vez que domine las sílabas mientras habla, active las noticias y haga que su títere hable con el presentador de noticias. Hago esto en el carro todo el tiempo.
  7. Ahora agrega emociones. Está TODO en la muñeca. Consejo hacia el lado para preguntas. Apunta la mano hacia abajo para que esté triste. Rebotar para emocionado. Avanza para enojado.

Ahora eres un titiritero!

La forma en que aprendí fue en un proyecto afortunadamente.

  • Leí los documentos para entender algunos de los fundamentos.
  • Probé algunos ejemplos simples y probé algunos ejemplos más avanzados.
  • Configurar MI IDE y mirar ejemplos de otras personas. (Tuvo la suerte de tener otros desarrolladores para hacer algunas preguntas que sabían títere pero Google ayudó y otros foros para aumentar mi eficiencia)

Creo que si lo inicias sin un proyecto y quieres tenerlo para tu CV, podrías intentar elegir una aplicación simple que estés desarrollando e intentar automatizarla. Puppet tiene una pequeña curva de aprendizaje, pero estuvo relativamente al día en 1 a 2 semanas, lo suficiente como para desarrollarse con confianza.

Las ventajas parecen estar en torno a lo que puede hacer el maestro para actualizar a su agente para mantenerlos bajo control en caso de que cambie la configuración. Necesitará saber una buena cantidad de linux con títeres y cualquier rubí ayudaría (pero este último es bastante fácil de recoger a través de títeres)

Si eres un principiante, ve a sysadmincasts.com y consulta el tutorial de Puppet allí. Es una pequeña y puede empezar. Más tarde, adelante con la documentación de títeres. Puppet tiene una gran documentación en Getting Started with Puppet

Si tiene alguna pregunta, también puede recibir respuesta de Puppet pro’s en IRC #puppet. ¡¡Feliz aprendizaje!!

Cuando estaba aprendiendo Puppet, encontré que la VM de aprendizaje era un buen comienzo para aprender la consola Enterprise. Sin embargo, para aprender realmente Puppet, instalé la versión de código abierto que no tiene una interfaz de usuario web. Aprendí a escribir el código Puppet observando el módulo Puppet NTP desde la forja y cómo se escribió.

Puedes aprender Puppet aquí: https://hackr.io/tutorials/learn

El uso de la versión de código abierto me permitió conocer mejor los componentes individuales de Puppet y cómo configurarlos, por ejemplo, R10k, Hiera, etc. Sin embargo, depende de los requisitos de su organización, supongo, ya sea que utilicen la consola Enterprise para asignar clases, por ejemplo. Mi organización solo usa la versión de código abierto con Hiera. Me tomó unos meses antes de poder escribir cómodamente el código de Puppet sin ver la documentación (que a veces es un poco inconexa y está obsoleta en algunos lugares).

Puppet le brinda un enfoque programado para revisar, transmitir, trabajar y verificar en el futuro la mayoría de su producto, independientemente de dónde se ejecute. Con el enfoque de Puppet, te das cuenta de lo que tienes para que puedas controlar e implementar la coherencia en forma transversal sobre él. Obtenga más información en DevOps Online Training Bangalore.

Una forma sencilla de instalar y configurar Puppet en CentOS 6

Puedes leer estos tutoriales:

  1. Valoraciones de ‘Puppet Tutorial’ para aprender Puppet | Hackr.io haga clic en el botón “Visitar tutorial”.
  2. Tutorial de marionetas

Espero que esto ayude.

Sigue el enlace de abajo para aprender cosas básicas y comenzar con Puppet.

Marioneta

Probablemente pida ayuda a un maestro titiritero, diría yo. Un profesor experimentado puede acortar su proceso de aprendizaje. Ahora depende del tipo de títeres que vas a usar y de lo que demuestras que planeas hacer.