Ao instalar o Automation Config, você executa um highstate de orquestração fornecido no instalador do Automation Config. O highstate é executado no seu mestre Salt e configura um ambiente de vários nós. Ele instala a arquitetura do Automation 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 Automation 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 Automation 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 Automation 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 obrigatórias do Automation 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 Automation 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
    

Editar o arquivo de pilares de configurações do Automation Config

Durante essa tarefa de instalação, você edita cinco seções diferentes no arquivo de mapeamento de pilares de configurações do Automation Config para fornecer os valores apropriados para o seu ambiente. Essas configurações são usadas pelos arquivos de estado de configuração para implantar e gerenciar sua implantação do Automation Config.

Para copiar e editar o arquivo de estado de configurações do Automation Config:

  1. No mestre Salt, navegue até o diretório /srv/pillar/sse/.
  2. Abra o arquivo sse_settings.yaml em um editor. A Seção 1 desse arquivo contém quatro variáveis que correspondem aos quatro nós. Altere os valores das quatro variáveis para os IDs de subordinados (não os endereços IP nem os nomes DNS) dos nós correspondentes. Use os IDs subordinados que você registrou anteriormente.

    Por exemplo:

    # PostgreSQL Server (Single value)
    pg_server: postgres-database-1
    
    # Redis Server (Single value)
    redis_server: redis-database-1
    
    # SaltStack Enterprise Servers (List one or more)
    eapi_servers:
      - saltstack-enterprise-api-server-1
    
    # Salt Masters (List one or more)
    salt_masters:
      - saltmaster-1
    Observação: As variáveis pg_server e redis_server são únicas, pois a maioria das configurações de rede tem apenas um banco de dados PostgreSQL e Redis. Por outro lado, as variáveis para eapi_servers e salt-masters são formatadas em uma lista, pois é possível ter mais de um nó RaaS e um mestre Salt.
  3. Na Seção 2 desse arquivo, edite as variáveis para especificar o endpoint e a porta do seu nó PostgreSQL:
    • pg_endpoint - Altere o valor para o endereço IP ou o nome DNS (e não o ID do subordinado) do seu servidor PostgreSQL. Se você estiver em um ambiente virtualizado, preste atenção para especificar o endereço interno, e não o público.
    • pg_port - A porta PostgreSQL padrão é fornecida, mas pode ser substituída se necessário.
    • pg_username e pg_password - Insira as credenciais do usuário que a API (RaaS) usará para se autenticar no PostgreSQL. Esse usuário será criado quando você executar o highstate de orquestração da configuração.
    Observação: A variável é especificada como pg_endpoint porque algumas instalações podem ter configurado um servidor (ou cluster) PostgreSQL separado que não é gerenciado por esse processo de instalação. Se esse for o caso, exclua a ação. Não aplique o highstate ao servidor PostgreSQL durante a etapa Aplicar os Highstates aos nós mais adiante no processo.
  4. Repita a etapa anterior para editar a Seção 3 desse arquivo. Porém, dessa vez, edite as variáveis correspondentes para especificar o endpoint e a porta do seu nó Redis.
  5. Na Seção 4 desse arquivo, edite as variáveis relacionadas ao nó RaaS:
    • Se esta for uma nova instalação, não altere os valores padrão das variáveis eapi_username e eapi_password padrão. Durante a orquestração da configuração, o processo de instalação estabelece o banco de dados do com essas credenciais padrão. Ele precisa dessas credenciais para se conectar por meio do serviço eAPI e estabelecer seus Destinos e Trabalhos padrão no Automation Config. Você alterará a senha padrão em uma etapa pós-instalação.
    • Para a variável eapi_endpoint, altere o valor para o endereço IP ou DNS (e não o ID do subordinado) do seu nó RaaS.
      Observação: A variável é especificada como eapi_endpoint, já que algumas instalações hospedam vários servidores eAPI atrás de um balanceador de carga.
    • A variável eapi_ssl_enabled está definida como True por padrão. Quando definida como True, o SSL é ativado. É altamente recomendado deixar o SSL ativado. A validação do SSL não é exigida pelo instalador, mas é provável que seja um requisito de segurança em ambientes que hospedam sua própria autoridade de certificação.
    • A variável eapi_standalone está definida como False por padrão. Essa variável fornecerá direcionamento aos estados de configuração se dados de pilares estiverem sendo usados em um cenário de instalação em nó único. Nesse cenário, toda a comunicação IP seria direcionada ao endereço de loopback. No cenário de várias instalações, você deve deixar essa variável definida como False.
    • A variável eapi_failover_master está definida como False por padrão. Essa variável oferece suporte a implantações em que os mestres Salt (e os subordinados) operam no modo de failover.
    • A variável eapi_key define a chave de criptografia que o Automation Config utiliza para gerenciar dados criptografados no banco de dados PostgreSQL. Essa chave deve ser exclusiva para cada instalação. Um padrão é fornecido, mas uma chave personalizada pode ser gerada executando o seguinte comando em um terminal separado fora do editor:
      openssl rand -hex 32
  6. Na Seção 5 desse arquivo, edite as variáveis para adicionar seus identificadores exclusivos de cliente:
    • A variável customer_id identifica de forma exclusiva uma implantação do SaltStack. Ela se torna o sufixo do nome de esquema do banco de dados raas_* API (RaaS) no PostgreSQL. Um padrão é fornecido, mas uma chave personalizada pode ser gerada executando o seguinte comando em um terminal separado fora do editor:
      cat /proc/sys/kernel/random/uuid
    • A variável cluster_id define o ID de um conjunto de mestres Salt quando configurada no Modo de Vários Mestres Ativo ou de Failover. Esse ID impede que os subordinados que se reportam a vários mestres Salt sejam indicados várias vezes dentro do Automation Config.

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 Automation 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 Automation 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.