¿Qué es SaltStack?
SaltStack fue desarrollado en GitHub, un lugar de encuentro virtual para desarrolladores. En marzo de 2011 este software de código abierto se puso a disposición del público. Salt, como se apoda a la herramienta de gestión de la configuración, se utiliza para el control y la vigilancia automatizados de los sistemas de servidores. SaltStack permite instalar y configurar el software desde un ordenador central y ejecutar los comandos de configuración que se deseen. Aquí te contamos lo más especial de Salt, cómo lo utilizan los administradores y qué ventajas tiene para ti esta herramienta de gestión.
¿Qué hace a SaltStack tan especial?
SaltStack es un software libre y multiplataforma de la Fundación de Software Apache. Permite realizar el mantenimiento a distancia, crear estados de destino previamente definidos e iniciar controles, tanto en el propio centro de datos de la empresa como en una nube externa (independientemente del proveedor). El fabricante menciona como principales ventajas de SaltStack la sencillez de la instalación, la rapidez de control de la comunicación en milisegundos y la posibilidad de gestionar un gran número de servidores en paralelo.
En comparación directa con sistemas de funcionamiento similar, como Terraform o Puppet, SaltStack demuestra su superioridad en la versatilidad de sus posibilidades de aplicación y su velocidad. El principio, no obstante, es el mismo: el administrador configura los otros ordenadores de forma centralizada a partir de un servidor. El software de gestión de la configuración los implementa en cada uno de los clientes. SaltStack utiliza la biblioteca de intercambio de mensajes ZeroMQ para la comunicación entre el servidor y los clientes. De este modo, tanto los pequeños como los grandes volúmenes de datos se pueden distribuir con rapidez. La comunicación queda asegurada mediante el cifrado de datos con el método de encriptación simétrica AES. La función de transporte fiable de eventos asíncronos (RAET), implementada en 2014, proporciona una seguridad adicional en el transporte de datos.
Las configuraciones reales se ejecutan con SaltStack a través de un archivo de texto en formato YAML. Este sencillo lenguaje de marcado permite la representación de datos estructurados de forma secuencial. El lenguaje de programación Python permite combinar muchos comandos de configuración con SaltStack inmediatamente listos para su ejecución.
Diversidad administrativa con SaltStack
Además de la administración de sistemas como Linux, SaltStack también se puede utilizar para gestionar clientes MacOS y Windows. Para esto, SaltStack ofrece la interfaz universal Salt Cloud. Esto permite configurar y controlar numerosos sistemas. Con ella se pueden incluso controlar automáticamente las nubes privadas y los entornos de servidores virtuales.
En el tutorial en inglés de DevOp aprenderás todo lo que necesites saber para usar Terraform y SaltStack.
Ventajas para los administradores
- No importa qué sistema deseen modificar los administradores: los comandos en SaltStack son siempre los mismos. Esto lo hace fácil de manejar y fácil de aprender.
- Esta herramienta no solo asegura la propagación automatizada de las configuraciones, sino que también puede reaccionar ante acontecimientos, ya que registra qué tipo de comunicación se intercambia en la infraestructura.
- SaltStack está completamente incluido en Salt Open y está disponible para el público en la licencia Apache 2.0. Además, podrás participar activamente en el diseño del software. Si también quieres recibir asistencia técnica del fabricante, se ofrece la versión Enterprise.
Los términos más importantes
Si utilizas SaltStack, te encontrarás con ciertos términos relacionados con la herramienta de gestión de la configuración. A continuación, hemos resumido los más importantes.
Salt master
El Salt master fue creado en el lenguaje de programación Python y es el servidor para el Messenger ZeroMQ, que a su vez transmite los datos al cliente. Los servidores también se llaman master (maestro) y minions (subalternos). De este modo, el servidor de SaltStack se llama Salt master. El control central de todos los sistemas de destino integrados tiene lugar a través de este. Los comandos y los archivos se transfieren a través de este.
Salt minion
Los Salt minions reciben los comandos del Salt master. A su vez, estos informan de todos los acontecimientos y resultados relevantes.
Salt syndic
El Salt syndic es un Salt master intermedio. Actúa entre el Salt master y los Salt minions.
Salt SSH
Ocasionalmente, el Salt minion no se puede ejecutar en un sistema de destino. A través de SSH, el Salt master puede contactar directamente con este sistema. No obstante, se omite el intercambio con ZeroMQ, lo que puede ralentizar considerablemente el proceso. Además, se pueden omitir algunas funciones y módulos.
Salt proxy minion
El Salt proxy minion permite controlar dispositivos de terceros. Esto incluye, por ejemplo, dispositivos de red como enrutadores o conmutadores.
¿Cómo funciona SaltStack?
Desde el Salt master, los Salt minions reciben comandos a través de buses como ZeroMQ, SSH o proxy minion. Los Salt minions se registran con una clave individual. El Salt master debe confirmar el comando en el primer contacto para que se pueda ejecutar. Esto significa que se produce una comunicación cifrada con los pares de claves.
Supongamos que quieras configurar un software: primero, das la orden correspondiente al Salt master, que la transmite a su vez a todos los minions. El software se configura automáticamente en todos los dispositivos de la infraestructura. El master se puede también duplicar como Salt syndic.