Al instalar SaltStack Config, se ejecuta un highstate de orquestación proporcionado en el instalador de SaltStack Config. El highstate se ejecuta en el maestro de Salt y configura un entorno de varios nodos. Instala la arquitectura esencial de SaltStack Config en los otros tres nodos que alojarán PostgreSQL, Redis y el nodo de RaaS.

Atención: No se admite ni se recomienda implementar SaltStack Config en contenedores.

El objetivo final de la instalación es tener cuatro nodos, cada uno con una función de host diferente. Cada nodo también es un minion para el maestro de Salt:

  • Un nodo maestro de Salt
  • Un nodo de base de datos de PostgreSQL
  • Un nodo de base de datos de Redis
  • Un nodo de RaaS, también conocido como SaltStack Config
Precaución:

Es especialmente importante seguir todos los pasos enumerados en Instalar Salt en los nodos. Concretamente, debe instalar las dependencias necesarias para el instalador de SaltStack Config en los cuatro nodos de la instalación. De lo contrario, la instalación de varios nodos genera errores.

Las dependencias necesarias son:

  • OpenSSL
  • Paquetes adicionales para Enterprise Linux (EPEL)
  • Criptografía de Python
  • Biblioteca OpenSSL de Python

Alta disponibilidad

Es posible configurar varios maestros de Salt o varios nodos de RaaS. También es posible ejecutar el servicio del maestro de Salt en un nodo y combinar dos o más de los otros servicios en un nodo independiente. En esta guía no se explican por completo los pasos para configurar este tipo de arquitectura del sistema.

Los requisitos de alta disponibilidad o arquitectura personalizada pueden necesitar servicios de asesoramiento. Sin embargo, antes de configurar varios nodos del mismo tipo, por lo general, debe comenzar primero por el escenario de instalación de varios nodos y, a continuación, configurar una arquitectura adicional más adelante.

Para obtener más información sobre la alta disponibilidad, consulte Dependencias requeridas de SaltStack Config.

Registrar datos clave para los cuatro nodos

Antes de comenzar la instalación estándar, registre los datos clave de cada uno de los cuatro nodos implicados en la instalación. Estos datos se introducen en varios puntos durante el proceso de instalación.

Registre los siguientes datos clave sobre cada uno de los cuatro nodos implicados en la instalación:

  • Las direcciones IP o los nombres de DNS
  • Los ID de minion

Asegúrese de indicar claramente qué dirección IP e ID de minion pertenece a cuál host (el nodo maestro de Salt, el nodo de RaaS, el nodo de base de datos de PostgreSQL y el nodo de base de datos de Redis).

Como práctica recomendada, compruebe que las direcciones IP o los nombres de DNS sean correctos, ya que las direcciones IP o los nombres de DNS incorrectos podrían provocar un error de instalación en varios nodos.

Mantenga estos datos en un registro de fácil acceso para referencia. A medida que configura la orquestación, debe introducir estos datos en varios ajustes y variables en los archivos de configuración. Por este motivo, es útil mantener este registro a mano durante toda la instalación.

Nota:

Si se encuentra en un entorno virtualizado, tenga cuidado de especificar la dirección interna, en lugar de la dirección pública.

Direcciones IP estáticas frente a dinámicas

Los hosts de Redis y de PostgreSQL necesitan direcciones IP estáticas o nombres de DNS a los que hacen referencia los archivos de configuración. En función de cómo se implemente el nodo de RaaS, es posible que también necesite una dirección IP estática o un nombre de DNS. Confiar en direcciones IP dinámicas en las configuraciones puede cambiar e interrumpir el entorno.

Configuración de un ID de minion personalizado (opcional)

Un ID de minion es un nombre único que se le da a cada minion administrado por un maestro de Salt. De forma predeterminada, el minion se identifica con el maestro de Salt mediante el nombre de host del sistema. Sin embargo, puede asignar ID personalizados que describen su función o ubicación dentro de la red.

Si decide personalizar los ID de minion, intente que el ID sea breve pero describa su función. Por ejemplo, podría usar apache-server-1 para nombrar uno de los servidores web, o datacenter-3-rack-2 por su ubicación en un centro de datos. El objetivo es que los nombres sean descriptivos y útiles para futuras referencias.

Para declarar un ID de minion:

  1. En el terminal del minion, desplácese hasta el directorio que contiene el archivo minion.conf del minion. De forma predeterminada, la ubicación del directorio es etc/salt/minion.d.
  2. Abra el archivo minion.conf en un editor. Cambie el ajuste id a su ID de minion preferido. Por ejemplo:
    id: postgres-database-1
  3. Después de cambiar un ID de minion, el maestro de Salt debe aceptar (o volver a aceptar) las claves del minion. Para obtener instrucciones específicas sobre cómo configurar las claves, consulte Aceptar las claves de minion en los maestros.

Copiar y editar los archivos de estado superiores

Durante esta tarea de instalación, copie los archivos de orquestación proporcionados con el instalador de SaltStack Config en el nodo maestro de Salt. A continuación, edite los archivos para hacer referencia a los tres nodos de RaaS, la base de datos de Redis y la base de datos de PostgreSQL.

Para copiar y editar los archivos de configuración de orquestación:

  1. En el maestro de Salt, desplácese hasta el directorio sse-installer.
  2. Copie los archivos del pilar y de estado del directorio sse_installer en pillar_roots y file_roots del maestro de Salt mediante los siguientes comandos:
    sudo mkdir /srv/salt
    sudo cp -r salt/sse /srv/salt/
    sudo mkdir /srv/pillar
    sudo cp -r pillar/sse /srv/pillar/
    sudo cp -r pillar/top.sls /srv/pillar/
    sudo cp -r salt/top.sls /srv/salt/
    Importante:

    En estas instrucciones se hacen algunas suposiciones que podrían no ser ciertas para su estructura de directorios, especialmente si ya tiene una instalación de Salt. En las instrucciones se supone lo siguiente:

    • Que el maestro de Salt está utilizando la estructura de directorios predeterminada. Si se modificó la estructura de directorios, es posible que deba modificar estas instrucciones para la estructura de directorios personalizada.
    • Que aún no tiene una carpeta con el nombre sse en el pilar ni en la raíz del estado de configuración. Si esta carpeta existe, es posible que deba combinarlas manualmente.
    • Que aún no tiene un archivo con el nombre top.sls en el pilar ni en el directorio salt. Si este archivo existe, es posible que deba combinarlo con el archivo existente manualmente.
  3. En /srv/pillar/, ahora tiene un archivo denominado top.sls que copió de los archivos de instalación en el paso anterior. Abra este archivo en un editor.
  4. Edite este archivo para definir la lista de los ID de minion (no las direcciones IP ni los nombres de DNS) para sus instancias de PostgreSQL, Redis, RaaS y el maestro de Salt. Utilice los identificadores que registró anteriormente.

    Por ejemplo:

    {# Pillar Top File #}
    
    {# Define SSE Servers #}
    
    {% load_yaml as sse_servers %}
      - postgres-database-1
      - redis-database-1
      - saltstack-enterprise-api-server-1
      - saltmaster-1
    {% endload %}
    
    base:
    
    {# Assign Pillar Data to SSE Servers #}
    {% for server in sse_servers %}
      '{{ server }}':
        - sse
    {% endfor %}
  5. En el directorio /srv/salt/, ahora tiene un archivo denominado top.sls que copió en el paso 2. Abra este archivo en un editor y compruebe si coincide con lo siguiente:
    base:
    
      {# Target SSE Servers, according to Pillar data #}
      # SSE PostgreSQL Server
      'I@sse_pg_server:{{ grains.id }}':
        - sse.eapi_database
    
      # SSE Redis Server
      'I@sse_redis_server:{{ grains.id }}':
        - sse.eapi_cache
    
      # SSE eAPI Servers
      'I@sse_eapi_servers:{{ grains.id }}':
        - sse.eapi_service
    
      # SSE Salt Masters
      'I@sse_salt_masters:{{ grains.id }}':
        - sse.eapi_plugin
    

Aplicar highstates a los nodos

  1. En el maestro de Salt, sincronice sus Grains para confirmar que el maestro de Salt tiene los datos de Grain que se necesitan para cada minion. Este paso garantiza que los datos del pilar se generen correctamente para la funcionalidad de SaltStack Config.

    En el comando que sincroniza los granos, puede dirigirse a todos los minions o puede pasar entre paréntesis una lista de los ID de minion específicos para los nodos (incluido el propio maestro de Salt). Por ejemplo:

    Apuntar a todos los minions

    sudo salt \* saltutil.refresh_grains

    Seleccione una lista de minions

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
  2. Actualice y confirme si cada uno de los minions recibió los datos del pilar definidos en el archivo sse_settings.yaml y si aparecen según lo esperado.

    En el comando que actualiza los datos del pilar, puede dirigirse a todos los minions o puede pasar entre paréntesis una lista de los ID de minion específicos para los nodos (incluido el propio maestro de Salt). Por ejemplo:

    Apuntar a todos los minions

    sudo salt \* saltutil.refresh_pillar

    Seleccione una lista de minions

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
  3. Confirme si los datos devueltos para el pilar son correctos:
    sudo salt \* pillar.items

    Compruebe si ve los datos del pilar relacionados con SaltStack Config.

    Nota:

    También puede apuntar a los datos del pilar de un minion específico para comprobar si se actualizaron los datos del pilar.

  4. Ejecute el comando que aplica el highstate de orquestación en el servidor de PostgreSQL. Utilice el identificador de minion que registró anteriormente para el servidor de PostgreSQL.

    Por ejemplo:

    sudo salt postgres-database-1 state.highstate
  5. Repita el paso anterior para cada uno de los siguientes servidores, reemplazando el ID de minion para cada servidor:
    • El nodo de Redis
    • El nodo de RaaS
    • El nodo maestro de Salt
    Nota:

    Durante la aplicación inicial del highstate al maestro de Salt, es posible que se vea el siguiente mensaje de error: Authenticationerroroccurred. Este error se muestra porque el maestro de Salt aún no se autenticó en el nodo de RaaS, pero el estado de instalación del complemento principal reiniciará el servicio principal de Salt y el problema se resolverá automáticamente.

Si detecta otros errores al ejecutar los highstates, consulte la Solución de problemas.