Ao instalar o SaltStack Config, você executa um highstate de orquestração fornecido no instalador do SaltStack Config. O highstate é executado no seu mestre Salt e configura um ambiente de vários nós. Ele instala a arquitetura do SaltStack Config de núcleo nos três outros nós que hospedarão o PostgreSQL, o Redis e o nó RaaS.

Atenção: A implantação do SaltStack Config em contêineres não é compatível ou recomendada.

O objetivo final da instalação é ter quatro nós, cada um com uma função de host diferente. Cada nó também é um subordinado do mestre Salt:

  • Um nó de mestre Salt
  • Um nó de banco de dados PostgreSQL
  • Um nó de banco de dados Redis
  • Um nó RaaS, também conhecido como nó do SaltStack Config
Cuidado:

É especialmente importante seguir todas as etapas listadas em Instalando o Salt em seus nós. Em particular, você deve instale as dependências necessárias para o instalador do SaltStack Config em todos os quatro nós da instalação. Caso contrário, a instalação de vários nós falhará.

As dependências necessárias são:

  • OpenSSL
  • Pacotes adicionais para o Enterprise Linux (EPEL)
  • Criptografia Python
  • Biblioteca OpenSSL do Python

Alta availablilidade

É possível configurar vários mestres Salt ou vários nós RaaS. Também é possível executar o serviço do mestre Salt em um único nó e combinar dois ou mais dos outros serviços em um nó separado. As etapas para configurar esse tipo de arquitetura de sistema não são totalmente explicadas neste guia.

Requisitos de arquitetura personalizada ou de alta disponibilidade podem exigir serviços de consultoria. No entanto, antes de configurar vários nós do mesmo tipo, você começa normalmente com o cenário de instalação em vários nós e, em seguida, configura a arquitetura adicional.

Para obter mais informações sobre alta disponibilidade, consulte Dependências necessárias do SaltStack Config.

Registre os dados principais para os quatro nós

Antes de iniciar a instalação padrão, registre os dados-chave sobre cada um dos quatro nós envolvidos na instalação. Você insere esses dados em vários pontos durante o processo de instalação.

Registre os seguintes dados-chave sobre cada um dos quatro nós envolvidos na instalação:

  • Os endereços IP ou nomes DNS
  • Os IDs de subordinados

Certifique-se de indicar claramente qual endereço IP e ID de subordinado pertence a qual host (o nó do mestre Salt, o nó RaaS, o nó do banco de dados PostgreSQL e o nó do banco de dados Redis).

Como prática recomendada, verifique se os seus endereços IP ou nomes DNS estão corretos, pois endereços IP ou nomes DNS incorretos podem causar falha na instalação em vários nós.

Mantenha esses dados em um registro acessível para sua própria referência. Ao configurar a orquestração, você precisa inserir esses dados em várias configurações e variáveis nos arquivos de configuração. Por esse motivo, é útil manter esse registro em mãos durante toda a instalação.

Observação:

Se você estiver em um ambiente virtualizado, preste atenção para especificar o endereço interno, e não o público.

Endereços IP estáticos versus dinâmicos

Os hosts Redis e PostgreSQL precisam de endereços IP estáticos ou nomes DNS aos quais os arquivos de configuração fazem referência. Dependendo de como o nó RaaS for implantado, talvez ele também precise de um endereço IP estático ou de um nome DNS. Depender de endereços IP dinâmicos em configurações pode modificar e interromper seu ambiente.

Definindo um ID de subordinado personalizado (opcional)

Um ID de subordinado é um nome exclusivo dado a cada subordinado que é gerenciado por um mestre Salt. Por padrão, o subordinado se identifica ao mestre Salt pelo nome de host do sistema. No entanto, você pode atribuir IDs personalizados que descrevem suas funções ou localizações na rede.

Se você optar por personalizar seus IDs de subordinado, tente manter o ID breve, mas descritiva de sua função. Por exemplo, você pode usar apache-server-1 para definir o nome de um dos seus servidores Web ou pode usar datacenter-3-rack-2 após sua localização em um centro de dados. O objetivo é tornar os nomes descritivos e úteis para referência futura.

Para declarar um ID de subordinado:

  1. No terminal do subordinado, navegue até o diretório que contém o arquivo minion.conf do subordinado. Por padrão, a localização do diretório é etc/salt/minion.d.
  2. Abra o arquivo minion.conf em um editor. Altere a configuração id para seu ID de subordinado preferencial. Por exemplo:
    id: postgres-database-1
  3. Após a alteração de um ID de subordinado, as chaves do subordinado precisam ser aceitas (ou novamente aceitas) pelo mestre Salt. Para obter instruções específicas sobre como configurar as chaves, consulte Aceitar as chaves de subordinados no(s) mestre(s).

Copiar e editar os arquivos de estado principais

Durante essa tarefa de instalação, você copia os arquivos de orquestração fornecidos com o instalador do SaltStack Config para o nó do mestre Salt. Em seguida, edita esses arquivos para fazer referência aos três nós do RaaS, ao banco de dados Redis e ao banco de dados PostgreSQL.

Para copiar e editar os arquivos de configuração de orquestração:

  1. No mestre Salt, navegue até o diretório sse-installer.
  2. Copie os arquivos de pilar e estado do diretório sse_installer para os diretórios pillar_roots e file_roots do Mestre Salt usando os seguintes 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:

    Estas instruções fazem algumas suposições que podem não ser aplicáveis à sua estrutura de diretórios, especialmente se você tiver uma instalação do Salt existente. As instruções assumem o seguinte:

    • Que o seu mestre Salt está usando a estrutura de diretórios padrão. Se a sua estrutura de diretórios tiver sido modificada, talvez seja necessário modificar essas instruções para a sua estrutura de diretórios personalizada.
    • Que você ainda não tem uma pasta denominada sse na raiz do seu estado de configuração ou pilar. Se essa pasta existir, talvez seja necessário mesclar as duas pastas manualmente.
    • Que você ainda não tem um arquivo denominado top.sls no seu diretório de salt ou pilar. Se esse arquivo existir, talvez seja necessário mesclá-lo manualmente com o arquivo existente.
  3. No diretório /srv/pillar/, você agora tem um arquivo denominado top.sls que foi copiado dos arquivos de instalação na etapa anterior. Abra esse arquivo em um editor.
  4. Edite esse arquivo para definir a lista de IDs de subordinados (não os endereços IP ou nomes DNS) do PostgreSQL, do Redis, do RaaS e do mestre Salt. Use os IDs que você registrou anteriormente.

    Por exemplo:

    {# 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. No diretório /srv/salt/, você agora tem um arquivo denominado top.sls que foi copiado na etapa 2. Abra esse arquivo em um editor e verifique se ele corresponde ao seguinte:
    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 os highstates aos nós

  1. No mestre Salt, sincronize seus grains para confirmar que o mestre Salt tem os dados de grains necessários para cada subordinado. Essa etapa garante que os dados de pilares sejam gerados corretamente para a funcionalidade do SaltStack Config.

    No comando que sincroniza os grãos, você pode direcionar todos os subordinados ou transmitir uma lista dos IDs de subordinados específicos para os seus nós (incluindo o próprio mestre Salt) entre parênteses. Por exemplo:

    Direcionar todos os subordinados

    sudo salt \* saltutil.refresh_grains

    Direcionar uma lista de subordinados

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_grains
  2. Atualize e confirme que cada um dos subordinados recebeu os dados de pilares definidos no arquivo sse_settings.yaml e que eles são exibidos conforme o esperado.

    No comando que atualiza os dados de pilares, você pode direcionar todos os subordinados ou transmitir uma lista dos IDs de subordinados específicos para os seus nós (incluindo o próprio mestre Salt) entre parênteses. Por exemplo:

    Direcionar todos os subordinados

    sudo salt \* saltutil.refresh_pillar

    Direcionar uma lista de subordinados

    sudo salt -L 'salt-master-1,postgres-database-1,redis-database-1,saltstack-enterprise-api-server-1' saltutil.refresh_pillar
  3. Confirme se os dados de retorno do seu pilar estão corretos:
    sudo salt \* pillar.items

    Verifique se você vê os dados de pilares relacionados ao SaltStack Config.

    Observação:

    Você também pode direcionar os dados de pilares de um subordinado específico para verificar se eles foram atualizados.

  4. Execute o comando que aplica o highstate de orquestração ao servidor PostgreSQL. Use o ID de subordinado que você registrou anteriormente para o servidor PostgreSQL.

    Por exemplo:

    sudo salt postgres-database-1 state.highstate
  5. Repita a etapa anterior para cada um dos seguintes servidores, substituindo o ID de subordinado para cada servidor:
    • O nó Redis
    • O nó RaaS
    • O nó do mestre Salt
    Observação:

    Durante a aplicação inicial do highstate ao mestre Salt, você pode ver a seguinte mensagem de erro: Authenticationerroroccurred. Esse erro é exibido porque o mestre Salt ainda não se autenticou no nó RaaS. Porém, o estado da instalação do Master Plugin reiniciará o serviço do mestre Salt, e o problema será resolvido automaticamente.

Se você encontrar outros erros ao executar os highstates, consulte Solução de problemas.