En informática , Puppet es una herramienta de gestión de configuración de software que incluye su propio lenguaje declarativo para describir la configuración del sistema . Es una solución impulsada por modelos que requiere conocimientos de programación limitados para su uso. [4]
Desarrollador (es) | Marioneta |
---|---|
Versión inicial | 2005 |
Lanzamiento estable | 6.16.0 (3 de junio de 2020 [1] ) [±] |
Repositorio | |
Escrito en | C ++ y Clojure desde 4.0, [2] Ruby |
Sistema operativo | Linux , similar a Unix , Microsoft Windows |
Tipo | |
Licencia | Marioneta de código abierto: Apache para> 2.7.0, GPL para versiones anteriores. Puppet Enterprise: propietario [3] |
Sitio web | marioneta |
Puppet es una producción de Puppet, Inc, fundada por Luke Kanies en 2005. El producto principal de Puppet, Puppet Enterprise, [5] es una versión con soporte comercial de su producto de código abierto. El software de automatización de Puppet utiliza el lenguaje declarativo de Puppet para administrar varias etapas del ciclo de vida de la infraestructura de TI , incluido el aprovisionamiento , el parcheo , la configuración y la administración del sistema operativo y los componentes de la aplicación en los centros de datos empresariales y las infraestructuras en la nube . [6]
Puppet utiliza un modelo de núcleo abierto ; su versión de software libre fue lanzada bajo la versión 2 de la Licencia Pública General GNU (GPL) hasta la versión 2.7.0, [7] y las versiones posteriores usan la Licencia Apache , mientras que Puppet Enterprise usa una licencia propietaria.
Construido como software multiplataforma , Puppet y Puppet Enterprise operan en múltiples sistemas similares a Unix (incluidos Linux , así como Solaris , BSD , Mac OS X , AIX , HP-UX ) y tienen soporte para Microsoft Windows . [8] [9] Puppet en sí está escrito en Ruby , mientras que Facter está escrito en C ++ , mientras que Puppet Server y Puppet DB están escritos en Clojure . [10]
Diseño
Puppet está diseñado para administrar la configuración de sistemas similares a Unix y Microsoft Windows de forma declarativa. El usuario describe los recursos del sistema y su estado, ya sea utilizando el lenguaje declarativo de Puppet o un Ruby DSL ( lenguaje específico del dominio ). Esta información se almacena en archivos llamados "Manifiestos de marionetas". Puppet descubre la información del sistema a través de una utilidad llamada Facter y compila los manifiestos de Puppet en un catálogo específico del sistema que contiene recursos y dependencia de recursos, que se aplican a los sistemas de destino. A continuación, se informa de todas las acciones realizadas por Puppet.
Puppet consiste en un lenguaje declarativo personalizado para describir la configuración del sistema, que puede aplicarse directamente en el sistema o compilarse en un catálogo y distribuirse al sistema de destino a través del paradigma cliente-servidor (usando una API REST ), y el agente usa el sistema proveedores específicos para hacer cumplir el recurso especificado en los manifiestos. La capa de abstracción de recursos permite a los administradores describir la configuración en términos de alto nivel, como usuarios, servicios y paquetes sin la necesidad de especificar comandos específicos del sistema operativo (como rpm, yum, apt).
Puppet se basa en modelos , lo que requiere conocimientos de programación limitados para su uso. [11]
Puppet viene en dos versiones, Puppet Enterprise y Open Source Puppet. Además de proporcionar funcionalidades de Open Source Puppet, Puppet Enterprise también proporciona GUI , API y herramientas de línea de comandos para la gestión de nodos.
Arquitectura
Puppet generalmente sigue la arquitectura cliente-servidor . El cliente se conoce como agente y el servidor se conoce como maestro. Para realizar pruebas y realizar una configuración sencilla, también se puede utilizar como una aplicación independiente que se ejecuta desde la línea de comandos.
Puppet Server está instalado en uno o más servidores y Puppet Agent está instalado en todas las máquinas que el usuario desea administrar. Los Puppet Agents se comunican con el servidor y obtienen las instrucciones de configuración. Luego, el agente aplica la configuración en el sistema y envía un informe de estado al servidor. [12] Los dispositivos pueden ejecutar Puppet Agent como un demonio , que se puede activar periódicamente como un trabajo cron o se puede ejecutar manualmente cuando sea necesario.
El lenguaje de programación Puppet es un lenguaje declarativo que describe el estado de un sistema informático en términos de "recursos", que representan la red subyacente y las construcciones del sistema operativo. El usuario reúne recursos en manifiestos que describen el estado deseado del sistema. Estos manifiestos se almacenan en el servidor y se compilan en instrucciones de configuración para los agentes que lo soliciten. [13]
Sintaxis de recursos de marionetas:
escriba { 'título' : atributo => valor }
Recurso de ejemplo que representa a un usuario de Unix :
usuario { 'harry' : asegurar => presente , uid => '1000' , shell => '/ bin / bash' , inicio => '/ var / tmp' }
Puppet permite a los usuarios configurar sistemas de una manera independiente de la plataforma al representar los conceptos del sistema operativo como datos estructurados. En lugar de especificar los comandos exactos para realizar una acción del sistema, el usuario crea un recurso, que Puppet luego traduce en instrucciones específicas del sistema que se envían a la máquina que se está configurando. Por ejemplo, si un usuario desea instalar un paquete en tres nodos diferentes, cada uno de los cuales ejecuta un sistema operativo diferente, simplemente puede declarar un recurso y Puppet determinará qué comandos deben ejecutarse en función de los datos obtenidos de Facter. un programa que recopila datos sobre el sistema en el que se está ejecutando, incluido su sistema operativo, dirección IP y cierta información de hardware. [14] Los proveedores en el nodo utilizan hechos de Facter y otros detalles del sistema para traducir tipos de recursos en el catálogo en instrucciones de máquina que realmente configurarán el nodo.
Una carrera de marionetas normal tiene las siguientes etapas:
- Un agente envía datos de Facter al maestro.
- Puppet crea un gráfico de la lista de recursos y sus interdependencias, representando el orden en el que deben configurarse, para cada cliente. El maestro envía el catálogo apropiado a cada nodo de agente.
- El estado real del sistema se configura luego de acuerdo con el estado deseado descrito en el archivo de manifiesto. Si el sistema ya se encuentra en el estado deseado, Puppet no realizará ningún cambio, lo que hará que las transacciones sean idempotentes .
- Finalmente, el agente envía un informe al maestro, detallando qué cambios se realizaron y los errores que ocurrieron.
Vendedor
Tipo | Privado [15] |
---|---|
Industria | Software informático [15] |
Fundado | 2005 | [dieciséis]
Sede | Portland, Oregón , EE. UU. |
Gente clave | Luke Kanies (Fundador) , Yvonne Wassenaar (CEO) , Andrew Shafer [16] |
Productos | Puppet, Puppet Enterprise y Puppet Forge [17] |
Sitio web | marioneta .com |
El proveedor de Puppet Puppet, Inc, es una empresa privada de software de automatización de tecnología de la información (TI) con sede en Portland, Oregon .
En 2005, Puppet fue fundada por el ex director ejecutivo Luke Kanies. [16] El 29 de enero de 2019, Yvonne Wassenaar reemplazó a Sanjay Mirchandani como CEO. Wassenaar ha ocupado puestos de liderazgo clave en Airware, New Relic y VMware.
En febrero de 2011 Puppet lanzó su primer producto comercial, Puppet Enterprise, construido sobre la base de código abierto y brindando a los usuarios comerciales una usabilidad mejorada, así como algunos componentes comerciales. [18] En septiembre de 2011, la compañía lanzó Puppet Enterprise 2.0, que introdujo la integración con MCollective, adquirida por Puppet en 2010, [19] así como el aprovisionamiento para máquinas virtuales directamente en Amazon EC2 y VMware . [20] En junio de 2013, Puppet lanzó Puppet Enterprise 3.0, que presenta un motor de orquestación reescrito que facilitará la implementación automatizada de cambios en múltiples sitios y nubes. [21]
Puppet compró la automatización de infraestructura Distelli en septiembre de 2017. [22] Puppet cambió el nombre de Distelli VM Dashboard (un producto de integración continua / entrega continua ) como Puppet Pipelines for Applications, [23] y K8S Dashboard como Puppet Pipelines for Containers. [24] Los productos se pusieron a disposición general en octubre de 2017. [25]
Puppet lanzó Puppet Discovery, una herramienta para descubrir y manipular recursos en redes híbridas, en mayo de 2018. [26] Es el tercer producto empresarial independiente de Puppet.
En junio de 2018 Puppet recaudó $ 42 millones para un total de $ 150 millones en fondos. La ronda fue dirigida por Cisco e incluyó a Kleiner Perkins, True Ventures, EDBI y VMware. [27]
Puppet se asocia y tiene integraciones tecnológicas con VMware , Amazon Web Services , Cisco , OpenStack , Microsoft Azure , Eucalyptus , Rightscale y Zenoss. [28]
Ver también
- Comparación de software de gestión de configuración de código abierto
Referencias
- ^ "Notas de la versión de títeres" . Consultado el 22 de octubre de 2019 .
- ^ "Evolución de la marioneta para los próximos 10 años" . Luke Kanies. 2014-09-23 . Consultado el 26 de mayo de 2017 .
- ^ Acuerdo de licencia de Puppet Master
- ^ Dehaan, diputado. "Implementación de aplicaciones de Apache Tomcat con Puppet" . tomcatexpert.
- ^ Rao, Leena. "Cisco, Google Ventures, VMware puso $ 8,5 millones en laboratorios de marionetas de inicio de automatización de centro de datos" . TechCrunch.
- ^ Graner, ámbar. "Puppet Labs anuncia Puppet Enterprise" .
- ^ "Preguntas frecuentes sobre marionetas" . Laboratorios de marionetas. Archivado desde el original el 20 de marzo de 2016 . Consultado el 10 de marzo de 2010 .
- ^ "Documentos: PE 2.0 - Instalación - Requisitos del sistema" . Marioneta.
- ^ "Requisitos del sistema de marionetas" . Marioneta.
- ^ "Evolución de la marioneta para los próximos 10 años" . Luke Kanies. 2014-09-23 . Consultado el 26 de mayo de 2017 .
- ^ "Implementación de aplicaciones de Apache Tomcat con Puppet" . tomcatexpert.com . Consultado el 23 de enero de 2015 .
- ^ "Descripción general de la arquitectura de Puppet - Documentación - Puppet" . docs.puppet.com . Archivado desde el original el 1 de octubre de 2016 . Consultado el 14 de septiembre de 2016 .
- ^ Krum, Hevelingen, Kero, Turnbull, McCune (9 de diciembre de 2013). Pro Puppet . Presione. ISBN 978-1430260400.CS1 maint: varios nombres: lista de autores ( enlace )
- ^ https://puppet.com/docs/facter
- ^ a b "Descripción de la empresa de Puppet Labs, Inc" . Bloomberg Businessweek.
- ^ a b c "Laboratorios de marionetas" . Crunchbase.
- ^ "Empresa de marionetas" . Marioneta.
- ^ Kerner, Sean Michael. "Puppet Goes After Enterprise System Management" . Planeta de redes empresariales.
- ^ Rao, Leena. "Puppet Labs de inicio de automatización del centro de datos adquiere el proyecto Open Source The Marionette Collective" . TechCrunch.
- ^ Finley, Klint. "Puppet 2.0 admitirá Amazon EC2 y VMware Provisioning" . Ángulo de silicio.
- ^ La nueva herramienta Puppet refuerza la automatización de la orquestación para uso empresarial - Análisis y noticias tecnológicas . Gigaom.com (25 de junio de 2013). Consultado el 9 de diciembre de 2013.
- ^ https://puppet.com/blog/welcome-distelli-to-puppet-family
- ^ "Copia archivada" . Archivado desde el original el 7 de julio de 2018 . Consultado el 7 de julio de 2018 .CS1 maint: copia archivada como título ( enlace )
- ^ "Copia archivada" . Archivado desde el original el 7 de julio de 2018 . Consultado el 7 de julio de 2018 .CS1 maint: copia archivada como título ( enlace )
- ^ https://puppet.com/blog/introducing-puppet-pipelines-and-puppet-container-registry
- ^ https://puppet.com/blog/announcing-puppet-discovery-general-availability
- ^ "Puppet recauda 42 millones de dólares liderados por Cisco, ya que su plataforma de automatización DevOps supera las 40.000 empresas" . TechCrunch . Consultado el 22 de marzo de 2019 .
- ^ Rao, Leena. "Cisco, Google Ventures, VMware puso $ 8,5 millones en laboratorios de marionetas de inicio de automatización de centros de datos" . TechCrunch.
enlaces externos
- Página web oficial
- Puppetlabs en GitHub
- Canal oficial de YouTube de Puppet Labs
- Tirar de cuerdas con títeres: la gestión de la configuración es más sencilla ( ISBN 978-1-59059-978-5 )
- Marioneta profesional ( ISBN 978-1-4302-3057-1 )
- Marioneta de aprendizaje 4 ( ISBN 978-1-4919-0766-5 )