Como parte del proceso posterior a la instalación, debe instalar, configurar y actualizar el complemento principal. El complemento principal permite que los maestros de Salt se comuniquen con SaltStack Config. El complemento principal incluye una variedad de opciones que puede ajustar para mejorar el rendimiento, que son particularmente útiles para entornos grandes o con mucho trabajo.

Por lo general, el complemento principal se instala en cada maestro de Salt del entorno que se comunica con SaltStack Config. Por ejemplo, si utiliza una configuración con más de un maestro de Salt (en ocasiones denominado configuración de varios maestros), cada uno de ellos debe instalar el complemento principal.

Para obtener más información sobre cómo actualizar la configuración relacionada con el rendimiento, consulte la página Complemento principal en la documentación de producto de SaltStack Config.

Nota: Como parte de la iniciativa de VMware para eliminar terminología problemática, el término maestro de Salt se reemplazará por uno mejor en SaltStack Config, y en los productos y la documentación relacionados. Esta actualización de terminología puede tardar algunos ciclos de versión en completarse totalmente.

Antes de comenzar

La instalación y configuración del complemento principal es un paso posterior a la instalación, en una serie de varios pasos que deben seguirse en un orden específico. En primer lugar, complete uno de los escenarios de instalación y, a continuación, lea la página posterior a la instalación Instalar la clave de licencia.

¿Cuándo necesita instalar el complemento principal?

Debe instalar el complemento principal en todos los maestros después de una instalación nueva de SaltStack Config. El complemento principal no es necesario en los maestros que no necesitan comunicarse con SaltStack Config.

Si utilizó el escenario de instalación de nodo único, no es necesario instalar el complemento principal en el nodo en el que instaló SaltStack Config y su arquitectura relacionada. El instalador instala automáticamente el complemento principal en el nodo maestro de Salt. Sin embargo, el complemento principal solo se instala en el maestro de Salt en el que se ejecutó el instalador. Si tiene varios maestros, aún debe instalar el complemento principal en los otros maestros.

Si actualizó hace poco a una versión más reciente de SaltStack Config, también debe volver a instalar el complemento principal. Para obtener las instrucciones completas sobre cómo actualizar e instalar el complemento principal después de una actualización, consulte Cómo se actualiza SaltStack Config.

Si va a realizar una instalación manual de SaltStack Config (no recomendado), debe completar lo siguiente antes de instalar el complemento principal:

  • Instalar y configurar la base de datos de PostgreSQL
  • Instalar y configurar la base de datos de Redis
  • Habilitar SSL (opcional)

Instalar el complemento principal

Para instalar el complemento principal en el maestro de Salt:

  1. Inicie sesión en el maestro.
  2. Si es necesario, descargue el wheel del complemento principal desde Customer Connect.

    El complemento principal se incluye en el archivo .tar.gz del instalador automatizado. Después de descargar y extraer el archivo.tar.gz, puede encontrar el complemento principal en el directorio sse-installer/salt/sse/eapi_plugin/files.

  3. Instale el complemento principal mediante la instalación manual del wheel de Python actualizado. Utilice los siguientes comandos de ejemplo, reemplazando con el nombre exacto del archivo wheel:

    RHEL/CentOS

    sudo pip3 install SSEAPE-file-name.whl --prefix /usr

    Ubuntu

    sudo pip3 install SSEAPE-file-name.whl
    Nota: Es posible que algunos usuarios necesiten modificar la sintaxis a pip3.6 o pip36 para sus sistemas operativos.

Configurar el complemento principal

Para configurar el maestro después de instalar el complemento principal:

  1. Inicie sesión en el maestro y compruebe si existe el directorio /etc/salt/master.d. Si no existe, créelo.
  2. Genere las opciones de configuración del maestro.
    Precaución: Si desea conservar la configuración al actualizar la instalación, realice una copia de seguridad del archivo de configuración del complemento principal existente antes de realizar este paso. A continuación, copie los ajustes pertinentes de la configuración existente en el archivo recién generado.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf

    Si al ejecutar este comando se produce un error, es posible que esté relacionado con el método que utilizó al instalar Salt inicialmente. Si instaló Salt a través del instalador de SaltStack Config, es probable que la instalación incluya un paquete sin conexión, llamado Salt Crystal, que tiene instrucciones de actualización especiales. Para obtener más información, consulte la página Solución de problemas.

  3. Edite el archivo raas.conf generado y actualice los valores de la siguiente manera para validar el certificado que usa la API (RaaS) y establecer su dirección IP.
    Valor Descripción

    sseapi_ssl_validate_cert

    Valida el certificado que utiliza la API (RaaS). El valor predeterminado es True.

    Si utiliza sus propios certificados emitidos por una CA, establezca este valor en True y configure las opciones sseapi_ssl_ca, sseapi_ssl_cert y sseapi_ssl_cert:.

    De lo contrario, esta opción se establece como False para no validar el certificado.

    sseapi_ssl_validate_cert:False

    sseapi_server

    La dirección IP HTTP del nodo de RaaS es, por ejemplo, http://example.com, o https://example.com si SSL está habilitado.

    sseapi_command_age_limit

    Establece la antigüedad (en segundos) después de la cual se omiten los trabajos antiguos y potencialmente obsoletos. Por ejemplo, para omitir trabajos de más de un día de antigüedad, esta opción se establece en:

    sseapi_command_age_limit:86400

    Los trabajos omitidos seguirán existiendo en la base de datos y se mostrarán con el estado Completed en la interfaz de usuario de SaltStack Config.

    Es posible que en algunos entornos se necesite que el maestro de Salt esté sin conexión durante largos períodos de tiempo y que ejecute los trabajos que se ponen en cola después de volver a estar en línea. Si esto se aplica a su entorno, establezca el límite de antigüedad en 0.

    sseapi_windows_minion_deploy_delay Establece un retraso para permitir que todos los servicios de Windows requeridos se activen. El valor predeterminado es 180 segundos.
    sseapi_linux_minion_deploy_delay Establece un retraso para permitir que se activen todos los servicios necesarios de Linux. El valor predeterminado es de 90 segundos.
  4. OPCIONAL: Este paso solo es necesario para instalaciones manuales. Para comprobar que puede conectarse a SSL antes de conectar el complemento principal, edite el archivo raas.conf generado para actualizar los siguientes valores. Si no actualiza estos valores, el complemento principal utiliza el certificado generado predeterminado.
    Valor Descripción
    sseapi_ssl_ca La ruta de acceso a un archivo de CA.
    sseapi_ssl_cert La ruta de acceso al certificado. El valor predeterminado es /etc/pki/raas/certs/localhost.crt.
    sseapi_ssl_key La ruta de acceso a la clave privada del certificado. El valor predeterminado es /etc/pki/raas/certs/localhost.key.
    id Para realizar un comentario en esta línea, agregue # al principio. No es obligatorio.
  5. OPCIONAL: Actualice la configuración relacionada con el rendimiento. En los entornos grandes o cargados, es posible mejorar el rendimiento de las comunicaciones entre el maestro de Salt y SaltStack Config si se ajusta la siguiente configuración.
    • Habilite la puesta en cola de eventos (disponible en Salt 2019.2.2 y versiones posteriores). Los eventos se pueden poner en cola en el maestro de Salt y se pueden enviar al regresador de eventos por lotes mediante una sola transacción para varios eventos. De forma predeterminada, este mecanismo de puesta en cola está deshabilitado. Para habilitar la puesta en cola de eventos, establezca lo siguiente en el archivo de configuración del complemento de maestro de Salt:
      event_return_queue:2500
      event_return_queue_max_seconds:5

      El tamaño máximo recomendado para la cola de eventos es 2500 como se muestra. La cola se vaciará y los eventos se reenviarán al regresador de eventos cuando la cola esté llena. Un valor inferior se adapta mejor a los entornos pequeños o menos cargados.

      En algunos casos, es posible que el bus de eventos de Salt no se cargue lo suficiente para hacer que la cola alcance regularmente su tamaño máximo. Si se establece event_return_queue_max_seconds, la cola se vaciará cuando el evento más antiguo de la cola sea anterior al valor configurado, independientemente de la cantidad de eventos en la cola.

    • Habilite y configure los motores eventqueue y rpcqueue:

      Estos motores descargan algunas comunicaciones con SaltStack Config de rutas de código fundamentales para el rendimiento a procesos dedicados. Mientras los motores esperan la comunicación con SaltStack Config, las cargas útiles se almacenan en el sistema de archivos local del maestro de Salt para que los datos puedan persistir después de reiniciar el maestro de Salt.

      Para habilitar los motores, quite las marcas de comentario de los siguientes ajustes en el archivo de configuración del complemento de maestro de Salt (raas.conf):

      engines:
        - sseapi: {}
        - eventqueue: {}
        - rpcqueue: {}
        - jobcompletion: {}
        - keyauth: {}

      Para configurar el motor eventqueue, quite las marcas de comentario de los siguientes ajustes y actualícelos:

      sseapi_event_queue:
        name: sseapi-events
        strategy: always
        push_interval: 5
        batch_limit: 2000
        age_limit: 86400
        size_limit: 35000000
        vacuum_interval: 86400
        vacuum_limit: 350000
        forward: []

      Los parámetros de cola se pueden ajustar de acuerdo con la forma en que funcionan juntos. Por ejemplo, si se asume un promedio de 400 eventos por segundo en el bus de eventos de Salt, los ajustes mostrados anteriormente permiten aproximadamente 24 horas de tráfico de eventos en cola para recopilar en el maestro de Salt antes de que los eventos más antiguos se descarten debido a los límites de tamaño o antigüedad.

      Para configurar el motor rpcqueue, quite las marcas de comentario de los siguientes ajustes y actualícelos:

      sseapi_rpc_queue:
          name: sseapi-rpc
          strategy: always
          push_interval: 5
          batch_limit: 500
          age_limit: 3600
          size_limit: 360000
          vacuum_interval: 86400
          vacuum_limit: 100000
    • Habilitar almacenamiento en caché de cargas:
      sseapi_local_cache:
          load:3600
      Nota: Si se habilita el motor rpcqueue, también se debe habilitar el almacenamiento en caché de cargas para que el maestro de Salt controle los trabajos correctamente.
    • Limitar tamaños de carga útil de granos de minions:
      sseapi_max_minion_grains_payload:2000
    • Habilite la omisión de trabajos que sean anteriores a un tiempo definido (en segundos). Por ejemplo, utilice 86400 para omitir trabajos más antiguos que un día. Cuando se establece 0, esta función queda deshabilitada:
      sseapi_command_age_limit:0
      Nota:

      Esto es útil durante la actualización para evitar que los comandos antiguos almacenados en la base de datos se ejecuten de forma inesperada.

    Juntos, la puesta en cola de eventos en Salt y los motores de cola, el almacenamiento en caché de cargas, el límite de tamaño de carga útil de granos y el límite de antigüedad de los comandos en el complemento de maestro de Salt aumentan el rendimiento y reducen la latencia de las comunicaciones entre el maestro de Salt y SaltStack Config en las rutas de código más sensibles al rendimiento.

  6. Reinicie el servicio principal.
    sudo systemctl restart salt-master
  7. OPCIONAL: Podría querer ejecutar un trabajo de prueba para asegurarse de que el complemento principal habilite la comunicación entre el nodo maestro y el nodo de RaaS.
    salt -v '*' test.ping

Aunque no se muestre ninguna actividad, por ejemplo, si no hay minions conectados, es probable que esto sea una señal de una configuración correcta.

Referencia de los ajustes de configuración

Estos ajustes en el archivo de configuración permiten que cada maestro de Salt se conecte a la API (RaaS). Puede encontrar estos ajustes en el archivo de configuración /etc/salt/master.d/raas.conf.

Importante:

La configuración del maestro de Salt en el archivo raas.conf tiene prioridad sobre la configuración existente en /etc/salt/master. Si personalizó la configuración de fileserver_backend o ext_pillar en /etc/salt/master, debe combinar manualmente estos ajustes para que se muestren en un solo archivo. Opcionalmente, puede volver a ordenar los back-end para cambiar la prioridad.

En la siguiente tabla, se explican los ajustes de configuración generales:

Opción Descripción
id Identificador de maestro de Salt (se genera automáticamente si no se establece)
sseapi_server URL del servidor de SSEAPI, por ejemplo, https://sse.example.com:443
engines Motores de Salt para habilitar (se recomiendan sseapi, eventqueue, rpcqueue, jobcompletion y keyauth).
master_job_cache sseapi para utilizar la memoria caché de trabajo principal de SaltStack Config
event_return Regresador de eventos de Salt (se recomienda sseapi para utilizar el regresador de eventos de SaltStack Config)
ext_pillar Orígenes de pilares externos (se recomienda sseapi)
fileserver_backend Back-end de servidor de archivos (se recomiendan sseapi y roots)
sseapi_update_interval Frecuencia de actualización desde el servidor de archivos (segundos, valor predeterminado 60)
sseapi_poll_interval Frecuencia de sondeo de SaltStack Config para recopilar datos nuevos (segundos, valor predeterminado 30)
sseapi_jce_poll_interval Agrega un retraso entre iteraciones en el motor jobcompletion de modo que se envía un máximo de 5760 comandos find_job por día por maestro de Salt (segundos, valor predeterminado 15)
sseapi_timeout Tiempo de espera para llamadas de API (RaaS) (segundos, valor predeterminado 200)
sseapi_pubkey_path Ruta de acceso al archivo de clave pública para autenticar el maestro de Salt con SaltStack Config
sseapi_key_rotation Intervalo de rotación claves de autenticación de SaltStack Config para el maestro de Salt (segundos, valor predeterminado 86400)
sseapi_cache_pillar Almacenamiento en caché de datos de pilares dentro de SaltStack Config (True o False, valor predeterminado False).
sseapi_cluster_id (Opcional) Nombre de clúster de maestro de Salt para agrupar maestros de Salt en clústeres dentro de SaltStack Config
sseapi_failover_master Si este maestro de Salt es un maestro de Salt de conmutación por error (True o False, valor predeterminado False)
sseapi_command_age_limit Si se deben omitir los comandos de API (RaaS) anteriores a un tiempo definido (segundos, 0 para deshabilitar, valor predeterminado 0)

En la siguiente tabla, se explican los ajustes de configuración de SSL:

Opción Descripción
sseapi_ssl_key Ruta de acceso a la clave privada del certificado
sseapi_ssl_cert Ruta de acceso al certificado
sseapi_ssl_validate_cert Si se debe validar el certificado SSL de SaltStack Config (True o False, valor predeterminado True).

En la siguiente tabla, se explican los ajustes del motor de cola de eventos, que se muestran debajo del encabezado sseapi_event_queue:

Opción Descripción
name Nombre de la cola de eventos (valor predeterminado sseapi-events, no es necesario cambiarlo)
strategy Momento de poner en cola los eventos (always, on_failure o never, valor predeterminado never)
push_interval Frecuencia con la que se insertan eventos en SaltStack Config (segundos, valor predeterminado 5)
batch_limit Cantidad máxima de eventos que se pueden insertar en SaltStack Config por intervalo (valor predeterminado 2000)
age_limit Antigüedad máxima de los eventos en cola y eliminación de los eventos más antiguos (segundos, valor predeterminado 86400)
size_limit Tamaño máximo de cola y eliminación de los eventos más antiguos (eventos, valor predeterminado 35000000)
vacuum_interval Frecuencia de vacío de la base de datos de la cola (segundos, valor predeterminado 86400)
vacuum_limit Tamaño máximo de cola al vaciar la base de datos de la cola (eventos, valor predeterminado 350000)
forward Regresadores de Salt adicionales para enviar eventos al vaciar la cola (valor predeterminado ninguno)

El elemento de configuración forward puede especificar una lista de uno o varios nombres de regresador de Salt. Cada vez que se vacíe la cola de eventos, los eventos en cola se enviarán a SaltStack Config y a cada regresador de esta lista. Esto permite agregar la funcionalidad de persistencia y puesta en cola del motor de cola de eventos a cualquier regresador de Salt estándar. A continuación, se muestra un extracto de configuración por el que los eventos se escriben en un archivo local cada vez que se envían a SaltStack Config:

sseapi_event_queue:
  # ...other queue settings...
  forward:
    - rawfile_json

# rawfile_json returner configuration
rawfile_json.filename: /var/log/salt/events.json

En la siguiente tabla, se explican los ajustes del motor de cola de RPC, que se muestran debajo del encabezado sseapi_rpc_queue:

Opción Descripción
name Nombre de la cola de eventos (valor predeterminado sseapi-rpc, no es necesario cambiarlo)
strategy Momento de poner en cola los eventos (always, on_failure o never, valor predeterminado never)
push_interval Frecuencia con la que se envían llamadas a SaltStack Config (segundos, valor predeterminado 5)
batch_limit Cantidad máxima de llamadas que se pueden insertar en SaltStack Config por intervalo (valor predeterminado 500)
age_limit Antigüedad máxima de las llamadas en cola y eliminación de las entradas más antiguas (segundos, valor predeterminado 3600)
size_limit Tamaño máximo de cola y eliminación de las entradas más antiguas (eventos, valor predeterminado 360000)
vacuum_interval Frecuencia de vacío de la base de datos de la cola (segundos, valor predeterminado 86400)
vacuum_limit Tamaño máximo de cola al vaciar la base de datos de la cola (entradas, valor predeterminado 100000)

En la siguiente tabla, se explican los ajustes de configuración de rutas de acceso. Después de la generación de la configuración inicial, tenga cuidado al cambiar estos ajustes. Los módulos se copiarán en estos directorios del proceso de instalación. Sin embargo, agregar rutas de acceso adicionales no tendrá ningún efecto negativo.

Opción Descripción
beacons_dirs Rutas de módulos externos de señales
engines_dirs Rutas de módulos externos de motores
fileserver_dirs Rutas de módulos externos de servidores de archivos
pillar_dirs Rutas de módulos externos de pilares
returner_dirs Rutas de módulos externos de regresadores
roster_dirs Rutas de módulos externos de listas
runner_dirs Rutas de módulos externos de ejecutores
module_dirs Rutas de módulos externos de Salt
proxy_dirs Rutas de módulos externos de proxy
metaproxy_dirs Rutas de módulos externos de metaproxy
states_dirs Rutas de módulos externos de estados

Qué hacer a continuación

Después de instalar y configurar el complemento principal, debe completar los pasos adicionales posteriores a la instalación. El siguiente paso es configurar el nodo de RaaS. Para continuar con el proceso posterior a la instalación, consulte Comprobar el archivo de configuración de RaaS.