Puede crear o cargar archivos de estado y datos del pilar en las áreas de trabajo del servidor de archivos de SaltStack Config y del pilar. Si no desea utilizar el servidor de archivos, SaltStack Config también admite la conexión a un repositorio externo (como un repositorio de Git) donde puede guardar los archivos de estado y los datos del pilar.

¿Qué son los archivos de estado?

En lugar de configurar manualmente cada nodo o aplicación uno a uno, puede utilizar el sistema de administración de estado de SaltStack Config para crear archivos de estado que se puedan aplicar a muchos nodos de forma simultánea. Estos archivos de estado pueden incluir un conjunto de instrucciones que indican a SaltStack Config qué operaciones se deben ejecutar en el nodo, y en qué orden. También pueden explicar qué archivos de configuración o ajustes se deben aplicar.

Después de escribir o modificar un archivo de estado, puede ejecutar automáticamente estos archivos de estado y aplicarlos a muchos nodos a la vez. Puede apuntar a nodos en función de las propiedades inherentes de cada nodo (como su sistema operativo) o también puede apuntar a nodos en función de las etiquetas personalizadas que defina. Consulte Cómo crear destinos para obtener más información.

El sistema de administración de estado también garantiza que cada nodo esté configurado correctamente y de la forma más eficiente posible. Si una configuración ha cambiado, SaltStack Config puede volver a poner los nodos y las aplicaciones en su estado de configuración que cumpla con lo establecido. Si es necesario cambiar una configuración, SaltStack Config puede implementar rápidamente esos cambios en los nodos afectados.

Ejemplo de un archivo de estado

Los archivos de estado generalmente se escriben en YAML y Jinga, pero otros formatos, como JSON, son compatibles con Salt. Un archivo de estado típico podría tener este aspecto:

install_apache:
  pkg.installed:
    - name: httpd
    
ensure_service_running:
  service.running:
    - name: httpd
    - watch:
      - pkg: install_apache
      
default_html_page:
  file.managed:
    - name: /var/www/html/index.html
    - source: salt://apache/index.html
Este archivo de estado tiene tres pasos que ejecutan tres módulos de ejecución de Salt diferentes. Cuando se aplica este archivo de estado a un minion, SaltStack Config:
  • Instala Apache (httpd) en el minion.
  • Inicia el servicio Apache.
  • Implementa una página de índice HTML de ejemplo que está alojada en el minion.

¿Qué son los datos del pilar?

Un archivo de pilar de ejemplo en el área de trabajo Servidor de archivos

Nota: La práctica recomendada es reservar los datos del pilar para la información confidencial.
Los pilares son estructuras de datos almacenadas en el maestro de Salt y que se transmiten a uno o varios minions que tienen autorización para acceder a esos datos. Los datos del pilar tienen dos casos prácticos principales:
  • El pilar puede restringir el acceso del usuario a datos confidenciales privados, como contraseñas y ajustes de configuración. Por ejemplo, podría utilizar pilares para permitir que un usuario ejecute un trabajo que requiera autenticación en un servicio externo sin acceder a esas credenciales de autenticación. En este caso, debería asignar el acceso de usuario al trabajo y destino dados, pero no al pilar que contiene detalles de autenticación confidenciales.
  • El pilar puede enviar datos que cambian en función del contexto o del minion que solicita datos. Por ejemplo, puede asignar diferentes contraseñas a diferentes minions y almacenar todas las contraseñas en un archivo de pilar. A continuación, puede escribir un archivo de estado que le indique al minion que busque su contraseña única en el archivo sin tener que crear varios archivos o almacenar contraseñas en varios lugares.

Los datos almacenados en el almacén de pilares de SaltStack Config se cifran mediante la clave de cifrado de Raas asociada con la instancia específica de SaltStack Config (por ejemplo: "/etc/raas/pki/.raas.key"). Una vez que los datos del pilar se definen en la interfaz de usuario de SaltStack Config, se cifran con esta clave y se almacenan en la base de datos de PostgreSQL. Esta clave también se utiliza para descifrar los datos que se muestran en la interfaz de usuario de SaltStack Config.

Ejemplo de un archivo de pilar

Los archivos del pilar generalmente se escriben en YAML y Jinga, pero otros formatos, como JSON, son compatibles con Salt. Los datos del pilar se almacenan como un diccionario y utilizan pares clave-valor para buscar valores. Un archivo de pilar típico podría tener este aspecto:

 pillar1: value
 pillar2:
   - value
   - value
 pillar3:
   sub_key:
     - value
     - value

Este ejemplo muestra tres métodos diferentes para formatear los datos del pilar. La sintaxis que elija dependerá de sus necesidades y del tipo de datos que necesite almacenar.

Antes de comenzar

Debido a que SaltStack Config funciona con Salt, es útil tener un conocimiento básico de Salt y los conceptos relacionados con estas funciones. En la siguiente tabla se enumeran algunos recursos útiles para obtener más información:

Para obtener más información sobre cómo... Consulte...

Conceptos básicos para trabajar con Salt

Estados de Salt

Datos de pilar

Módulos de estado y ejecución de Salt

Después de definir los datos del pilar, puede asignarlos a un grupo de sistemas de minion si hace clic en Actualizar destinos, selecciona el grupo de destino y, a continuación, hace clic en Guardar.

Asociación de datos del pilar a destinos en SaltStack Config

Cuando los datos del pilar se asignan a un sistema de destino específico y se incluyen en archivos de estado, el maestro los procesa para cada sistema de minion y los cifra con una clave de AES independiente para cada minion. Esta clave permite que los datos del pilar se transmitan al sistema de destino durante el programa de un archivo de estado o de orquestación.

Agregar archivos de estado al servidor de archivos

Para agregar un archivo de estado al servidor de archivos para que se pueda utilizar en trabajos:

  1. Investigue qué módulos de ejecución o estado de Salt le ayudarán a lograr el resultado deseado. Cuando encuentre el módulo de Salt que cumpla con sus necesidades, lea la documentación del módulo para asegurarse de que está familiarizado con los parámetros del módulo y otros requisitos.
  2. Opcional: como práctica recomendada, escriba un borrador del archivo de estado en el editor de código que prefiera y compruebe que el archivo de estado utilice una sintaxis bien formada con un linter de código.
  3. En la interfaz de usuario de SaltStack Config, haga clic en Configuración> Servidor de archivos en el menú lateral para abrir el área de trabajo Servidor de archivos.
  4. Cuando abra el área de trabajo Servidor de archivos por primera vez, verá el directorio de archivos y un archivo nuevo en blanco. Utilice este archivo en blanco para crear un nuevo archivo de estado o para copiar el archivo de estado del editor de código.Archivo de estado en blanco en el área de trabajo Servidor de archivos de SaltStack Config
  5. Haga clic en el menú Saltenv y seleccione el entorno en el que desea almacenar el archivo de estado. Si no está seguro de qué entorno seleccionar, utilice base.
  6. En el campo Nombre de ruta de acceso, escriba la ruta de archivo y el nombre de archivo, finalizando con la extensión de archivo .sls. Por ejemplo, /my-directory/my-state-file.sls.
  7. En el cuerpo del archivo, escriba o copie el código del archivo de estado. Por ejemplo:Código de archivo de estado en un archivo de estado en el área de trabajo Servidor de archivos
  8. Guarde el archivo de estado y confirme que el nuevo archivo aparezca en el directorio del servidor de archivos.

Agregar datos de pilar a un maestro de Salt

Aunque podría utilizar el área de trabajo Pilar de SaltStack Config para agregar datos del pilar al maestro de Salt, podría ser más fácil agregar los datos del pilar directamente al maestro de Salt. Para agregar datos de pilar para que se pueda hacer referencia a ellos en archivos de estado o se puedan asignar a destinos, puede utilizar uno de estos dos métodos:

  • Utilice SSH en el maestro de Salt y agregue el archivo del pilar al directorio del maestro mediante los procedimientos estándar de Salt para agregar archivos a un maestro. Consulte Pilar y Tutorial del pilar para obtener más información.
  • Cree un trabajo en la interfaz de usuario de SaltStack Config que agregue los datos del pilar al maestro de Salt mediante el comando salt-run que utiliza la función de ejecución de Salt. Consulte ¿Cómo se crean trabajos? para obtener más información.

Pasos siguientes

Después de crear los archivos de estado y los datos del pilar a los que pueden acceder los minions, puede hacer referencia a estos archivos en los trabajos que cree en SaltStack Config. Consulte ¿Cómo se crean trabajos? para obtener más información.