Es posible utilizar trabajos en SaltStack Config para simplificar y automatizar tareas y procedimientos de administración de la configuración comunes que usted o su equipo realizan con regularidad.

En qué consisten los trabajos en SaltStack Config

Los trabajos se utilizan para ejecutar tareas de ejecución remota o aplicar archivos de estado a los nodos (minions) que administra SaltStack Config. Por lo general, los trabajos se diseñan para operaciones del sistema que se deben automatizar y ejecutar varias veces. Puede crear trabajos para automatizar las tareas comunes que realiza con regularidad a medida que aprovisiona, configura, implementa, supervisa y administra nodos en el sistema. También puede configurar los trabajos para que se ejecuten siguiendo una programación periódica, como los trabajos que comprueban e impiden regularmente las discrepancias de la configuración.

Puede guardar los trabajos que se repiten con frecuencia y crear gradualmente una biblioteca enriquecida de trabajos para que su equipo pueda reutilizarlos en el futuro. El uso de trabajos para administrar la configuración reduce el tiempo que el equipo dedica a instalar, configurar, supervisar y mantener manualmente los nodos del sistema.

Ejemplos de trabajos comunes

Para una introducción práctica al funcionamiento de los trabajos y ver algunos ejemplos prácticos de trabajos típicos, consulte los tutoriales de la SaltStack Config Guía de introducción:

Podría ejecutar miles de tipos diferentes de trabajos en SaltStack Config en función de los objetivos y el propósito previstos. Después de identificar qué tarea desea realizar o qué problema necesita resolver, puede buscar los módulos de Salt disponibles para encontrar qué módulos realizan la función que necesita.

Los trabajos en SaltStack Config suelen incorporar uno o más de los módulos de ejecución o módulos de estado que han sido desarrollados por la comunidad de código abierto de Salt. Los módulos de ejecución de Salt son pequeños programas que contienen código de Python que pueden ejecutarse en un minion de Salt y realizar una tarea específica. Los módulos de estado de Salt son similares a los módulos de ejecución. Los módulos de estado de Salt son programas que contienen código de Python que se pueden utilizar dentro de los archivos de estado de Salt para administrar la aplicación de un estado a un minion.

La siguiente tabla muestra algunos de los módulos de ejecución y estado más utilizados:

Módulo de Salt Descripción

state.apply

Un módulo que aplica un archivo de estado a un minion. Cuando se ejecuta el archivo de estado, comprueba si el minion se encuentra en el estado deseado actual. Si el minion no está en el estado deseado actual, ejecuta los comandos y los módulos para poner ese minion en el estado deseado.

Un estado alto aplica todos los estados definidos en el archivo superior. Consulte state.highstate para obtener más información.

pkg.installed

Un módulo de estado (lo que significa que se utiliza en archivos de estado) que comprueba si está instalada la versión correcta de un paquete. Si no está instalada, instala un paquete y se asegura de que sea la versión correcta de ese paquete. Consulte salt.states.pkg para obtener más información sobre la instalación de paquetes con ciertos sistemas operativos.

file.managed

Un módulo de estado (lo que significa que se utiliza en archivos de estado) que descarga un archivo del maestro de Salt y coloca ese archivo en los minions de destino para su uso posterior. Consulte salt.states.file para obtener más información sobre la administración de archivos con Salt.

service.running

Un módulo de estado (lo que significa que se utiliza en archivos de estado) que comprueba si se está ejecutando un servicio. Si el servicio no se está ejecutando, lo inicia. Consulte salt.states.service para obtener más información sobre cómo iniciar o reiniciar servicios con Salt.

Consulte el índice de módulos de Salt para obtener una lista más completa de los módulos de estado y ejecución de Salt.

Si Salt no tiene un módulo que necesite, puede extender Salt escribiendo sus propios módulos personalizados en Python. Si lo desea, también puede enviar ese módulo ascendente al proyecto de Salt. La comunidad de Salt Project, patrocinada oficialmente por VMware, incluye a más de 3.000 colaboradores que trabajan en funciones de administración de sistemas y TI. La comunidad de Salt amplía Salt mediante la creación de una variedad de módulos de ejecución y estado para realizar las tareas más comunes o resolver los problemas más importantes a los que se enfrentan los administradores del sistema.

Descripción general del flujo de trabajo de trabajos

En general, un administrador sénior del sistema crea, configura y guarda la configuración del trabajo para su reutilización posterior. A continuación, el administrador principal puede autorizar a un administrador menor a ejecutar este trabajo en cualquier nodo (destino) al que el administrador menor esté autorizado a acceder. Al crear un trabajo, el administrador principal define las entradas del trabajo, que hacen referencia a la configuración o las variables específicas del trabajo que el administrador menor puede cambiar en tiempo de ejecución.

Por ejemplo, un administrador sénior del sistema puede crear un trabajo que cree e implemente una máquina virtual e instale un conjunto base de aplicaciones o servicios en esa máquina. Es posible ejecutar este trabajo cada vez que se necesite implementar una nueva máquina virtual para garantizar que se aplique el mismo conjunto de aplicaciones y ajustes a cada implementación. Después de crear este trabajo básico, el administrador sénior del sistema puede conceder acceso a un administrador júnior que ejecute este trabajo en los destinos (nodos) para los que tienen permiso de acceso. Mediante el uso de los controles de acceso basados en funciones (RBAC) en SaltStack Config y guiado por el principio de privilegio mínimo, el administrador principal puede determinar qué trabajos puede ejecutar un administrador menor y en qué nodos (minions).

La creación y la ejecución de trabajos es un proceso de varios pasos para el que se requiere usar herramientas y áreas de trabajo diferentes en SaltStack Config. En el siguiente diagrama, se proporciona una descripción general del flujo de trabajo general de trabajos:

Diagrama que explica el flujo de trabajo de los trabajos

En los siguientes artículos, se describe cada paso: