Salt o SaltStack es una herramienta de software de infraestructura como código para la gestión de la configuración . Está escrita en Python y se publica bajo la licencia Apache 2.0.
Historia
Salt surgió de la necesidad de recopilar datos a alta velocidad y ejecutar tareas para los administradores de sistemas de centros de datos que gestionan infraestructuras masivas y la complejidad resultante. El autor de Salt, Thomas S. Hatch, había creado previamente varias utilidades para equipos de TI con el fin de resolver el problema de la gestión de sistemas a gran escala, pero consideró que estas y otras soluciones de código abierto eran insuficientes. [ 2 ] Hatch decidió utilizar la biblioteca de mensajería ZeroMQ para satisfacer los requisitos de alta velocidad y construyó Salt utilizando ZeroMQ para todas las capas de red.
A finales de mayo de 2011 se lograron avances iniciales en la entrega de la gestión de configuración basada en el motor de ejecución remota Salt. [ 3 ] Este sistema de gestión de configuración almacena todos los datos de configuración (estado) dentro de una estructura de datos de fácil comprensión que utiliza YAML . Si bien la funcionalidad experimental del sistema Salt State estuvo disponible en mayo de 2011, no se consideró estable hasta el lanzamiento de Salt 0.9.3 en noviembre de 2011. [ 4 ]
La versión Salt 0.14.0 introdujo un sistema avanzado de control en la nube que permite gestionar directamente máquinas virtuales en nubes privadas y públicas con Salt. La función Salt Cloud permite aprovisionar cualquier host de nube híbrida y, a continuación, expone las capacidades de ejecución remota, gestión de configuración y automatización basada en eventos de Salt a los sistemas de nube híbrida recién aprovisionados. Las nuevas máquinas virtuales e instancias en la nube se conectan automáticamente a un Salt Master tras su creación.
Salt Cloud es compatible con 25 sistemas de nube públicos y privados, incluidos AWS , Azure , VMware , IBM Cloud y OpenStack . Salt Cloud proporciona una interfaz para que Salt interactúe con los hosts de la nube y sus funcionalidades, como DNS, almacenamiento, balanceadores de carga, etc.
En septiembre de 2020, VMware adquirió SaltStack. [ 5 ] [ 6 ]
Diseño
El diseño modular de Salt crea módulos Python que gestionan aspectos específicos de los sistemas Salt disponibles. Estos módulos permiten separar y modificar las interacciones dentro de Salt para adaptarlas a las necesidades de un desarrollador o administrador de sistemas.
El sistema Salt mantiene muchos tipos de módulos para gestionar acciones específicas. Los módulos se pueden agregar a cualquiera de los sistemas que admiten módulos dinámicos. Estos módulos gestionan todo el comportamiento de ejecución remota y gestión de estado de Salt. Los módulos se pueden separar en seis grupos:
- Los módulos de ejecución son la base de la funcionalidad de Salt. Representan las funciones disponibles para su ejecución directa desde el motor de ejecución remoto. Estos módulos contienen la información multiplataforma específica que utiliza Salt para gestionar la portabilidad y constituyen la API principal de las funciones a nivel de sistema utilizadas por los sistemas Salt. [ 7 ]
- Los módulos de estado son los componentes que conforman el backend del sistema de gestión de configuración de Salt. Estos módulos ejecutan el código necesario para aplicar, configurar o modificar la configuración de un sistema objetivo. Al igual que con otros módulos, se habilitan más estados al agregarlos a los módulos de estado.
- Los granos son un sistema para detectar información estática sobre un sistema y almacenarla en la RAM para su rápida recopilación. [ 8 ]
- Los módulos de renderizado se utilizan para representar la información que se pasa al sistema de estado de Salt. El sistema de renderizado es lo que permite representar los datos de gestión de configuración de Salt en cualquier formato serializable. [ 9 ]
- Devuelvedores : las llamadas de ejecución remota realizadas por Salt se desvinculan del sistema que las llama; esto permite que la información de retorno generada por la ejecución remota se devuelva a una ubicación arbitraria. La gestión de las ubicaciones de retorno arbitrarias la gestionan los módulos de retorno. [ 10 ]
- Los Runners son aplicaciones de conveniencia del lado maestro ejecutadas por el comando salt-run. [ 11 ]
Seguridad
En abril de 2020, F-Secure reveló dos vulnerabilidades RCE (Ejecución Remota de Código) de alta gravedad , identificadas como CVE-2020-11651 y CVE-2020-11652 , con una puntuación CVSS de hasta 10. Estas vulnerabilidades críticas se encontraron en el canal de comunicación predeterminado de Salt, ZeroMQ , y la investigación inicial descubrió 6000 servidores Salt vulnerables. La organización Salt fue notificada antes del anuncio público de F-Secure, y Salt pronto lanzó el parche en sus versiones actualizadas: 2019.2.4 y 3000.2. [ 12 ]
Véase también
Referencias
- ↑ "Versiones - saltstack/salt" . Consultado el 19 de marzo de 2025 a través de GitHub .
- ↑ "FLOSS Weekly 191: Salt" . TwitTV . Consultado el 13 de enero de 2020 .
- ↑ "red45.wordpress.com administración de configuración de salt" . red45.wordpress.com. 29 de mayo de 2011. Consultado el 29 de mayo de 2011 .
- ↑ "Notas de la versión de Salt - 0.9.3" . saltstack . Consultado el 6 de noviembre de 2011 .
- ↑ "Intención de adquirir SaltStack" . Consultado el 29 de septiembre de 2020 .
- ↑ Gagliordi, Natalie. "VMware adquirirá al proveedor de software de automatización SaltStack" . ZDNet . Consultado el 1 de octubre de 2020 .
- ↑ "Escritura de módulos de ejecución" . SaltStack . Consultado el 13 de enero de 2020 .
- ↑ «Referencia del Módulo de Sal» . Pila de sal . Consultado el 13 de enero de 2020 .
- ↑ «Renderizadores» . Pila de sal . Consultado el 13 de enero de 2020 .
- ↑ «Retornados» . Pila de sal . Consultado el 13 de enero de 2020 .
- ↑ "Corredores" . SaltStack . Consultado el 13 de enero de 2020 .
- ↑ "Vulnerabilidad crítica de SaltStack proporciona acceso de administrador a un ciberatacante" . Informes de ataques . 5 de mayo de 2020. Consultado el 18 de mayo de 2020 .
Enlaces externos
- Gestión de la configuración
- Software libre programado en Python
- Software de orquestación
- Software que utiliza la licencia Apache.
- Software de virtualización para Linux