Búsqueda de sitios web

¿Qué es la marioneta?


En DevOps, desea automatizar tantas tareas como sea posible. Configurar entornos manualmente lleva semanas con infraestructuras enormes. Cuando todo está configurado, estás apagando incendios en lugar de implementar nuevas soluciones efectivas, como los servidores Rancher.

Puppet ayuda a automatizar tareas manuales para aprovisionar sistemas e implementar aplicaciones rápidamente. La gestión dinámica de la infraestructura es el núcleo de Puppet.

Este artículo explica qué es Puppet, qué problemas resuelve y cómo utilizar Puppet para automatizar con éxito trabajos manuales como equipo de DevOps.

¿Qué es la marioneta?

Puppet es una herramienta IaC (Infraestructura como código) para administrar múltiples servidores. Escrito en Ruby (principalmente), Puppet opera en múltiples sistemas tipo Unix y también es compatible con Windows.

El software está muy maduro y su lanzamiento inicial se realizó en 2005. Puppet se presenta como software gratuito de código abierto y también está disponible una versión propietaria para infraestructuras complejas.

¿Para qué se utilizan los títeres?

Puppet automatiza la gestión e implementación de la configuración del servidor. El software permite manejar hilos y administrar estados en múltiples sistemas a la vez, y el enfoque reduce la configuración manual y la administración de servidores individualmente.

Puppet define el estado deseado para el sistema en lugar de cómo llegar allí. La configuración se aplica a varias plataformas y dispositivos y mantiene el estado en toda la infraestructura. En general, hay menos necesidad de que los administradores de sistemas apaguen incendios, lo que permite al equipo de DevOps implementar nuevas y mejores soluciones de servidor.

El módulo Puppet personalizado de phoenixNAP en GitHub le permite administrar los anclajes de CA Trust dentro del marco de certificados ca. Administre y automatice servidores Bare Metal Cloud con Puppet fácilmente.

Gestión de configuración de títeres

Los scripts de automatización ayudan a manejar tareas repetitivas, como instalar y configurar servidores. Sin embargo, cuando se trabaja con una infraestructura extensa, los scripts de automatización no escalan.

La gestión de la configuración proporciona una solución para configuraciones de infraestructura extensas. Las prácticas se consideran la columna vertebral de DevOps y permiten lanzamientos de software frecuentes y más confiables en un proceso de DevOps establecido.

La gestión de la configuración del servidor se produce gracias al enfoque de infraestructura como código. En el caso de Puppet, el código de administración del servidor está en código Puppet, que es similar a Ruby. El lenguaje es declarativo y describe una configuración basada en modelos.

¿Cómo funciona la marioneta?

Puppet utiliza un enfoque cliente-servidor y consta de los siguientes sistemas:

  • Puppet Master es un servidor con el demonio Puppet Master que administra información crucial del sistema para todos los nodos mediante manifiestos.
  • Los Puppet Agents son nodos que tienen Puppet instalado y el demonio Puppet Agent ejecutándose.

Las secciones siguientes explican los elementos y la terminología esenciales de Puppet, que ayudan a aclarar cómo funciona Puppet.

Topología y arquitectura de títeres

Puppet utiliza una arquitectura cliente/servidor que consta de Puppet Master y Puppet Agents. Puppet Agents utiliza el modo de extracción para sondear el maestro y recuperar información de configuración específica del nodo y del sitio.

La topología pasa por los siguientes pasos:

  1. Un nodo que ejecuta un demonio Puppet Agent recopila toda la información (hechos) sobre sí mismo y el agente envía los datos al Puppet Master.
  2. Puppet Master utiliza los datos para crear un catálogo sobre cómo se debe configurar el nodo y lo envía de vuelta al Puppet Agent.
  3. El Puppet Agent se configura a sí mismo en función del catálogo e informa al Puppet Master.

Puppet utiliza una utilidad llamada Facter para descubrir información del sistema. La herramienta viene con la instalación de Puppet de forma predeterminada.

Para instalar Puppet, siga nuestras guías:
Cómo instalar Puppet en Ubuntu 20.04
Cómo instalar Puppet en MacOS

Titiritero

El Puppet Master es un demonio que se ejecuta en un servidor dedicado. El Puppet Master es la fuente de información y la autoridad de configuración como nodo de servidor. El maestro envía instrucciones a todos los nodos del agente y supervisa la configuración del sistema.

El Titiritero es responsable de las siguientes tareas:

  • Creación de un catálogo para los agentes.
  • Transferencias de archivos desde un servidor de archivos a agentes.
  • Aceptar certificados SSL de agentes.
  • Almacenamiento de manifiestos de configuración.

Puppet utiliza la gestión de acceso a identidades a través de un usuario y grupo dedicado, brindando seguridad y exponiendo solo la información requerida a los agentes. Sin embargo, no todas las acciones requieren privilegios elevados.

Agentes títeres

El Agente Puppet es un demonio Puppet que se ejecuta en un sistema o nodo. Los agentes tienen ciertos privilegios en el nodo para aplicar catálogos de configuración extraídos del Puppet Master.

Para recibir permisos de comunicación, un agente solicita un certificado SSL durante el primer contacto con el maestro. El certificado se verifica cada vez que el agente solicita al maestro actualizaciones de configuración antes de enviar la información. Un maestro también se autentica ante los agentes para garantizar que la información de configuración sea correcta.

>

Los agentes títeres modifican la configuración del sistema y requieren permisos de root para realizar tareas.

Cifrado de marionetas y seguridad de las comunicaciones

Puppet utiliza OpenSSL para comunicación y seguridad. Basado en los protocolos SSL y TLS, Puppet utiliza cifrado SSL/TLS estándar y certificados SSL para la autenticación y verificación de agente/maestro. Además, Puppet cifra el flujo de tráfico entre los agentes y los servidores mediante SSL/TLS utilizando SHA-256 como hash predeterminado.

Los métodos de cifrado en Puppet garantizan lo siguiente:

  • Autenticación y verificación maestro/agente.
  • Prevención de filtraciones de datos entre maestro y agentes.

El maestro genera su propio certificado de CA, clave privada, CRL (lista de revocación de certificados) y un certificado de servidor. El certificado del servidor se envía a los agentes para habilitar la comunicación SSL y TLS.

Ventajas de las marionetas y por qué deberías utilizarlas

Puppet es una de las herramientas de automatización de gestión de configuración más antiguas y populares. A continuación se presentan cinco ventajas que constituyen buenas razones para empezar a utilizar Puppet.

1. Código abierto

Puppet es de código abierto, lo que hace que la tecnología sea extensible. Las bibliotecas y módulos personalizados enriquecen los proyectos individuales para adaptarlos a su caso de uso.

El código abierto también tiene el beneficio de tener una comunidad activa. Un montón de debates, foros y expertos están listos para ayudar y responder preguntas.

phoenixNAP apoya a la comunidad de código abierto y retribuye manteniendo repositorios públicos de GitHub con módulos para automatizar la implementación y administración del servidor.

2. Abstracción de recursos

Las tareas de configuración son repetitivas y, a menudo, se requieren los mismos pasos en servidores con diferentes sistemas operativos a través de pasos específicos de la plataforma. Recordar todos los comandos es una tarea imposible.

Facter ayuda a Puppet a descubrir los detalles y lograr la abstracción. Los datos específicos del sistema y los detalles del sistema operativo son familiares para Puppet gracias a Facter.

3. Idempotencia

Las configuraciones redundantes son un tema complejo cuando se trabaja con numerosos servidores, y Puppet pretende aplicar sólo aquellos cambios que afectan al sistema. Si se logra el estado deseado de la infraestructura, Puppet no ejecuta los comandos. Esta característica de Puppet se conoce como idempotencia, y ayuda a reducir la redundancia y aumentar la eficiencia.

4. Multiplataforma

Puppet cubre una amplia gama de plataformas, lo que aumenta la cantidad de servidores en el proceso de automatización de la configuración. La herramienta funciona en Windows, OS X, sistemas basados en Debian, Fedora, Gentoo, RHEL y Solaris.

5. Flexibles

El lenguaje Puppet incluye una forma de anular instrucciones y crear excepciones para diferentes escenarios. Puppet también ayuda a programar periódicamente acciones de mantenimiento específicas.

Conclusión

Puppet es una herramienta poderosa para administrar configuraciones y tareas del servidor, y es una excelente opción para servidores estables que no cambian dinámicamente o con frecuencia.

Para ver cómo se compara Puppet con otras tecnologías similares, consulte nuestro artículo comparativo sobre Terraform vs. Puppet.

Artículos relacionados