Como parte do processo pós-instalação, você precisa instalar, configurar e atualizar o Master Plugin. O Master Plugin permite que os seus mestres Salt se comuniquem com o SaltStack Config. O Master Plugin inclui uma variedade de configurações que você pode ajustar para melhorar o desempenho e que são particularmente úteis para ambientes grandes ou movimentados.

Normalmente, você instala o Master Plugin em cada mestre Salt no seu ambiente que se comunica com o SaltStack Config. Por exemplo, se você estiver usando uma configuração com mais de um mestre Salt (às vezes chamada de configuração de vários mestres), você deverá instalar o Master Plugin em cada mestre Salt.

Observação: Como parte da iniciativa da VMware de remover entradas de terminologia problemáticas, o termo mestre Salt será substituído por um termo melhor no SaltStack Config e em produtos e tópicos de documentação relacionados. Essa atualização de terminologia pode demorar alguns ciclos de lançamento antes de ser totalmente concluída.

Antes de começar

A instalação e a configuração do Master Plugin é uma etapa pós-instalação em uma série de várias etapas que devem ser seguidas em uma ordem específica. Primeiro, conclua um dos cenários de instalação e depois leia a página pós-instalação Instalar a chave de licença.

Quando você precisa instalar o Master Plug-in?

Você precisa instalar o Master Plugin em todos os mestres Salt após uma nova instalação do SaltStack Config. O Master Plugin não é necessário em mestres Salt que não precisam se comunicar com o SaltStack Config.

Se você usou o cenário de instalação Instalação do SaltStack Config em menos de 1000 nós, não precisa instalar o Master Plugin no nó em que instalou o SaltStack Config e sua arquitetura relacionada. O instalador instala automaticamente o Master Plugin no nó do mestre Salt. No entanto, o Master Plugin é instalado apenas no mestre Salt em que você executou o instalador. Se houver vários mestres, ainda precisará instalar o Master Plugin nesses outros mestres.

Se estiver instalando o SaltStack Config manualmente (não recomendado), você deverá concluir o seguinte antes de instalar o Master Plugin:

  • Instalar e configurar o banco de dados PostgreSQL
  • Instalar e configurar o banco de dados Redis
  • Ativar o SSL (opcional)

Instalar o Master Plugin

Para instalar o Master Plugin no mestre Salt:

  1. Faça login no mestre Salt.
  2. Se necessário, baixe o wheel do Master Plugin no Customer Connect.

    O Master Plugin está incluído no arquivo .tar.gz do Instalador Automatizado. Depois de baixar e extrair o arquivo .tar.gz, você poderá encontrar o Master Plugin no diretório sse-installer/salt/sse/eapi_plugin/files.

  3. Instale o Master Plugin instalando manualmente o wheel do Python atualizado. Use os seguintes comandos de exemplo, substituindo o nome exato do arquivo wheel:

    RHEL/CentOS

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

    Ubuntu

    sudo pip3 install SSEAPE-file-name.whl
    Observação: Alguns usuários talvez precisem alterar a sintaxe para pip3.6 ou pip36 em seus sistemas operacionais.

Configurar o Master Plugin

Para configurar o mestre Salt após a instalação do Master Plugin:

  1. Faça login no mestre Salt e verifique se o diretório /etc/salt/master.d existe. Crie-o se ele não existir.
  2. Gere as definições de configuração do mestre.
    Cuidado: Se quiser preservar as configurações ao atualizar sua instalação, faça um backup do arquivo de configuração do Master Plugin existente antes de executar essa etapa. Em seguida, copie as configurações relevantes da sua configuração existente para o arquivo recém-gerado.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf

    Se a execução desse comando causar um erro, talvez ele esteja relacionado ao método usado durante a instalação inicial do Salt. Se você instalou o Salt por meio do instalador do SaltStack Config, sua instalação provavelmente inclui um pacote offline, chamado Salt Crystal, que requer instruções de upgrade especiais. Para obter mais informações, consulte a página de Solução de problemas.

  3. Edite o arquivo raas.conf gerado e atualize os valores da seguinte maneira para validar o certificado usado pela API (RaaS) e definir seu endereço IP.
    Valor Descrição

    sseapi_ssl_validate_cert

    Valida o certificado usado pela API (RaaS). O padrão é True.

    Se estiver usando seus próprios certificados emitidos por uma CA, definir esse valor como True e defina as configurações sseapi_ssl_ca, sseapi_ssl_cert e sseapi_ssl_cert:.

    Caso contrário, defina como False para não validar o certificado.

    sseapi_ssl_validate_cert:False

    sseapi_server

    Endereço IP HTTP do seu nó RaaS, por exemplo, http://example.com, ou https://example.com, se o SSL estiver ativado.

    sseapi_command_age_limit

    Define a idade (em segundos) após a qual trabalhos antigos e potencialmente obsoletos são ignorados. Por exemplo, para ignorar trabalhos com mais de um dia, defina o valor como:

    sseapi_command_age_limit:86400

    Trabalhos ignorados continuam a existir no banco de dados e são exibidos com um status de Completed na interface de usuário do SaltStack Config.

    Alguns ambientes podem exigir que o mestre Salt fique offline por longos períodos e, quando ele voltar a ficar online, execute todos os trabalhos que foram enfileirados. Se isso se aplicar ao seu ambiente, defina o limite de idade como 0.

    sseapi_windows_minion_deploy_delay Define um atraso para permitir que todos os serviços do Windows necessários se tornem ativos. O valor predefinido é 180 segundos.
    sseapi_linux_minion_deploy_delay Define um atraso para permitir a ativação de todos os serviços do Linux necessários. O valor predefinido é 90 segundos.
  4. OPCIONAL: Essa etapa é necessária apenas para instalações manuais. Para verificar se você pode se conectar ao SSL antes de conectar o Master Plugin, edite o arquivo raas.conf gerado para atualizar os seguintes valores. Se você não atualizar esses valores, o Master Plugin usará o certificado gerado padrão.
    Valor Descrição
    sseapi_ssl_ca O caminho para um arquivo CA.
    sseapi_ssl_cert O caminho para o certificado. O valor padrão é /etc/pki/raas/certs/localhost.crt.
    sseapi_ssl_key O caminho para a chave privada do certificado. O valor padrão é /etc/pki/raas/certs/localhost.key.
    id Assinale essa linha como comentário adicionando # no início. Ela não é necessária.
  5. OPCIONAL: Atualize as configurações relacionadas ao desempenho. Para ambientes grandes ou movimentados, você pode melhorar o desempenho das comunicações entre o mestre Salt e o SaltStack Config ajustando as seguintes configurações.
    • Ative o enfileiramento de eventos (disponível no salt 2019.2.2 e posterior). Eventos podem ser enfileirados no mestre Salt e enviados ao retornador de eventos em lotes usando uma única transação para vários eventos. Por padrão, esse mecanismo de enfileiramento está desativado. Para ativar o enfileiramento de eventos, defina o seguinte no arquivo de configuração do Salt Master Plugin:
      event_return_queue:2500
      event_return_queue_max_seconds:5

      O tamanho máximo sugerido da fila de eventos é 2500, conforme indicado. Quando estiver cheia, a fila será descarregada, encaminhando eventos ao retornador de eventos. Um valor mais baixo pode ser uma opção melhor para ambientes menores ou menos movimentados.

      Em alguns casos, o barramento de eventos Salt pode não se ocupar o suficiente para fazer com que a fila atinja regularmente seu tamanho máximo. A configuração event_return_queue_max_seconds fará com que a fila seja descarregada quando seu evento mais antigo for mais antigo do que o valor configurado, independentemente de quantos eventos estejam na fila.

    • Ativar e configurar os mecanismos eventqueue e rpcqueue:

      Esses mecanismos descarregam certas comunicações com o SaltStack Config em caminhos de código essenciais ao desempenho para processos dedicados. Enquanto os mecanismos estão esperando para se comunicar com o SaltStack Config, as payloads são armazenadas no sistema de arquivos local do mestre Salt para que os dados possam persistir entre as reinicializações do mestre Salt.

      Para ativar os mecanismos, remova as marcas de comentário das seguintes configurações no arquivo de configuração do Salt Master Plugin (raas.conf):

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

      Para configurar o mecanismo eventqueue, remova as marcas de comentário e atualize as seguintes configurações:

      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: []

      Os parâmetros da fila podem ser ajustados levando em consideração como eles funcionam juntos. Por exemplo, assumindo uma média de 400 eventos por segundo no barramento de eventos Salt, as configurações mostradas acima permitem a coleta de cerca de 24 horas de tráfego de eventos em fila no mestre Salt antes que os eventos mais antigos sejam descartados devido a limites de tamanho ou idade.

      Para configurar o mecanismo rpcqueue, remova as marcas de comentário e atualize as seguintes configurações:

      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
    • Ativar cache de carregamento:
      sseapi_local_cache:
          load:3600
      Observação: Se o mecanismo rpcqueue estiver ativado, o cache de carregamento também deverá ser ativado para que o mestre Salt manipule os trabalhos corretamente.
    • Limitar tamanhos de payload de grãos de subordinados:
      sseapi_max_minion_grains_payload:2000
    • Ative a opção para ignorar trabalhos anteriores a um horário definido (em segundos). Por exemplo, use 86400 para configurá-lo de forma a ignorar trabalhos com mais de um dia. Quando definido como 0, esse recurso será desativado:
      sseapi_command_age_limit:0
      Observação:

      Isso é útil durante um upgrade, para evitar que comandos antigos armazenados no banco de dados sejam executados inesperadamente.

    Juntos, o enfileiramento de eventos no Salt e os mecanismos de enfileiramento, o cache de carregamento, o limite de tamanho da payload de grãos e o limite de idade de comandos no Salt Master Plugin aumentam o rendimento e reduzem a latência das comunicações entre o mestre Salt e o SaltStack Config nos caminhos de código mais sensíveis ao desempenho.

  6. Reinicie o serviço do mestre.
    sudo systemctl restart salt-master
  7. OPCIONAL: Talvez você queira executar um trabalho de teste para garantir que o Master Plugin está agora permitindo a comunicação entre o mestre e o nó RaaS.
    salt -v '*' test.ping

Mesmo que nenhuma atividade seja exibido, por exemplo, se nenhum subordinado estiver conectado, isso é provavelmente um sinal de uma configuração correta.

Referência de definições de configuração

Essas configurações no arquivo de configuração permitem que cada mestre Salt se conecte à API (RaaS). Você pode encontrar essas configurações no arquivo de configuração /etc/salt/master.d/raas.conf.

Importante:

As configurações do mestre Salt no arquivo raas.conf têm precedência sobre as configurações existentes em /etc/salt/master. Se você tiver personalizado as configurações fileserver_backend ou ext_pillar em /etc/salt/master, deverá mesclar manualmente essas configurações para que elas apareçam em apenas um arquivo. Opcionalmente, é possível reordenar os back-ends para modificar a precedência.

A tabela a seguir explica as definições de configuração gerais:

Opção Descrição
id ID mestre Salt, gerado automaticamente se não estiver definido
sseapi_server URL do servidor SSEAPI, por exemplo https://sse.example.com:443
engines Mecanismos Salt para ativar. Recomendados: sseapi, eventqueue, rpcqueue, jobcompletion e keyauth.
master_job_cache sseapi para usar o cache de trabalhos mestre do SaltStack Config
event_return Retornador de eventos Salt. Recomendado: sseapi para usar o retornador de eventos do SaltStack Config
ext_pillar Origens de pilar externas. Recomendada: sseapi
fileserver_backend Back-ends do servidor de arquivos. Recomendados: sseapi e roots
sseapi_update_interval Com que frequência atualizar a partir do servidor de arquivos (segundos, padrão: 60)
sseapi_poll_interval Com que frequência sondar o SaltStack Config em busca de novos dados (segundos, padrão: 30)
sseapi_jce_poll_interval adiciona um atraso entre i iterações no mecanismo jobcompletion, para que no máximo 5760 comandos find_job sejam enviados por dia pelo mestre Salt (segundos, padrão 15)
sseapi_timeout Tempo limite para chamadas de API (RaaS) (segundos, padrão: 200)
sseapi_pubkey_path Caminho para o arquivo de chave pública para autenticar o mestre Salt no SaltStack Config
sseapi_key_rotation Intervalo de alternância de chaves de autenticação do SaltStack Config para o mestre Salt (segundos, padrão: 86.400)
sseapi_cache_pillar Se dados de pilares devem ou não ser armazenados em cache no SaltStack Config (True ou False, padrão: False)
sseapi_cluster_id (opcional) Nome do cluster de mestres Salt para agrupar mestres Salt em clusters no SaltStack Config
sseapi_failover_master Se este mestre Salt é um mestre Salt de failover (True ou False, padrão: False)
sseapi_command_age_limit Se os comandos de API (RaaS) mais antigos que um tempo definido devem ou não ser ignorados (segundos, 0 para desativar, padrão: 0)

A tabela a seguir explica as configurações de SSL:

Opção Descrição
sseapi_ssl_key Caminho para a chave privada do certificado
sseapi_ssl_cert Caminho para o certificado
sseapi_ssl_validate_cert Se o certificado SSL do SaltStack Config deve ou não ser validado (True ou False, padrão: True)

A tabela a seguir explica as configurações do Mecanismo de Fila de Eventos que aparecem sob o cabeçalho sseapi_event_queue:

Opção Descrição
name Nome da fila de eventos (padrão sseapi-events, não há necessidade de alterar isso)
strategy Quando enfileirar eventos (always, on_failure ou never, padrão: never)
push_interval Com que frequência enviar eventos ao SaltStack Config (segundos, padrão: 5)
batch_limit Número máximo de eventos a serem enviados ao SaltStack Config por intervalo (padrão: 2.000)
age_limit Idade máxima dos eventos em fila, descartar os eventos mais antigos (segundos, padrão: 86.400)
size_limit Tamanho máximo da fila, descartar os eventos mais antigos (eventos, padrão: 35.000.000)
vacuum_interval Com que frequência aspirar o banco de dados da fila (segundos, padrão: 86.400)
vacuum_limit Tamanho máximo da fila ao aspirar o banco de dados da fila (eventos, padrão: 350.000)
forward Retornadores Salt adicionais aos quais enviar eventos ao descarregar a fila (padrão: nenhum)

O item de configuração forward pode especificar uma lista de um ou mais nomes de retornadores Salt. Todas as vezes que a fila de eventos for descarregada, os eventos enfileirados serão enviados ao SaltStack Config e também a cada retornador nessa lista. Isso permite que a funcionalidade de enfileiramento e persistência do mecanismo da fila de eventos seja adicionada a qualquer retornador Salt padrão. Veja a seguir um trecho de configuração que faz com que os eventos sejam gravados em um arquivo local sempre que são enviados ao SaltStack Config:

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

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

A tabela a seguir explica as configurações do Mecanismo de Fila de RPC que aparecem sob o cabeçalho sseapi_rpc_queue:

Opção Descrição
name Nome da fila de eventos (padrão sseapi-rpc, não há necessidade de alterar isso)
strategy Quando enfileirar eventos (always, on_failure ou never, padrão: never)
push_interval Com que frequência enviar chamadas ao SaltStack Config (segundos, padrão: 5)
batch_limit Número máximo de chamadas a serem enviadas ao SaltStack Config por intervalo (padrão: 500)
age_limit Idade máxima das chamadas em fila, descartar as entradas mais antigas (segundos, padrão: 3.600)
size_limit Tamanho máximo da fila, descartar as entradas mais antigas (eventos, padrão: 360.000)
vacuum_interval Com que frequência aspirar o banco de dados da fila (segundos, padrão: 86.400)
vacuum_limit Tamanho máximo da fila ao aspirar o banco de dados da fila (entradas, padrão: 100.000)

A tabela a seguir explica as configurações de Caminho. Após a geração da configuração inicial, tenha cuidado ao alternar essas configurações. Os módulos serão copiados para esses diretórios do processo de instalação. No entanto, adicionar caminhos extras não terá efeitos adversos.

Opção Descrição
beacons_dirs Caminho(s) de Módulos Externos para beacons
engines_dirs Caminho(s) de Módulos Externos para engines
fileserver_dirs Caminho(s) de Módulos Externos para fileserver
pillar_dirs Caminho(s) de Módulos Externos para pillar
returner_dirs Caminho(s) de Módulos Externos para returner
roster_dirs Caminho(s) de Módulos Externos para roster
runner_dirs Caminho(s) de Módulos Externos para runner
module_dirs Caminho(s) de Módulos Externos para Salt
proxy_dirs Caminho(s) de Módulos Externos para proxy
metaproxy_dirs Caminho(s) de Módulos Externos para metaproxy
states_dirs Caminho(s) de Módulos Externos para states

O que fazer em seguida

Depois de instalar e configurar o Master Plugin, você deve concluir etapas adicionais pós-instalação. A próxima etapa é configurar o nó RaaS. Para continuar o processo pós-instalação, consulte Verificar o arquivo de configuração do RaaS.